From ff8c1af855b6f08b9836e508db2b683eb1a41a68 Mon Sep 17 00:00:00 2001 From: Yana Ishkhanova Date: Tue, 7 Apr 2026 11:35:23 +0300 Subject: [PATCH 01/10] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D1=81=D1=82=D0=B0=D1=82=D1=8C=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D0=BA=D0=B0=D1=84=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/Apache-Kafka/about-service.md | 86 +++++++ src/PaaS/Apache-Kafka/base-tier-connection.md | 215 ++++++++++++++++++ .../Apache-Kafka/base-tier-topics-guide.md | 64 ++++++ .../Apache-Kafka/cluster-configuretion.md | 111 +++++++++ src/PaaS/Apache-Kafka/full-tier-connection.md | 128 +++++++++++ 5 files changed, 604 insertions(+) create mode 100644 src/PaaS/Apache-Kafka/about-service.md create mode 100644 src/PaaS/Apache-Kafka/base-tier-connection.md create mode 100644 src/PaaS/Apache-Kafka/base-tier-topics-guide.md create mode 100644 src/PaaS/Apache-Kafka/cluster-configuretion.md create mode 100644 src/PaaS/Apache-Kafka/full-tier-connection.md diff --git a/src/PaaS/Apache-Kafka/about-service.md b/src/PaaS/Apache-Kafka/about-service.md new file mode 100644 index 0000000..985b0f9 --- /dev/null +++ b/src/PaaS/Apache-Kafka/about-service.md @@ -0,0 +1,86 @@ +# О сервисе + +## Назначение сервиса + +Данный сервис предназначен для команд, которым требуется надёжный и масштабируемый конвейер данных без необходимости самостоятельно разворачивать и обслуживать инфраструктуру Kafka. + +**Apache Kafka** - это распределённая система для потоковой передачи данных в реальном времени. Сервис обеспечивает надёжную и масштабируемую доставку сообщений между компонентами приложений, гарантируя отказоустойчивость и высокую производительность. + +В архитектуре современных информационных систем Kafka выполняет роль централизованного конвейера данных: одни сервисы (продюсеры) публикуют сообщения, а другие (консьюмеры) получают эти сообщения по мере необходимости. + +## Основные понятия + +### Продюсер (Producer) + +Программный компонент, который отправляет данные в Kafka. Продюсером может выступать любой сервис, генерирующий события: модуль приложения, система логирования, датчик IoT-устройства. + +### Консьюмер (Consumer) + +Программный компонент, который получает данные из Kafka. Консьюмер подписывается на интересующие его события и обрабатывает поступающие сообщения. + +### Топик (Topic) + +Именованный канал для хранения сообщений определённого типа. Топики организуют потоки данных по смыслу: например, "заказы", "ошибки", "события авторизации". Консьюмеры подписываются на один или несколько топиков для получения релевантных данных. + +### Партиция (Partition) + +Каждый топик разделяется на партиции - логические сегменты, распределяемые между серверами кластера. Партиции обеспечивают параллельную обработку данных: различные части одного топика могут обрабатываться одновременно несколькими консьюмерами. + +### Репликация (Replication) + +Для обеспечения отказоустойчивости партиции копируются на несколько серверов (брокеров). При выходе одного сервера из строя данные остаются доступными на других узлах кластера. + +### Микросервисная архитектура + +Kafka является стандартным решением для организации связи между микросервисами. В такой архитектуре сервисы обмениваются событиями асинхронно, что повышает надёжность и масштабируемость системы в целом. + +## Преимущества управляемого сервиса + +### Администрирование + +Клиенту не требуется самостоятельно разворачивать и обслуживать кластер Kafka. Мы берём на себя управление инфраструктурой, обновление версий, масштабирование и поддержку работоспособности. + +### Мониторинг + +Предоставляются готовые дашборды в Grafana с визуализацией ключевых метрик: + +- состояние брокеров; +- нагрузка на кластер; +- настроенная система оповещений о критических событиях; +- заполнение дискового пространства. +### Безопасность + +Поддерживается шифрованное подключение к кластеру с использованием SSL/TLS-сертификатов, что гарантирует защиту данных при передаче. +### Экспертная поддержка + +Мы обладаем практическим опытом администрирования более 500 кластеров Kafka. Накопленная экспертиза позволяет обеспечивать стабильность работы, своевременно выявлять и устранять потенциальные проблемы, оптимизировать конфигурации под конкретные задачи. +## Тарифные планы + +### Base + +Тарифный план для тех, кто имеет собственную экспертизу в работе с Kafka и желает самостоятельно управлять объектами верхнего уровня. + +**Обязательства провайдера:** +- поддержка инсталляции кластера; +- своевременное обновление версий Kafka; +- расширение вычислительных ресурсов кластера по запросу клиента. + +**Возможности:** +- **Управление учетными записями и правами доступа** - создание пользователей и настройка их прав для работы с Kafka; +- **Администрирование топиков** - полный цикл управления: создание, конфигурирование, настройка параметров и удаление; +- **Управление консьюмер-группами (Consumer Groups)** - возможность создавать, изменять и удалять логические объединения консьюмеров, которые совместно читают сообщения из топиков. Это обеспечивает высокую производительность и отказоустойчивость при обработке данных; +- **Работа с transactional ID** - полный цикл управления транзакционными идентификаторами (создание, изменение, удаление). Транзакционный идентификатор присваивается продюсеру Kafka для обеспечения атомарности операций: запись нескольких сообщений или коммит оффсетов выполняются по принципу "всё или ничего", а также предотвращается появление "зомби-продюсеров" при перезапусках. + +Инфраструктурное ядро кластера (брокеры, репликация, отказоустойчивость) остаётся под управлением провайдера. + +### Full + +Тарифный план для тех, кто предпочитает полностью делегировать задачи по администрированию Kafka. + +**Обязательства провайдера:** +- полное управление кластером; +- администрирование топиков; +- управление консьюмер-группами; +- работа с transactional id. + +Kafka используется как готовый сервис, не вовлекаясь в вопросы настройки и обслуживания. \ No newline at end of file diff --git a/src/PaaS/Apache-Kafka/base-tier-connection.md b/src/PaaS/Apache-Kafka/base-tier-connection.md new file mode 100644 index 0000000..a9b1720 --- /dev/null +++ b/src/PaaS/Apache-Kafka/base-tier-connection.md @@ -0,0 +1,215 @@ +# Подключение и работа с кластером Kafka (тариф Base) + +## О разделе + +В данном разделе описаны способы подключения к управляемому кластеру Kafka при тарифе Base. Рассматриваются два варианта: незашифрованное подключение (SASL_PLAINTEXT) и зашифрованное подключение с использованием SSL-сертификатов (SASL_SSL). Также приведены примеры работы с клиентскими утилитами и базовые операции администрирования. + +## Предварительные требования + +Для работы с кластером Kafka необходимо наличие следующих компонентов: +1. **Установленный клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию; +2. **Установленная Java** - для работы с Kafka требуется среда выполнения Java. Установка выполняется командой: **sudo apt install openjdk-17-jre-headless**. Рекомендуется использовать версию OpenJDK 17 или выше; +3. **Доступ к брокерам** - адреса брокеров (bootstrap servers) предоставляются после развертывания кластера; +4. **Учетные данные**: Вам передаются credentials пользователя "client", у которого есть возможность управления кластером. + - Имя пользователя (username) - стандартное значение client; + - Пароль - предоставляется после развертывания кластера. +5. **Корневой сертификат (для SSL-подключения)** - сертификат для зашифрованного подключения предоставляется файлом при заказе сервиса Kafka. + +## Структура клиентского дистрибутива  + +После распаковки архива Kafka в директории bin доступны основные скрипты для управления: + +|Скрипт|Назначение| +|---|---| +|**kafka-topics.sh**|Управление топиками (создание, удаление, просмотр)| +|**kafka-console-producer.sh**|Отправка сообщений в топик| +|**kafka-console-consumer.sh**|Чтение сообщений из топика| +|**kafka-consumer-groups.sh**|Управление консьюмер-группами| +|**kafka-configs.sh**|Изменение конфигурации топиков и других объектов| +|**kafka-acls.sh**|Управление списками доступа (ACL)| +В разделе ниже приведены примеры использования скриптов. + +Подробное описание операций с данными и другими скриптами приведено в [официальной документации Kafka](https://kafka.apache.org/42/operations/basic-kafka-operations/). Дополнительную информацию можно получить, выполнив любой скрипт с флагом --help: + +``` +./kafka-topics.sh --help +``` +## Конфигурационные файлы клиента + +Для подключения к Kafka используется файл настроек (client.properties), который содержит параметры аутентификации и протокола. + +### Незашифрованное подключение (SASL_PLAINTEXT) + +Создается файл **client.properties** со следующим содержимым: + +``` +sasl.mechanism=SCRAM-SHA-512 +security.protocol=SASLPLAINTEXT +sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ +    username="client" \ +    password="вашпароль"; +``` + +### Зашифрованное подключение (SASL_SSL) + +Для зашифрованного подключения дополнительно требуется корневой сертификат и хранилище доверенных сертификатов (truststore). + +#### Шаг 1. Создание truststore + +С помощью утилиты **keytool** выполняется импорт сертификата в хранилище: + +``` +keytool -importcert -storetype PKCS12 -keystore /путь/к/трастстору/truststore.jks -alias myalias -file ca.crt -storepass _любойвашпароль -keypass любойвашпароль_ +``` + +**Параметры:** +- **keystore** - путь к создаваемому хранилищу; +- **alias** - псевдоним сертификата в хранилище; +- **file** - путь к загруженному корневому сертификату; +- **storepass** - пароль для доступа к хранилищу; +- **keypass** - пароль для доступа к ключу. + +#### Шаг 2. Настройка client.properties + +В файл **client.properties** добавляются параметры SSL: + +``` +sasl.mechanism=SCRAM-SHA-512 +security.protocol=SASLSSL +sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ +    username="client" \ +    password="вашпароль"; +ssl.truststore.location=/путь/к/трастстору/truststore.jks +ssl.truststore.password=парольотхранилища +``` + +## Примеры подключения + +Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091; + +Для зашифрованного подключения (SASL_SSL) используется порт 9092. + +### Создание топиков  + +``` +./kafka-topics.sh --bootstrap-server :9092,:9092,:9092 --command-config ../config/client.properties --create --topic <имя топика> --partitions <количество партиций> --replication-factor <значение> --config min.insync.replicas=<значение> +``` + +Ознакомиться с рекомендациями по настройке топиков можно здесь - [рекомендации](https://confluence.datafort.ru/spaces/OVPS/pages/2557741/%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8+%D0%BF%D0%BE+%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5+%D1%82%D0%BE%D0%BF%D0%B8%D0%BA%D0%B0+%D1%82%D0%B0%D1%80%D0%B8%D1%84+Base). + +По умолчанию топик создаётся с `--partitions 10 --replication-factor 3 --config min.insync.replicas=2`, поэтому, если нет необходимости создавать топик со специфическими настройками, эти флаги в команде можно не указывать. + +### Просмотр списка топиков + +Выполняется команда с указанием брокеров и файла конфигурации: + +``` +./kafka-topics.sh --bootstrap-server :9092,:9092,:9092 --command-config ~/client.properties --list +``` + +**Параметры:** +- **bootstrap-server** - список брокеров кластера (адреса и порты); +- **command-config** - путь к файлу с настройками клиента; +- **list** - вывод списка топиков. + +### Отправка сообщения в топик + +Выполняется команда с указанием брокеров, файла конфигурации и топика: + +``` +./kafka-console-producer.sh --bootstrap-server :9092,:9092,:9092 --command-config~/client.properties --topic test-topic +``` + +После выполнения команды сообщения вводятся построчно. Для завершения используется сочетание клавиш Ctrl+C. + +### Чтение сообщений из топика + +Выполняется команда с указанием топика и, при необходимости, consumer group: + +``` +./kafka-console-consumer.sh --bootstrap-server :9092,:9092,:9092 --command-config~/client.properties --topic test-topic --from-beginning --group my-new-consumer-group +``` + +**Параметры:** +- **from-beginning** - чтение всех сообщений с начала (при отсутствии параметра чтение начинается с новых сообщений); +- **group -** название consumer group, которая создастся автоматически. +## Управление пользователями и доступом + +### Создание пользователей + +Для удобства можно написать скрипт, который создает пользователя сразу для двух методов шифрования - SHA-256 и SHA-512: + +``` +#!/bin/bash +username="имя_пользователя" +password="сгенерированный_пароль" +bootstrap=":9092,:9092,:9092" + +/opt/kafka/bin/kafka-configs.sh \ +          --bootstrap-server $bootstrap \ +          --alter \ +          --add-config SCRAM-SHA-256=[password="$password"] \ +          --command-config /opt/kafka/config/client.properties \ +          --entity-type users \ +          --entity-name $username + +/opt/kafka/bin/kafka-configs.sh \ +          --bootstrap-server $bootstrap \ +          --alter \ +          --add-config SCRAM-SHA-512=[password="$password"] \ +          --command-config /opt/kafka/config/client.properties \ +          --entity-type users \ +          --entity-name $username +``` + +**Запуск скрипта:** + +``` +sudo ./kafka-user-add.sh +``` + +### Просмотр данных о пользователе + +Для просмотра информации о существующих пользователях выполняется команда: + +``` +sudo ./kafka-console-consumer.sh --bootstrap-server :9092 --describe --command-config ../config/client.properties --entity-type users +``` + +### Управление consumer groups + +Consumer Group создается автоматически при обращении к ней. Например, при чтении сообщений из топика с указанием этой consumer group: + +``` +sudo ./kafka-console-consumer.sh --bootstrap-server :9092 --command-config ../config/client.properties --topic test-topic --group test-group --from-beginning +``` + +### Просмотр списка ACL + +Действия с ACL из командной строки осуществляются скриптом kafka-acls.sh. Пример просмотра списка ACL: + +``` +sudo ./kafka-acls.sh --bootstrap-server :9092,:9092,:9092 --command-config ../config/client.properties --list +``` + +## Администрирование кластера + +### Изменение объема RAM + +Для изменения объема оперативной памяти, выделенной под Kafka, направляется обращение в техническую поддержку с указанием требуемого объема RAM. + +### Изменение количества брокеров + +Выполняется также через обращение в техническую поддержку. + +Брокеров в кластере рекомендуется поддерживать **нечетным** для корректной работы механизмов выборов лидера. + +После добавления брокера выполняется перераспределение существующих партиций с учетом нового узла с помощью утилиты **kafka-reassign-partitions.sh**: + +``` +./kafka-reassign-partitions.sh --bootstrap-server <адреса_брокеров> --generate --topics-to-move-json-file topics.json --broker-list "0,1,2" --execute +``` + +: : : warning +Операция перераспределения партиций требует времени и может создавать дополнительную нагрузку на кластер. Выполнение рекомендуется в период наименьшей активности. +: : : \ No newline at end of file diff --git a/src/PaaS/Apache-Kafka/base-tier-topics-guide.md b/src/PaaS/Apache-Kafka/base-tier-topics-guide.md new file mode 100644 index 0000000..315cd58 --- /dev/null +++ b/src/PaaS/Apache-Kafka/base-tier-topics-guide.md @@ -0,0 +1,64 @@ +# Рекомендации по настройке топика (тариф Base) + +## О разделе + +При настройке топиков в Kafka важно учитывать несколько ключевых параметров для оптимальной работы системы. В данном разделе рассматриваются основные настройки, которые помогут правильно настроить топик. +## Базовые параметры топика + +### Имя топика + +При задании имени топика необходимо соблюдать следующие правила: + +**Допустимые символы:** +- имя должно начинаться с буквы (латиница), цифры или подчеркивания ( _ ); +- далее могут использоваться буквы, цифры, точки ( . ), дефисы ( - ) и подчеркивания; +- длина имени - от 3 до 200 символов; +- следует учитывать, что имя топика не подлежит изменению после создания. + +: : : tip +Избегайте использования имен, отличающихся только точкой и подчеркиванием (например, topic_1 и topic.1), так как Kafka не различает такие названия +: : : + +: : : tip +Не используйте имена, начинающиеся с двойного подчеркивания ( __ ), например, **__consumer_offsets**. Эти имена зарезервированы для внутренних топиков Kafka. +: : : +### Количество партиций (partitions) + +Партиции определяют степень параллелизма при обработке данных. Количество партиций выбирается исходя из требуемой пропускной способности. + +**Основные правила:** +- количество партиций можно **только увеличивать** (уменьшить нельзя). Это следует учитывать при планировании; +- если в кластере несколько брокеров, желательно, чтобы количество партиций было кратно количеству брокеров - это способствует равномерному распределению данных; +- рекомендуется отслеживать отставание потребителей (consumer lag) и при необходимости увеличивать количество партиций. + +**Расчет количества партиций:** +Количество партиций определяется по формуле: + +``` +Partitions = max(NP, NC) +``` +где: +- NP = TT / TP - количество необходимых продюсеров; +- NC = TT / TC - количество необходимых консьюмеров; +- TT - общая ожидаемая пропускная способность системы; +- TP - максимальная пропускная способность одного продюсера для одной партиции; +- TC - максимальная пропускная способность одного консьюмера для одной партиции. +### Фактор репликации (replication-factor) + +Фактор репликации определяет количество копий данных, хранящихся на разных брокерах. + +: : : tip +Для production-сред настоятельно рекомендуется устанавливать значение 3. Это означает, что у каждой партиции будет один лидер и две реплики, что обеспечивает отказоустойчивость при выходе из строя одного брокера. +: : : +## Ключевые параметры конфигурации +### min.insync.replicas (минимальное количество синхронизированных реплик) + +Параметр работает в связке с настройкой продюсера acks=all. Определяет, сколько реплик (включая лидера) должны подтвердить запись, чтобы она считалась успешной. + +При факторе репликации = 3 рекомендуется установить значение **2**. Это обеспечивает: +- надежность: данные записаны минимум на два брокера; +- доступность: при отказе одного брокера запись продолжается. + +: : : tip +Не рекомендуется устанавливать значение равным фактору репликации (например, 3). В этом случае при перезагрузке одного брокера запись в топик станет невозможной, так как для подтверждения потребуется подтверждение от всех трех реплик. +: : : diff --git a/src/PaaS/Apache-Kafka/cluster-configuretion.md b/src/PaaS/Apache-Kafka/cluster-configuretion.md new file mode 100644 index 0000000..7da9bdf --- /dev/null +++ b/src/PaaS/Apache-Kafka/cluster-configuretion.md @@ -0,0 +1,111 @@ +# Конфигурация кластера + +## О разделе + +Данный раздел описывает технические параметры кластера Kafka и порядок их первичной конфигурации. + +Настройка указанных параметров выполняется администратором облачного провайдера на этапе развертывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке. + +Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями. + +## Выбор типа и размера дискового хранилища + +Производительность брокера сообщений напрямую зависит от скорости, с которой он может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика. + +**IOPS**- количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее брокер сообщений обрабатывает запросы. + +: : : info +Каждые 15 IOPS обеспечивают примерно 1 мегабит в секунду (Мбит/с) скорости чтения или записи при размере блока данных 64 КБ. +: : : + +### Доступные типы хранилищ: + +|Название|Лимит IOPS| +|---|---| +|**Fast SAS**|до 2 IOPS на 1 ГБ| +|**SSD**|до 5 IOPS на 1 ГБ| +|**Fast SSD**|до 10 IOPS на 1 ГБ| +|**Ultra NVMe**|до 25 IOPS на 1 ГБ| + +: : : info +После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера Kafka. Минимальный объем зависит от выбранного типа хранилища +: : : + +## Конфигурация вычислительных ресурсов + +В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер Kafka. + +### Количество нод в кластере + +Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надежность и производительность чтения. Количество нод выбирается в диапазоне от 3 до 14. + +### Процессор (CPU) + +Процессор - это вычислительная мощность, которая выделяется каждой ноде кластера. Количество vCPU определяет, насколько быстро брокер сообщений сможет обрабатывать запросы, выполнять сложные операции (сортировки, объединения таблиц) и обслуживать одновременные подключения. Доступный диапазон выбора процессора: от 2 шт до 24 шт. + +### Оперативная память (RAM) + +Оперативная память - один из ключевых ресурсов для производительности. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. Доступный диапазон выбора оперативной памяти: от 4 ГБ до 768 ГБ. + +## Интернет + +При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру Kafka из сети интернет. + +**Доступные варианты скорости:** + +- 50 Мбит/с; +- 100 Мбит/с; +- 200 Мбит/с; +- 300 Мбит/с; +- 400 Мбит/с; +- 500 Мбит/с; +- 1000 Мбит/с (1 Гбит/с). + +: : : info +Для выбранного канала предоставляется публичный IP-адрес. +: : : +## Сетевой доступ к кластеру + +Для организации защищенного подключения к кластеру Kafka доступны стандартные механизмы, используемые во всех сервисах платформы: + +- **IPsec-подключение** - организация защищенного туннеля между инфраструктурой и кластером Kafka. Подробнее см. раздел IPSEC; +- **Interconnect** - прямое сетевое соединение между сервисами внутри платформы без выхода в интернет. Подробнее см. раздел Interconnect. + +Для построения Interconnect-соединения требуется сначала заказать PaaS-сервис и дождаться его предоставления, после чего отдельно заказать Interconnect через менеджера. + +Выбор конкретного способа подключения зависит от архитектуры приложений и требований к безопасности. + +# Калькулятор + +Для облегчения расчета параметров кластера Kafka разработан специализированный калькулятор - простое одностраничное приложение. В калькулятор вносятся исходные данные о планируемой нагрузке, после чего по нажатию кнопки **Получить** производится автоматический расчет конфигурации кластера. + +Все поля обязательны для заполнения. Формы можно удалять, добавлять и дублировать ранее заполненные, что позволяет гибко настраивать параметры под различные сценарии использования. + +## Параметры топиков + +|Параметр|Описание| +|---|---| +|**Имя топика**|Уникальное наименование топика в рамках кластера. Поле обязательное. Используется для идентификации топика при расчетах.| +|**Число партиций**|Количество партиций, на которые будет разбит топик. Значение должно быть больше числа консьюмеров.| +|**Фактор репликации**|Количество копий данных, хранящихся на разных брокерах. Для продуктивных кластеров рекомендуется значение не менее 3.
**Примечание:** Количество узлов кластера формируется на основании параметра фактора репликации. Рекомендуется выбирать нечетное количество узлов для корректной работы механизмов выборов лидера.| +|**Средний размер сообщения**|Средний объем одного сообщения, передаваемого через топик.| +|**Максимальный размер сообщения**|Максимальный объем одного сообщения. Используется для расчета пиковых нагрузок.| +|**Частота сообщений**|Количество сообщений, отправляемых в топик за единицу времени.| +|**Срок хранения сообщения**|Период времени, в течение которого сообщения хранятся в топике после записи. По истечении этого срока данные удаляются.| +|**Имя продюсера**|Наименование приложения-отправителя (для идентификации в расчетах)| +|**Количество экземпляров продюсера**|Число одновременно работающих экземпляров продюсера.| +|**Имя консьюмера**|Наименование приложения-получателя (для идентификации в расчетах).| +|**Количество экземпляров консьюмера**|Число одновременно работающих экземпляров консьюмера.
**Примечание:** Формы продюсеров и консьюмеров можно добавлять, удалять и дублировать. Это позволяет учитывать множественные источники и приемники данных в рамках одного расчета.| + +## Расчет конфигурации кластера + +После заполнения всех полей нажимается кнопка **Получить**. Все расчеты выполняются в соответствии с планированием ресурсов, указанных в официальной документации Apache Kafka. +В результате, рассчитанные параметры служат основой для формирования заказа на управляемый сервис Kafka. + +Калькулятор автоматически производит расчет следующих параметров: + +- **Количество узлов** - формируется на основании параметра фактора репликации (replication.factor). Рекомендуется выбирать нечетное количество узлов для корректной работы механизмов выборов лидера; +- **vCPU** - вычисляется из планируемого количества входящих сообщений и масштабируется в зависимости от числа узлов: чем больше кластер, тем меньше требуется CPU на отдельный сервер благодаря распределению нагрузки; +- **RAM** - рассчитывается с учетом количества партиций, объема сообщений и числа подключений продюсеров и консьюмеров; +- **Тип и объем дискового хранилища** - определяется на основе среднего и максимального размера сообщения, частоты отправки, срока хранения и фактора репликации; +- **Параметры репликации** - учитывают заданный фактор репликации и обеспечивают отказоустойчивость кластера. \ No newline at end of file diff --git a/src/PaaS/Apache-Kafka/full-tier-connection.md b/src/PaaS/Apache-Kafka/full-tier-connection.md new file mode 100644 index 0000000..d2231d6 --- /dev/null +++ b/src/PaaS/Apache-Kafka/full-tier-connection.md @@ -0,0 +1,128 @@ +# Подключение и работа с кластером Kafka (тариф Full) + +## О разделе + +В данном разделе описаны способы подключения к управляемому кластеру Kafka при тарифе Full. Рассматриваются два варианта: незашифрованное подключение (SASL_PLAINTEXT) и зашифрованное подключение с использованием SSL-сертификатов (SASL_SSL). Также приведены примеры работы с клиентскими утилитами. + +## Предварительные требования + +Для работы с кластером Kafka необходимо наличие следующих компонентов: + +1. **Установленный клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию; +2. **Установленная Java** - для работы с Kafka требуется среда выполнения Java. Установка выполняется командой: **sudo apt install openjdk-17-jre-headless**. Рекомендуется использовать версию OpenJDK 17 или выше; +3. **Доступ к брокерам** - адреса брокеров (bootstrap servers) предоставляются после развертывания кластера; +4. **Учетные данные** - пользователи создаются по Вашему запросу. Например, с правами чтения топиков и записи в них. +5. **Корневой сертификат (для SSL-подключения)** - сертификат для зашифрованного подключения предоставляется файлом при заказе сервиса Kafka. + +## Структура клиентского дистрибутива  + +После распаковки архива Kafka в директории bin доступны скрипты, например: + +|Скрипт|Назначение| +|---|---| +|**kafka-console-producer.sh**|Отправка сообщений в топик| +|**kafka-console-consumer.sh**|Чтение сообщений из топика| + +В разделе ниже приведены примеры использования скриптов. +Подробное описание операций с данными и другими скриптами приведено в [официальной документации Kafka](https://kafka.apache.org/42/operations/basic-kafka-operations/). Дополнительную информацию можно получить, выполнив любой скрипт с флагом --help: + +``` +./kafka-console-producer.sh +``` + +## Конфигурационные файлы клиента + +Для подключения к Kafka используется файл настроек (client.properties), который содержит параметры аутентификации и протокола. + +### Незашифрованное подключение (SASL_PLAINTEXT) + +Создается файл **client.properties** со следующим содержимым: + +``` +sasl.mechanism=SCRAM-SHA-512 +security.protocol=SASLPLAINTEXT +sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ +    username="вашлогин" \ +    password="вашпароль"; +``` + +### Зашифрованное подключение (SASL_SSL) + +Для зашифрованного подключения дополнительно требуется корневой сертификат и хранилище доверенных сертификатов (truststore). + +#### Шаг 1. Создание truststore + +С помощью утилиты **keytool** выполняется импорт сертификата в хранилище: + +``` +keytool -importcert -storetype PKCS12 -keystore /путь/к/трастстору/truststore.jks -alias myalias -file ca.crt -storepass _любойвашпароль -keypass любойвашпароль_ +``` + +**Параметры:** +- **keystore** - путь к создаваемому хранилищу; +- **alias** - псевдоним сертификата в хранилище; +- **file** - путь к загруженному корневому сертификату; +- **storepass** - пароль для доступа к хранилищу; +- **keypass** - пароль для доступа к ключу. + +#### Шаг 2. Настройка client.properties + +В файл **client.properties** добавляются параметры SSL: + +``` +sasl.mechanism=SCRAM-SHA-512 +security.protocol=SASLSSL +sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ +    username="вашлогин" \ +    password="вашпароль"; +ssl.truststore.location=/путь/к/трастстору/truststore.jks +ssl.truststore.password=парольотхранилища +``` + +## Примеры подключения + +Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091 +Для зашифрованного подключения (SASL_SSL) используется порт 9092 + +### Отправка сообщения в топик + +Выполняется команда с указанием брокеров, файла конфигурации и топика: + +``` +./kafka-console-producer.sh --bootstrap-server :9092,:9092,:9092 --command-config~/client.properties --topic test-topic +``` + +**Параметры:** + +- **bootstrap-server** - список брокеров кластера (адреса и порты); +- **command-config** - путь к файлу с настройками клиента. + +После выполнения команды сообщения вводятся построчно. Для завершения используется сочетание клавиш Ctrl+C. + +### Чтение сообщений из топика + +Выполняется команда с указанием топика и, при необходимости, consumer group: + +``` +./kafka-console-consumer.sh --bootstrap-server :9092,:9092,:9092 --command-config~/client.properties --topic test-topic --from-beginning --group my-new-consumer-group +``` + +**Параметры:** + +- **from-beginning** - чтение всех сообщений с начала (при отсутствии параметра чтение начинается с новых сообщений); +- **group -** название consumer group, которая при её указании создастся автоматически. + +## Администрирование кластера + +: : : info +Для изменения параметров кластера Kafka (CPU, RAM, DISK, количества брокеров, параметров топиков) необходимо направить запрос в Service Desk по адресу [servicedesk@datafort.ru](mailto:servicedesk@datafort.ru) с указанием требуемых значений. +: : : + +### Изменение количества брокеров + +Выполняется также через обращение в техническую поддержку. +Брокеров в кластере рекомендуется поддерживать **нечетным** для корректной работы механизмов выборов лидера. + +: : : info +Операция перераспределения партиций требует времени и может создавать дополнительную нагрузку на кластер. Выполнение рекомендуется в период наименьшей активности. +: : : \ No newline at end of file From 46b4dfec739db8843c06d723a78ae40c502c506f Mon Sep 17 00:00:00 2001 From: Yana Ishkhanova Date: Fri, 17 Apr 2026 11:41:26 +0300 Subject: [PATCH 02/10] =?UTF-8?q?=D0=B2=D0=BD=D0=B5=D1=81=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B4=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20=D0=B8=D0=BD=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B2=20=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D1=8E=20=D0=BF=D0=BE=20=D0=BA=D0=B0=D1=84?= =?UTF-8?q?=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/Apache-Kafka/about-service.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/PaaS/Apache-Kafka/about-service.md b/src/PaaS/Apache-Kafka/about-service.md index 985b0f9..ab2abfc 100644 --- a/src/PaaS/Apache-Kafka/about-service.md +++ b/src/PaaS/Apache-Kafka/about-service.md @@ -83,4 +83,24 @@ Kafka является стандартным решением для орган - управление консьюмер-группами; - работа с transactional id. -Kafka используется как готовый сервис, не вовлекаясь в вопросы настройки и обслуживания. \ No newline at end of file +Kafka используется как готовый сервис, не вовлекаясь в вопросы настройки и обслуживания. + +## Рекомендации для сервиса + +Использовать TLS-защищённые протоколы для подключения к сервису. + +### Пароли + +1. **Длина пароля (рекомендуемая):** + +- для учётной записи пользователя - не менее 12 знаков; +- для учётных записей администраторов, технических и служебных УЗ - не менее 16 знаков. + +2. Использовать уникальный пароль, содержащий символы как минимум трёх из четырёх указанных ниже групп (при отсутствии технических ограничений): + +- буквы латинского алфавита в верхнем регистре (A-Z); +- буквы латинского алфавита в нижнем регистре (a-z); +- цифры (0–9); +- специальные символы и знаки пунктуации (например, !@#$%^&*(),.?). + +3. Рекомендуемая периодичность смены пароля - не реже 1 раза в год. \ No newline at end of file From 83f5e686474fdefc8bccda5f432bc619798e3f0e Mon Sep 17 00:00:00 2001 From: Yana Ishkhanova Date: Fri, 17 Apr 2026 11:46:26 +0300 Subject: [PATCH 03/10] =?UTF-8?q?=D0=B2=D0=BD=D0=B5=D1=81=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B4=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20=D0=B8=D0=BD=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/PostgreSQL/about.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/PaaS/PostgreSQL/about.md b/src/PaaS/PostgreSQL/about.md index 380ecaa..54e00b7 100644 --- a/src/PaaS/PostgreSQL/about.md +++ b/src/PaaS/PostgreSQL/about.md @@ -85,3 +85,23 @@ PostgreSQL - это современная система управления - хранение критичных данных с минимальным временем простоя при отказах инфраструктуры; - быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover; - администрирование баз данных через веб-интерфейс без прямого доступа к серверам кластера. + +## Рекомендации для сервиса + +Использовать TLS-защищённые протоколы для подключения к сервису. + +### Пароли + +1. **Длина пароля (рекомендуемая):** + +- для учётной записи пользователя - не менее 12 знаков; +- для учётных записей администраторов, технических и служебных УЗ - не менее 16 знаков. + +2. Использовать уникальный пароль, содержащий символы как минимум трёх из четырёх указанных ниже групп (при отсутствии технических ограничений): + +- буквы латинского алфавита в верхнем регистре (A-Z); +- буквы латинского алфавита в нижнем регистре (a-z); +- цифры (0–9); +- специальные символы и знаки пунктуации (например, !@#$%^&*(),.?). + +3. Рекомендуемая периодичность смены пароля - не реже 1 раза в год. \ No newline at end of file From 9a21a53e119e00002c5c779761979fac5362a066 Mon Sep 17 00:00:00 2001 From: Yana Ishkhanova Date: Tue, 21 Apr 2026 17:35:44 +0300 Subject: [PATCH 04/10] =?UTF-8?q?=D0=92=D0=BD=D0=B5=D1=81=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BE=D0=BA=20=D0=B2=20?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=82=D1=8C=D0=B8=20=D0=BF=D0=BE=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B3=D1=80=D0=B5=D1=81=D1=83=20=D0=B8=20?= =?UTF-8?q?=D0=BA=D0=B0=D1=84=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/Apache-Kafka/about-service.md | 37 ++--- src/PaaS/Apache-Kafka/base-tier-connection.md | 133 ++++++++++-------- .../Apache-Kafka/base-tier-topics-guide.md | 3 +- src/PaaS/Apache-Kafka/full-tier-connection.md | 78 +++++----- src/PaaS/PostgreSQL/about.md | 19 --- src/PaaS/PostgreSQL/user-capabilities.md | 15 ++ 6 files changed, 145 insertions(+), 140 deletions(-) diff --git a/src/PaaS/Apache-Kafka/about-service.md b/src/PaaS/Apache-Kafka/about-service.md index ab2abfc..0b61f2c 100644 --- a/src/PaaS/Apache-Kafka/about-service.md +++ b/src/PaaS/Apache-Kafka/about-service.md @@ -1,5 +1,4 @@ # О сервисе - ## Назначение сервиса Данный сервис предназначен для команд, которым требуется надёжный и масштабируемый конвейер данных без необходимости самостоятельно разворачивать и обслуживать инфраструктуру Kafka. @@ -20,7 +19,7 @@ ### Топик (Topic) -Именованный канал для хранения сообщений определённого типа. Топики организуют потоки данных по смыслу: например, "заказы", "ошибки", "события авторизации". Консьюмеры подписываются на один или несколько топиков для получения релевантных данных. +Именованный канал для хранения сообщений определённого типа. Топики организуют потоки данных по смыслу: например, «заказы», «ошибки», «события авторизации». Консьюмеры подписываются на один или несколько топиков для получения релевантных данных. ### Партиция (Partition) @@ -32,10 +31,9 @@ ### Микросервисная архитектура -Kafka является стандартным решением для организации связи между микросервисами. В такой архитектуре сервисы обмениваются событиями асинхронно, что повышает надёжность и масштабируемость системы в целом. +Kafka является стандартным решением для организации связи между микросервисами. В такой архитектуре сервисы обмениваются событиями асинхронно, что повышает надёжность и масштабируемость системы в целом.Преимущества управляемого сервиса ## Преимущества управляемого сервиса - ### Администрирование Клиенту не требуется самостоятельно разворачивать и обслуживать кластер Kafka. Мы берём на себя управление инфраструктурой, обновление версий, масштабирование и поддержку работоспособности. @@ -48,12 +46,15 @@ Kafka является стандартным решением для орган - нагрузка на кластер; - настроенная система оповещений о критических событиях; - заполнение дискового пространства. + ### Безопасность Поддерживается шифрованное подключение к кластеру с использованием SSL/TLS-сертификатов, что гарантирует защиту данных при передаче. + ### Экспертная поддержка Мы обладаем практическим опытом администрирования более 500 кластеров Kafka. Накопленная экспертиза позволяет обеспечивать стабильность работы, своевременно выявлять и устранять потенциальные проблемы, оптимизировать конфигурации под конкретные задачи. + ## Тарифные планы ### Base @@ -61,46 +62,28 @@ Kafka является стандартным решением для орган Тарифный план для тех, кто имеет собственную экспертизу в работе с Kafka и желает самостоятельно управлять объектами верхнего уровня. **Обязательства провайдера:** + - поддержка инсталляции кластера; - своевременное обновление версий Kafka; - расширение вычислительных ресурсов кластера по запросу клиента. **Возможности:** + - **Управление учетными записями и правами доступа** - создание пользователей и настройка их прав для работы с Kafka; - **Администрирование топиков** - полный цикл управления: создание, конфигурирование, настройка параметров и удаление; - **Управление консьюмер-группами (Consumer Groups)** - возможность создавать, изменять и удалять логические объединения консьюмеров, которые совместно читают сообщения из топиков. Это обеспечивает высокую производительность и отказоустойчивость при обработке данных; -- **Работа с transactional ID** - полный цикл управления транзакционными идентификаторами (создание, изменение, удаление). Транзакционный идентификатор присваивается продюсеру Kafka для обеспечения атомарности операций: запись нескольких сообщений или коммит оффсетов выполняются по принципу "всё или ничего", а также предотвращается появление "зомби-продюсеров" при перезапусках. +- **Работа с transactional ID** - полный цикл управления транзакционными идентификаторами (создание, изменение, удаление). Транзакционный идентификатор присваивается продюсеру Kafka для обеспечения атомарности операций: запись нескольких сообщений или коммит оффсетов выполняются по принципу «всё или ничего», а также предотвращается появление «зомби-продюсеров» при перезапусках. Инфраструктурное ядро кластера (брокеры, репликация, отказоустойчивость) остаётся под управлением провайдера. - ### Full Тарифный план для тех, кто предпочитает полностью делегировать задачи по администрированию Kafka. **Обязательства провайдера:** + - полное управление кластером; - администрирование топиков; - управление консьюмер-группами; - работа с transactional id. -Kafka используется как готовый сервис, не вовлекаясь в вопросы настройки и обслуживания. - -## Рекомендации для сервиса - -Использовать TLS-защищённые протоколы для подключения к сервису. - -### Пароли - -1. **Длина пароля (рекомендуемая):** - -- для учётной записи пользователя - не менее 12 знаков; -- для учётных записей администраторов, технических и служебных УЗ - не менее 16 знаков. - -2. Использовать уникальный пароль, содержащий символы как минимум трёх из четырёх указанных ниже групп (при отсутствии технических ограничений): - -- буквы латинского алфавита в верхнем регистре (A-Z); -- буквы латинского алфавита в нижнем регистре (a-z); -- цифры (0–9); -- специальные символы и знаки пунктуации (например, !@#$%^&*(),.?). - -3. Рекомендуемая периодичность смены пароля - не реже 1 раза в год. \ No newline at end of file +Kafka используется как готовый сервис, не вовлекаясь в вопросы настройки и обслуживания. \ No newline at end of file diff --git a/src/PaaS/Apache-Kafka/base-tier-connection.md b/src/PaaS/Apache-Kafka/base-tier-connection.md index a9b1720..e7ea2c1 100644 --- a/src/PaaS/Apache-Kafka/base-tier-connection.md +++ b/src/PaaS/Apache-Kafka/base-tier-connection.md @@ -2,7 +2,7 @@ ## О разделе -В данном разделе описаны способы подключения к управляемому кластеру Kafka при тарифе Base. Рассматриваются два варианта: незашифрованное подключение (SASL_PLAINTEXT) и зашифрованное подключение с использованием SSL-сертификатов (SASL_SSL). Также приведены примеры работы с клиентскими утилитами и базовые операции администрирования. +В данном разделе описаны способы подключения к управляемому кластеру Kafka. Рассматриваются два варианта: незашифрованное подключение (SASL_PLAINTEXT) и зашифрованное подключение с использованием SSL-сертификатов (SASL_SSL). Также приведены примеры работы с клиентскими утилитами и базовые операции администрирования. ## Предварительные требования @@ -10,7 +10,7 @@ 1. **Установленный клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию; 2. **Установленная Java** - для работы с Kafka требуется среда выполнения Java. Установка выполняется командой: **sudo apt install openjdk-17-jre-headless**. Рекомендуется использовать версию OpenJDK 17 или выше; 3. **Доступ к брокерам** - адреса брокеров (bootstrap servers) предоставляются после развертывания кластера; -4. **Учетные данные**: Вам передаются credentials пользователя "client", у которого есть возможность управления кластером. +4. **Учетные данные**: - Имя пользователя (username) - стандартное значение client; - Пароль - предоставляется после развертывания кластера. 5. **Корневой сертификат (для SSL-подключения)** - сертификат для зашифрованного подключения предоставляется файлом при заказе сервиса Kafka. @@ -19,74 +19,76 @@ После распаковки архива Kafka в директории bin доступны основные скрипты для управления: -|Скрипт|Назначение| -|---|---| -|**kafka-topics.sh**|Управление топиками (создание, удаление, просмотр)| -|**kafka-console-producer.sh**|Отправка сообщений в топик| -|**kafka-console-consumer.sh**|Чтение сообщений из топика| -|**kafka-consumer-groups.sh**|Управление консьюмер-группами| -|**kafka-configs.sh**|Изменение конфигурации топиков и других объектов| -|**kafka-acls.sh**|Управление списками доступа (ACL)| +| Скрипт | Назначение | +| --------------------------- | -------------------------------------------------- | +| `kafka-topics.sh` | Управление топиками (создание, удаление, просмотр) | +| `kafka-console-producer.sh` | Отправка сообщений в топик | +| `kafka-console-consumer.sh` | Чтение сообщений из топика | +| `kafka-consumer-groups.sh` | Управление консьюмер-группами | +| `kafka-configs.sh` | Изменение конфигурации топиков и других объектов | +| `kafka-acls.sh` | Управление списками доступа (ACL) | В разделе ниже приведены примеры использования скриптов. -Подробное описание операций с данными и другими скриптами приведено в [официальной документации Kafka](https://kafka.apache.org/42/operations/basic-kafka-operations/). Дополнительную информацию можно получить, выполнив любой скрипт с флагом --help: +Подробное описание операций с данными и другими скриптами приведено в [официальной документации Kafka](https://kafka.apache.org/42/getting-started/introduction/). Дополнительную информацию можно получить, выполнив любой скрипт с флагом --help: ``` ./kafka-topics.sh --help ``` -## Конфигурационные файлы клиента -Для подключения к Kafka используется файл настроек (client.properties), который содержит параметры аутентификации и протокола. + +### Конфигурационные файлы клиента + +Для подключения к Kafka используется файл настроек (client.properties), который содержит параметры аутентификации, протокола и его механизмов (рекомендуются SCRAM_SHA_512 и SCRAM_SHA_256). ### Незашифрованное подключение (SASL_PLAINTEXT) Создается файл **client.properties** со следующим содержимым: ``` -sasl.mechanism=SCRAM-SHA-512 -security.protocol=SASLPLAINTEXT -sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ -    username="client" \ +sasl.mechanism=SCRAM-SHA-512 +security.protocol=SASLPLAINTEXT +sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ +    username="client" \     password="вашпароль"; ``` ### Зашифрованное подключение (SASL_SSL) -Для зашифрованного подключения дополнительно требуется корневой сертификат и хранилище доверенных сертификатов (truststore). +Для зашифрованного подключения (в production-средах рекомендуется использовать именно его) дополнительно требуется корневой сертификат и хранилище доверенных сертификатов (truststore). -#### Шаг 1. Создание truststore +Шаг 1. Создание truststore С помощью утилиты **keytool** выполняется импорт сертификата в хранилище: ``` -keytool -importcert -storetype PKCS12 -keystore /путь/к/трастстору/truststore.jks -alias myalias -file ca.crt -storepass _любойвашпароль -keypass любойвашпароль_ +keytool -importcert -storetype PKCS12 -keystore /путь/к/трастстору/truststore.jks -alias myalias -file ca.crt -storepass любойвашпароль -keypass любойвашпароль ``` -**Параметры:** +Параметры: + - **keystore** - путь к создаваемому хранилищу; - **alias** - псевдоним сертификата в хранилище; - **file** - путь к загруженному корневому сертификату; - **storepass** - пароль для доступа к хранилищу; - **keypass** - пароль для доступа к ключу. -#### Шаг 2. Настройка client.properties +Шаг 2. Настройка client.properties В файл **client.properties** добавляются параметры SSL: ``` -sasl.mechanism=SCRAM-SHA-512 -security.protocol=SASLSSL -sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ -    username="client" \ -    password="вашпароль"; -ssl.truststore.location=/путь/к/трастстору/truststore.jks +sasl.mechanism=SCRAM-SHA-512 +security.protocol=SASLSSL +sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ +    username="client" \ +    password="вашпароль"; +ssl.truststore.location=/путь/к/трастстору/truststore.jks ssl.truststore.password=парольотхранилища ``` ## Примеры подключения Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091; - Для зашифрованного подключения (SASL_SSL) используется порт 9092. ### Создание топиков  @@ -95,9 +97,9 @@ ssl.truststore.password=парольотхранилища ./kafka-topics.sh --bootstrap-server :9092,:9092,:9092 --command-config ../config/client.properties --create --topic <имя топика> --partitions <количество партиций> --replication-factor <значение> --config min.insync.replicas=<значение> ``` -Ознакомиться с рекомендациями по настройке топиков можно здесь - [рекомендации](https://confluence.datafort.ru/spaces/OVPS/pages/2557741/%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8+%D0%BF%D0%BE+%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5+%D1%82%D0%BE%D0%BF%D0%B8%D0%BA%D0%B0+%D1%82%D0%B0%D1%80%D0%B8%D1%84+Base). +Ознакомиться с рекомендациями по настройке топиков можно здесь - рекомендации. -По умолчанию топик создаётся с `--partitions 10 --replication-factor 3 --config min.insync.replicas=2`, поэтому, если нет необходимости создавать топик со специфическими настройками, эти флаги в команде можно не указывать. +По умолчанию топик создаётся с --partitions 10 --replication-factor 3 --config min.insync.replicas=2, поэтому, если нет необходимости создавать топик со специфическими настройками, эти флаги в команде можно не указывать. ### Просмотр списка топиков @@ -107,9 +109,10 @@ ssl.truststore.password=парольотхранилища ./kafka-topics.sh --bootstrap-server :9092,:9092,:9092 --command-config ~/client.properties --list ``` -**Параметры:** +Параметры: + - **bootstrap-server** - список брокеров кластера (адреса и порты); -- **command-config** - путь к файлу с настройками клиента; +command-config - путь к файлу с настройками клиента; - **list** - вывод списка топиков. ### Отправка сообщения в топик @@ -130,35 +133,52 @@ ssl.truststore.password=парольотхранилища ./kafka-console-consumer.sh --bootstrap-server :9092,:9092,:9092 --command-config~/client.properties --topic test-topic --from-beginning --group my-new-consumer-group ``` -**Параметры:** -- **from-beginning** - чтение всех сообщений с начала (при отсутствии параметра чтение начинается с новых сообщений); -- **group -** название consumer group, которая создастся автоматически. +Параметры: + +- **from-beginning **- чтение всех сообщений с начала (при отсутствии параметра чтение начинается с новых сообщений); +- **group** - название consumer group, которая создастся автоматически. + ## Управление пользователями и доступом +## Рекомендации к паролям + +**Длина пароля (рекомендуемая):** + +- для учётной записи пользователя - не менее 12 знаков; +- для учётных записей администраторов, технических и служебных учётных записей - не менее 16 знаков. + +**Сложность пароля:** рекомендуется использовать уникальный пароль, содержащий символы как минимум трёх из четырёх указанных ниже групп (при отсутствии технических ограничений): + +- буквы латинского алфавита в верхнем регистре (A-Z); +- буквы латинского алфавита в нижнем регистре (a-z); +- цифры (0-9); +- специальные символы и знаки пунктуации (например, `!@#$%^&*(),.?`). + +**Периодичность смены:** рекомендуемая периодичность смены пароля - не реже одного раза в год. ### Создание пользователей Для удобства можно написать скрипт, который создает пользователя сразу для двух методов шифрования - SHA-256 и SHA-512: ``` -#!/bin/bash -username="имя_пользователя" -password="сгенерированный_пароль" +#!/bin/bash +username="имя_пользователя" +password="сгенерированный_пароль" bootstrap=":9092,:9092,:9092" -/opt/kafka/bin/kafka-configs.sh \ -          --bootstrap-server $bootstrap \ -          --alter \ -          --add-config SCRAM-SHA-256=[password="$password"] \ -          --command-config /opt/kafka/config/client.properties \ -          --entity-type users \ +/opt/kafka/bin/kafka-configs.sh \ +          --bootstrap-server $bootstrap \ +          --alter \ +          --add-config SCRAM-SHA-256=[password="$password"] \ +          --command-config /opt/kafka/config/client.properties \ +          --entity-type users \           --entity-name $username -/opt/kafka/bin/kafka-configs.sh \ -          --bootstrap-server $bootstrap \ -          --alter \ -          --add-config SCRAM-SHA-512=[password="$password"] \ -          --command-config /opt/kafka/config/client.properties \ -          --entity-type users \ +/opt/kafka/bin/kafka-configs.sh \ +          --bootstrap-server $bootstrap \ +          --alter \ +          --add-config SCRAM-SHA-512=[password="$password"] \ +          --command-config /opt/kafka/config/client.properties \ +          --entity-type users \           --entity-name $username ``` @@ -193,7 +213,6 @@ sudo ./kafka-acls.sh --bootstrap-server :9092,:9092, --generate --topics-to-move-json-file topics.json --broker-list "0,1,2" --execute ``` -: : : warning +: : : info Операция перераспределения партиций требует времени и может создавать дополнительную нагрузку на кластер. Выполнение рекомендуется в период наименьшей активности. -: : : \ No newline at end of file +: : : + + + + diff --git a/src/PaaS/Apache-Kafka/base-tier-topics-guide.md b/src/PaaS/Apache-Kafka/base-tier-topics-guide.md index 315cd58..4894e85 100644 --- a/src/PaaS/Apache-Kafka/base-tier-topics-guide.md +++ b/src/PaaS/Apache-Kafka/base-tier-topics-guide.md @@ -20,7 +20,7 @@ : : : : : : tip -Не используйте имена, начинающиеся с двойного подчеркивания ( __ ), например, **__consumer_offsets**. Эти имена зарезервированы для внутренних топиков Kafka. +Не используйте имена, начинающиеся с двойного подчеркивания (__), например, **__consumer_offsets**. Эти имена зарезервированы для внутренних топиков Kafka. : : : ### Количество партиций (partitions) @@ -43,6 +43,7 @@ Partitions = max(NP, NC) - TT - общая ожидаемая пропускная способность системы; - TP - максимальная пропускная способность одного продюсера для одной партиции; - TC - максимальная пропускная способность одного консьюмера для одной партиции. + ### Фактор репликации (replication-factor) Фактор репликации определяет количество копий данных, хранящихся на разных брокерах. diff --git a/src/PaaS/Apache-Kafka/full-tier-connection.md b/src/PaaS/Apache-Kafka/full-tier-connection.md index d2231d6..d916845 100644 --- a/src/PaaS/Apache-Kafka/full-tier-connection.md +++ b/src/PaaS/Apache-Kafka/full-tier-connection.md @@ -2,14 +2,14 @@ ## О разделе -В данном разделе описаны способы подключения к управляемому кластеру Kafka при тарифе Full. Рассматриваются два варианта: незашифрованное подключение (SASL_PLAINTEXT) и зашифрованное подключение с использованием SSL-сертификатов (SASL_SSL). Также приведены примеры работы с клиентскими утилитами. +В данном разделе описаны способы подключения к управляемому кластеру Kafka. Рассматриваются два варианта: незашифрованное подключение (SASL_PLAINTEXT) и зашифрованное подключение с использованием SSL-сертификатов (SASL_SSL). Также приведены примеры работы с клиентскими утилитами. ## Предварительные требования Для работы с кластером Kafka необходимо наличие следующих компонентов: 1. **Установленный клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию; -2. **Установленная Java** - для работы с Kafka требуется среда выполнения Java. Установка выполняется командой: **sudo apt install openjdk-17-jre-headless**. Рекомендуется использовать версию OpenJDK 17 или выше; +2. **Установленная Java** - для работы с Kafka требуется среда выполнения Java. Установка выполняется командой: **sudo apt install openjdk-17-jre-headless.** Рекомендуется использовать версию OpenJDK 17 или выше; 3. **Доступ к брокерам** - адреса брокеров (bootstrap servers) предоставляются после развертывания кластера; 4. **Учетные данные** - пользователи создаются по Вашему запросу. Например, с правами чтения топиков и записи в них. 5. **Корневой сертификат (для SSL-подключения)** - сертификат для зашифрованного подключения предоставляется файлом при заказе сервиса Kafka. @@ -20,11 +20,11 @@ |Скрипт|Назначение| |---|---| -|**kafka-console-producer.sh**|Отправка сообщений в топик| -|**kafka-console-consumer.sh**|Чтение сообщений из топика| - +|`kafka-console-producer.sh`|Отправка сообщений в топик| +|`kafka-console-consumer.sh`|Чтение сообщений из топика В разделе ниже приведены примеры использования скриптов. -Подробное описание операций с данными и другими скриптами приведено в [официальной документации Kafka](https://kafka.apache.org/42/operations/basic-kafka-operations/). Дополнительную информацию можно получить, выполнив любой скрипт с флагом --help: + +Подробное описание операций с данными и другими скриптами приведено в [официальной документации Kafka](https://kafka.apache.org/42/getting-started/introduction/). Дополнительную информацию можно получить, выполнив любой скрипт с флагом --help: ``` ./kafka-console-producer.sh @@ -32,57 +32,58 @@ ## Конфигурационные файлы клиента -Для подключения к Kafka используется файл настроек (client.properties), который содержит параметры аутентификации и протокола. +Для подключения к Kafka используется файл настроек (client.properties), который содержит параметры аутентификации, протокола и его механизмов (рекомендуются SCRAM_SHA_512 и SCRAM_SHA_256). ### Незашифрованное подключение (SASL_PLAINTEXT) -Создается файл **client.properties** со следующим содержимым: +Создается файл client.properties со следующим содержимым: ``` -sasl.mechanism=SCRAM-SHA-512 -security.protocol=SASLPLAINTEXT -sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ -    username="вашлогин" \ +sasl.mechanism=SCRAM-SHA-512 +security.protocol=SASLPLAINTEXT +sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ +    username="вашлогин" \     password="вашпароль"; ``` ### Зашифрованное подключение (SASL_SSL) -Для зашифрованного подключения дополнительно требуется корневой сертификат и хранилище доверенных сертификатов (truststore). +Для зашифрованного подключения (в production-средах рекомендуется использовать именно его) дополнительно требуется корневой сертификат и хранилище доверенных сертификатов (truststore). -#### Шаг 1. Создание truststore +Шаг 1. Создание truststore С помощью утилиты **keytool** выполняется импорт сертификата в хранилище: ``` -keytool -importcert -storetype PKCS12 -keystore /путь/к/трастстору/truststore.jks -alias myalias -file ca.crt -storepass _любойвашпароль -keypass любойвашпароль_ +keytool -importcert -storetype PKCS12 -keystore /путь/к/трастстору/truststore.jks -alias myalias -file ca.crt -storepass любойвашпароль -keypass любойвашпароль ``` -**Параметры:** -- **keystore** - путь к создаваемому хранилищу; -- **alias** - псевдоним сертификата в хранилище; -- **file** - путь к загруженному корневому сертификату; -- **storepass** - пароль для доступа к хранилищу; -- **keypass** - пароль для доступа к ключу. +Параметры: -#### Шаг 2. Настройка client.properties +- keystore - путь к создаваемому хранилищу; +- alias - псевдоним сертификата в хранилище; +- file - путь к загруженному корневому сертификату; +- storepass - пароль для доступа к хранилищу; +- keypass - пароль для доступа к ключу. + +Шаг 2. Настройка client.properties В файл **client.properties** добавляются параметры SSL: ``` -sasl.mechanism=SCRAM-SHA-512 -security.protocol=SASLSSL -sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ -    username="вашлогин" \ -    password="вашпароль"; -ssl.truststore.location=/путь/к/трастстору/truststore.jks +sasl.mechanism=SCRAM-SHA-512 +security.protocol=SASLSSL +sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ +    username="вашлогин" \ +    password="вашпароль"; +ssl.truststore.location=/путь/к/трастстору/truststore.jks ssl.truststore.password=парольотхранилища ``` ## Примеры подключения -Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091 -Для зашифрованного подключения (SASL_SSL) используется порт 9092 +Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091; +Для зашифрованного подключения (SASL_SSL) используется порт 9092. ### Отправка сообщения в топик @@ -92,14 +93,14 @@ ssl.truststore.password=парольотхранилища ./kafka-console-producer.sh --bootstrap-server :9092,:9092,:9092 --command-config~/client.properties --topic test-topic ``` -**Параметры:** +Параметры: -- **bootstrap-server** - список брокеров кластера (адреса и порты); -- **command-config** - путь к файлу с настройками клиента. +- bootstrap-server - список брокеров кластера (адреса и порты); +- command-config - путь к файлу с настройками клиента; После выполнения команды сообщения вводятся построчно. Для завершения используется сочетание клавиш Ctrl+C. -### Чтение сообщений из топика +### Чтение сообщений из топика Выполняется команда с указанием топика и, при необходимости, consumer group: @@ -107,20 +108,21 @@ ssl.truststore.password=парольотхранилища ./kafka-console-consumer.sh --bootstrap-server :9092,:9092,:9092 --command-config~/client.properties --topic test-topic --from-beginning --group my-new-consumer-group ``` -**Параметры:** +Параметры: -- **from-beginning** - чтение всех сообщений с начала (при отсутствии параметра чтение начинается с новых сообщений); -- **group -** название consumer group, которая при её указании создастся автоматически. +- **from-beginning** - чтение всех сообщений с начала (при отсутствии параметра чтение начинается с новых сообщений); +- **group** - название consumer group, которая при её указании создастся автоматически. ## Администрирование кластера : : : info -Для изменения параметров кластера Kafka (CPU, RAM, DISK, количества брокеров, параметров топиков) необходимо направить запрос в Service Desk по адресу [servicedesk@datafort.ru](mailto:servicedesk@datafort.ru) с указанием требуемых значений. +Для изменения параметров кластера Kafka (CPU, RAM, DISK, количества брокеров, параметров топиков) необходимо направить запрос в Service Desk по адресу servicedesk@datafort.ru с указанием требуемых значений. : : : ### Изменение количества брокеров Выполняется также через обращение в техническую поддержку. + Брокеров в кластере рекомендуется поддерживать **нечетным** для корректной работы механизмов выборов лидера. : : : info diff --git a/src/PaaS/PostgreSQL/about.md b/src/PaaS/PostgreSQL/about.md index 54e00b7..b63648e 100644 --- a/src/PaaS/PostgreSQL/about.md +++ b/src/PaaS/PostgreSQL/about.md @@ -86,22 +86,3 @@ PostgreSQL - это современная система управления - быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover; - администрирование баз данных через веб-интерфейс без прямого доступа к серверам кластера. -## Рекомендации для сервиса - -Использовать TLS-защищённые протоколы для подключения к сервису. - -### Пароли - -1. **Длина пароля (рекомендуемая):** - -- для учётной записи пользователя - не менее 12 знаков; -- для учётных записей администраторов, технических и служебных УЗ - не менее 16 знаков. - -2. Использовать уникальный пароль, содержащий символы как минимум трёх из четырёх указанных ниже групп (при отсутствии технических ограничений): - -- буквы латинского алфавита в верхнем регистре (A-Z); -- буквы латинского алфавита в нижнем регистре (a-z); -- цифры (0–9); -- специальные символы и знаки пунктуации (например, !@#$%^&*(),.?). - -3. Рекомендуемая периодичность смены пароля - не реже 1 раза в год. \ No newline at end of file diff --git a/src/PaaS/PostgreSQL/user-capabilities.md b/src/PaaS/PostgreSQL/user-capabilities.md index dca1ef4..970d9d6 100644 --- a/src/PaaS/PostgreSQL/user-capabilities.md +++ b/src/PaaS/PostgreSQL/user-capabilities.md @@ -79,6 +79,21 @@ $:$: |Создание новой базы данных | Для создания базы данных | ```CREATE DATABASE app_db;``` | |Создание базы данных с указанием владельца | Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает | ```CREATE DATABASE app_db OWNER client;``` | +### Требования к паролям + +**Длина пароля (рекомендуемая):** + +- для учётной записи пользователя - не менее 12 знаков; +- для учётных записей администраторов, технических и служебных учётных записей - не менее 16 знаков. + +**Сложность пароля:** рекомендуется использовать уникальный пароль, содержащий символы как минимум трёх из четырёх указанных ниже групп (при отсутствии технических ограничений): + +- буквы латинского алфавита в верхнем регистре (A-Z); +- буквы латинского алфавита в нижнем регистре (a-z); +- цифры (0-9); +- специальные символы и знаки пунктуации (например, `!@#$%^&*(),.?`). + +**Периодичность смены:** рекомендуемая периодичность смены пароля - не реже одного раза в год. ## Создание пользователей и ролей From c01886e49b9ae605a3c7d4107631498e30dbf8c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Wed, 29 Apr 2026 10:22:17 +0300 Subject: [PATCH 05/10] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=BE=20=D1=81=D0=B5=D1=80=D0=B2=D0=B8=D1=81?= =?UTF-8?q?=D1=83=20kafka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/Apache-Kafka/about-service.md | 5 +- src/PaaS/Apache-Kafka/base-tier-connection.md | 36 +++---- .../Apache-Kafka/base-tier-topics-guide.md | 71 ++++++++------ src/security/Cloud-MFA/MFA-index.md | 19 ++++ src/security/Cloud-MFA/about.md | 34 +++++++ .../Cloud-MFA/description/components.md | 96 +++++++++++++++++++ .../Cloud-MFA/description/compound.md | 83 ++++++++++++++++ 7 files changed, 298 insertions(+), 46 deletions(-) create mode 100644 src/security/Cloud-MFA/MFA-index.md create mode 100644 src/security/Cloud-MFA/about.md create mode 100644 src/security/Cloud-MFA/description/components.md create mode 100644 src/security/Cloud-MFA/description/compound.md diff --git a/src/PaaS/Apache-Kafka/about-service.md b/src/PaaS/Apache-Kafka/about-service.md index 0b61f2c..1a1d7a5 100644 --- a/src/PaaS/Apache-Kafka/about-service.md +++ b/src/PaaS/Apache-Kafka/about-service.md @@ -1,5 +1,4 @@ -# О сервисе -## Назначение сервиса +# Назначение сервиса Данный сервис предназначен для команд, которым требуется надёжный и масштабируемый конвейер данных без необходимости самостоятельно разворачивать и обслуживать инфраструктуру Kafka. @@ -34,6 +33,7 @@ Kafka является стандартным решением для организации связи между микросервисами. В такой архитектуре сервисы обмениваются событиями асинхронно, что повышает надёжность и масштабируемость системы в целом.Преимущества управляемого сервиса ## Преимущества управляемого сервиса + ### Администрирование Клиенту не требуется самостоятельно разворачивать и обслуживать кластер Kafka. Мы берём на себя управление инфраструктурой, обновление версий, масштабирование и поддержку работоспособности. @@ -75,6 +75,7 @@ Kafka является стандартным решением для орган - **Работа с transactional ID** - полный цикл управления транзакционными идентификаторами (создание, изменение, удаление). Транзакционный идентификатор присваивается продюсеру Kafka для обеспечения атомарности операций: запись нескольких сообщений или коммит оффсетов выполняются по принципу «всё или ничего», а также предотвращается появление «зомби-продюсеров» при перезапусках. Инфраструктурное ядро кластера (брокеры, репликация, отказоустойчивость) остаётся под управлением провайдера. + ### Full Тарифный план для тех, кто предпочитает полностью делегировать задачи по администрированию Kafka. diff --git a/src/PaaS/Apache-Kafka/base-tier-connection.md b/src/PaaS/Apache-Kafka/base-tier-connection.md index e7ea2c1..91f4094 100644 --- a/src/PaaS/Apache-Kafka/base-tier-connection.md +++ b/src/PaaS/Apache-Kafka/base-tier-connection.md @@ -2,20 +2,24 @@ ## О разделе -В данном разделе описаны способы подключения к управляемому кластеру Kafka. Рассматриваются два варианта: незашифрованное подключение (SASL_PLAINTEXT) и зашифрованное подключение с использованием SSL-сертификатов (SASL_SSL). Также приведены примеры работы с клиентскими утилитами и базовые операции администрирования. +Раздел содержит описание способов подключения к управлению кластером Kafka. Поддерживаются два типа подключения: +- `SASL_PLAINTEXT` - незашифрованное; +- `SASL_SSL` - зашифрованное (через SSL-сертификат). + +Также в разделе приведены примеры работы с клиентскими утилитами и базовые операции администрирования. ## Предварительные требования -Для работы с кластером Kafka необходимо наличие следующих компонентов: -1. **Установленный клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию; -2. **Установленная Java** - для работы с Kafka требуется среда выполнения Java. Установка выполняется командой: **sudo apt install openjdk-17-jre-headless**. Рекомендуется использовать версию OpenJDK 17 или выше; +Для начала работы с кластером Kafka необходимо выполнить предварительную настройку: +1. **Установить клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию; +2. **Установить среду выполнения Java** - для работы необходимо установить среду выполнения, с помощью команды: `**sudo apt install openjdk-17-jre-headless**`. Рекомендуется использовать версию OpenJDK 17 или выше; 3. **Доступ к брокерам** - адреса брокеров (bootstrap servers) предоставляются после развертывания кластера; 4. **Учетные данные**: - Имя пользователя (username) - стандартное значение client; - Пароль - предоставляется после развертывания кластера. 5. **Корневой сертификат (для SSL-подключения)** - сертификат для зашифрованного подключения предоставляется файлом при заказе сервиса Kafka. -## Структура клиентского дистрибутива  +## Структура клиентского дистрибутива После распаковки архива Kafka в директории bin доступны основные скрипты для управления: @@ -27,6 +31,7 @@ | `kafka-consumer-groups.sh` | Управление консьюмер-группами | | `kafka-configs.sh` | Изменение конфигурации топиков и других объектов | | `kafka-acls.sh` | Управление списками доступа (ACL) | + В разделе ниже приведены примеры использования скриптов. Подробное описание операций с данными и другими скриптами приведено в [официальной документации Kafka](https://kafka.apache.org/42/getting-started/introduction/). Дополнительную информацию можно получить, выполнив любой скрипт с флагом --help: @@ -35,10 +40,9 @@ ./kafka-topics.sh --help ``` - ### Конфигурационные файлы клиента -Для подключения к Kafka используется файл настроек (client.properties), который содержит параметры аутентификации, протокола и его механизмов (рекомендуются SCRAM_SHA_512 и SCRAM_SHA_256). +Для подключения к Kafka используется файл настроек **client.properties**, который содержит параметры аутентификации, протокола и его механизмов (рекомендуются SCRAM_SHA_512 и SCRAM_SHA_256). ### Незашифрованное подключение (SASL_PLAINTEXT) @@ -56,7 +60,7 @@ sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule require Для зашифрованного подключения (в production-средах рекомендуется использовать именно его) дополнительно требуется корневой сертификат и хранилище доверенных сертификатов (truststore). -Шаг 1. Создание truststore +#### Шаг 1. Создание truststore С помощью утилиты **keytool** выполняется импорт сертификата в хранилище: @@ -72,7 +76,7 @@ keytool -importcert -storetype PKCS12 -keystore /путь/к/трастстор - **storepass** - пароль для доступа к хранилищу; - **keypass** - пароль для доступа к ключу. -Шаг 2. Настройка client.properties +#### Шаг 2. Настройка client.properties В файл **client.properties** добавляются параметры SSL: @@ -91,7 +95,7 @@ ssl.truststore.password=парольотхранилища Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091; Для зашифрованного подключения (SASL_SSL) используется порт 9092. -### Создание топиков  +### Создание топиков ``` ./kafka-topics.sh --bootstrap-server :9092,:9092,:9092 --command-config ../config/client.properties --create --topic <имя топика> --partitions <количество партиций> --replication-factor <значение> --config min.insync.replicas=<значение> @@ -139,7 +143,8 @@ command-config - путь к файлу с настройками клиент - **group** - название consumer group, которая создастся автоматически. ## Управление пользователями и доступом -## Рекомендации к паролям + +#### Рекомендации к паролям **Длина пароля (рекомендуемая):** @@ -213,6 +218,7 @@ sudo ./kafka-acls.sh --bootstrap-server :9092,:9092, --generate --topics-to-move-json-file topics.json --broker-list "0,1,2" --execute ``` -: : : info +::: info Операция перераспределения партиций требует времени и может создавать дополнительную нагрузку на кластер. Выполнение рекомендуется в период наименьшей активности. -: : : - - - - +::: diff --git a/src/PaaS/Apache-Kafka/base-tier-topics-guide.md b/src/PaaS/Apache-Kafka/base-tier-topics-guide.md index 4894e85..0898a7c 100644 --- a/src/PaaS/Apache-Kafka/base-tier-topics-guide.md +++ b/src/PaaS/Apache-Kafka/base-tier-topics-guide.md @@ -1,35 +1,41 @@ -# Рекомендации по настройке топика (тариф Base) +# Настройка топика -## О разделе +## Рекомендации по настройке топика (тариф Base) + +В разделе описаны основные параметры топиков Apache Kafka, влияющие на производительность, отказоустойчивость и параллелизм обработки данных. -При настройке топиков в Kafka важно учитывать несколько ключевых параметров для оптимальной работы системы. В данном разделе рассматриваются основные настройки, которые помогут правильно настроить топик. ## Базовые параметры топика ### Имя топика -При задании имени топика необходимо соблюдать следующие правила: +При именовании топика применяются следующие правила: **Допустимые символы:** -- имя должно начинаться с буквы (латиница), цифры или подчеркивания ( _ ); -- далее могут использоваться буквы, цифры, точки ( . ), дефисы ( - ) и подчеркивания; -- длина имени - от 3 до 200 символов; -- следует учитывать, что имя топика не подлежит изменению после создания. +- первый символ — буква (a–z, A–Z), цифра (0–9) или подчёркивание (_); +- последующие символы — буквы, цифры, точки (.), дефисы (-) или подчёркивания; +- длина имени — от 3 до 200 символов. -: : : tip +**Ограничения:** +- имя топика нельзя изменить после создания; +- не рекомендуется использовать имена, различающиеся только точкой и подчёркиванием (например, `topic_1` и `topic.1`): Kafka не различает такие названия; +- имена с двойным подчёркиванием в начале (например, `__consumer_offsets`) зарезервированы для внутренних топиков Kafka. + +::: tip Избегайте использования имен, отличающихся только точкой и подчеркиванием (например, topic_1 и topic.1), так как Kafka не различает такие названия -: : : +::: -: : : tip +::: tip Не используйте имена, начинающиеся с двойного подчеркивания (__), например, **__consumer_offsets**. Эти имена зарезервированы для внутренних топиков Kafka. -: : : +::: + ### Количество партиций (partitions) -Партиции определяют степень параллелизма при обработке данных. Количество партиций выбирается исходя из требуемой пропускной способности. +Партиции определяют уровень параллелизма при чтении и записи данных. Количество партиций выбирается исходя из требуемой пропускной способности. -**Основные правила:** -- количество партиций можно **только увеличивать** (уменьшить нельзя). Это следует учитывать при планировании; -- если в кластере несколько брокеров, желательно, чтобы количество партиций было кратно количеству брокеров - это способствует равномерному распределению данных; -- рекомендуется отслеживать отставание потребителей (consumer lag) и при необходимости увеличивать количество партиций. +**Правила:** +- количество партиций можно только увеличивать (уменьшение невозможно); +- при наличии нескольких брокеров рекомендуется выбирать число партиций, кратное количеству брокеров — для равномерного распределения нагрузки; +- рекомендуется мониторить отставание потребителей (consumer lag) и при необходимости увеличивать число партиций. **Расчет количества партиций:** Количество партиций определяется по формуле: @@ -48,18 +54,29 @@ Partitions = max(NP, NC) Фактор репликации определяет количество копий данных, хранящихся на разных брокерах. -: : : tip -Для production-сред настоятельно рекомендуется устанавливать значение 3. Это означает, что у каждой партиции будет один лидер и две реплики, что обеспечивает отказоустойчивость при выходе из строя одного брокера. -: : : -## Ключевые параметры конфигурации -### min.insync.replicas (минимальное количество синхронизированных реплик) +> **Рекомендация для production-сред:** установите значение **3**. +> При этом каждая партиция получает одного лидера и две реплики, что обеспечивает отказоустойчивость при выходе одного брокера. + +## Дополнительные параметры конфигурации + +### `min.insync.replicas` (минимальное количество синхронизированных реплик) + +Параметр действует совместно с настройкой продюсера `acks=all`. Определяет минимальное количество синхронизированных реплик (включая лидера), которые должны подтвердить запись для её успешного завершения. + +**Рекомендация:** при факторе репликации = 3 установите `min.insync.replicas = 2`. + +**Эффекты:** +- **надёжность** — данные записаны минимум на два брокера; +- **доступность** — при отказе одного брокера запись продолжается. + +> **Важно:** не устанавливайте значение, равное фактору репликации (например, 3). +> В противном случае при перезагрузке одного брокера запись в топик станет невозможной: система будет ожидать подтверждения от всех трёх реплик. -Параметр работает в связке с настройкой продюсера acks=all. Определяет, сколько реплик (включая лидера) должны подтвердить запись, чтобы она считалась успешной. При факторе репликации = 3 рекомендуется установить значение **2**. Это обеспечивает: -- надежность: данные записаны минимум на два брокера; -- доступность: при отказе одного брокера запись продолжается. +- **надежность**: данные записаны минимум на два брокера; +- **доступность**: при отказе одного брокера запись продолжается. -: : : tip +::: tip Не рекомендуется устанавливать значение равным фактору репликации (например, 3). В этом случае при перезагрузке одного брокера запись в топик станет невозможной, так как для подтверждения потребуется подтверждение от всех трех реплик. -: : : +::: diff --git a/src/security/Cloud-MFA/MFA-index.md b/src/security/Cloud-MFA/MFA-index.md new file mode 100644 index 0000000..9e819c9 --- /dev/null +++ b/src/security/Cloud-MFA/MFA-index.md @@ -0,0 +1,19 @@ +--- +section_links: + - title: Обзор сервиса + link: /security/Cloud-MDM/about.md + description: + - title: Порядок платежей + link: /security/Cloud-MDM/payments.md + description: + - title: Качественные характеристики сервиса + link: /security/Cloud-MDM/characteristics.md + description: + - title: Сроки и условия предоставления сервиса + link: /security/Cloud-MDM/provision.md + description: +--- + +# Cloud Multifactor Authentication (MFA) + +Сервис предназначен для настройки процесса подключения к системе. Процесс состоит из нескольких шагов и требует от пользователя указать дополнительные данные, а не только пароль. \ No newline at end of file diff --git a/src/security/Cloud-MFA/about.md b/src/security/Cloud-MFA/about.md new file mode 100644 index 0000000..6af6075 --- /dev/null +++ b/src/security/Cloud-MFA/about.md @@ -0,0 +1,34 @@ +# Cloud Multifactor Authentication (MFA) + +## Основа сервиса + +Сервис **Cloud Multifactor Authentication (MFA)** используется для настройки процесса входа в систему. Процесс состоит из нескольких шагов и требует от пользователя указать больше информации, а не только пароль. Сервис может быть как отдельным, так и опцией к уже существующим. Сервис реализован на базе российского решения Multifactor. + +## Задачи сервиса + +- Защита информационных систем от несанкционированного доступа и компрометации учетных данных. +- Усиленный контроль доступа к данным и приложениям. +- Выполнение требований стандартов в сфере информационной безопасности: + - PCI-DSS; + - HIPAA; + - SOX; + - NERC; + - FISMA; + - ISO; + - GLBA; + - GPG13 и т.д. + +## Особенности и конкурентные преимущества сервиса + +- Сервис работает по принципу zero trust: Multifactor не получает пароли пользователей. +- Пользователи могут самостоятельно настроить аутентификацию при первом входе, без регистрации. Функционал работает в браузере без установки плагинов, драйверов и сторонних приложений. +- Сервис поддерживает следующие факторы: + - бот в Telegram; + - биометрия; + - U2F; + - FIDO; + - OTP; + - Google Authenticator; + - Яндекс.Ключ; + - Звонки; + - SMS. \ No newline at end of file diff --git a/src/security/Cloud-MFA/description/components.md b/src/security/Cloud-MFA/description/components.md new file mode 100644 index 0000000..1970309 --- /dev/null +++ b/src/security/Cloud-MFA/description/components.md @@ -0,0 +1,96 @@ +# Компоненты сервиса + +## Виды компонентов + +В зависимости от решаемой задачи и архитектуры защищаемых систем используется один или несколько технических компонентов сервиса **Cloud Multifactor Authentication (MFA)**: + +- личный кабинет администратора; +- radius adapter; +- ldap adapter; +- портал самообслуживания. + +Все перечисленные компоненты разрабатываются и поддерживаются компанией Мультифактор. + +## 1. Личный кабинет администратора + +**Личный кабинет администратора** — это веб-приложение, доступное через интернет. С его помощью ИТ-специалисты управляют четырьмя категориями объектов: + +- пользователями; +- группами пользователей; +- интеграцией с защищаемыми информационными системами; +- списком доступных вторых факторов. + +## 2. Radius Adapter + +**Radius Adapter** — это RADIUS-сервер, обеспечивающий двухфакторную аутентификацию пользователей при удалённом доступе. Компонент поставляется с исходным кодом и работает под управлением Linux. + +::: warning Важно + +Пароль пользователя не передаётся в облако Multifactor и не покидает периметр сети. В облако передаётся только логин — для идентификации пользователя и доставки ему второго фактора. + +::: + +### Возможности + +- приём запросов на аутентификацию по протоколу RADIUS; +- проверка первого фактора (логина и пароля) в Active Directory (включая AD LDS) или Network Policy Server; +- проверка второго фактора на устройстве пользователя; +- настройка второго фактора в режиме диалога с пользователем; +- управление доступом на основе членства пользователя в группе AD; +- выборочное включение второго фактора в зависимости от членства пользователя в группе AD; +- настройка атрибутов RADIUS-ответа на основе членства пользователя в группе AD; +- проксирование запросов и ответов Network Policy Server; +- отправка журналов событий в Syslog-сервер или SIEM-систему; +- режим bypass: при недоступности сервера система может пропускать пользователя без второго фактора или блокировать доступ. + +## 3. LDAP Adapter + +**LDAP Adapter** — это LDAP proxy-сервер, разработанный и поддерживаемый компанией Мультифактор для двухфакторной аутентификации пользователей в приложениях, использующих LDAP-аутентификацию. Компонент поставляется с исходным кодом и работает под управлением Linux. + +::: warning Важно + +Компонент не влияет на проверку имени и пароля пользователя. Второй фактор включается только после успешной проверки учётной записи в Active Directory или другом LDAP-каталоге. + +::: + +### Возможности + +- проксирование сетевого трафика по протоколу LDAP; +- поиск запросов на аутентификацию и подтверждение вторым фактором на устройстве пользователя; +- работа по протоколам LDAP и LDAPS (шифрованный TLS-канал); +- перехват запросов на аутентификацию, использующих механизмы Simple, Digital, NTLM; +- пропуск запросов от служебных учётных записей (Bind DN) без второго фактора; +- настройка доступа на основе принадлежности пользователя к группе AD; +- выборочное включение второго фактора в зависимости от принадлежности пользователя к группе AD; +- отправка журналов событий в Syslog-сервер или SIEM-систему; +- режим bypass: при недоступности API система может пропускать пользователя без второго фактора или блокировать доступ. + +## 4. Портал самообслуживания + +**SelfService Portal (Портал самообслуживания)** — это веб-сайт, разработанный и поддерживаемый компанией Мультифактор для самостоятельной регистрации второго фактора аутентификации пользователями с учётными записями из Active Directory или других LDAP-каталогов. Компонент поставляется с исходным кодом. В рамках сервиса применяются Linux-версия и Windows-версия. + +### Возможности + +Портал предназначен для установки и работы внутри корпоративной сети. Также портал может быть опубликован для доступа из сети интернет. + +- проверка логина и пароля пользователя в LDAP-каталоге или домене Active Directory (Windows-версия может осуществлять проверку в нескольких доменах, если между ними настроены доверительные отношения); +- настройка второго фактора аутентификации; +- смена пароля пользователя после подтверждения второго фактора; +- смена просроченного или требующего замены пароля; +- единая точка входа (Single Sign-On) для корпоративных приложений с поддержкой протоколов SAML, OpenID Connect / OAuth; +- выборочное включение второго фактора на основе принадлежности пользователя к группе в AD при Single Sign-On входе; +- управление ActiveSync-устройствами для доступа к почте Exchange; +- поддержка проверки CAPTCHA на странице входа в портал. + +## Соответствие тарифов и адаптеров + +|Подключаемый сервис | Тип адаптера | +|--------------------|-----------------| +|NGAF ra VPN | LDAP | +|UserGate ra VPN | LDAP | +|Pfsense ra VPN | RADIUS | +|OWA | Модуль для OWA | +|ADFS | Модуль для ADFS | +|Vmware horizon VDI | RADIUS | + +Дополнительно прочтите про [настройку двухфакторной аутентификации в VPN на основе межсетевого экрана UserGate](https://multifactor.ru/docs/vpn/usergate-2fa-vpn/). \ No newline at end of file diff --git a/src/security/Cloud-MFA/description/compound.md b/src/security/Cloud-MFA/description/compound.md new file mode 100644 index 0000000..ed09c40 --- /dev/null +++ b/src/security/Cloud-MFA/description/compound.md @@ -0,0 +1,83 @@ +# Состав сервиса + +## Варианты услуги + +Сервис **Cloud Multifactor Authentication (MFA)** предлагает два варианта: + +Self-Service, +Managed Service. + +Beeline cloud тарифицирует дополнительные работы по фактическим трудозатратам. + +## Личный кабинет администратора + +Личный кабинет администратора — веб-приложение, доступное из сети интернет. Через приложение ИТ-специалисты управляют четыреми элементами: + +- пользователями, +- группами пользователей, +- интеграцией с защищаемыми информационными системами, +- списком доступных вторых факторов. + +## Radius Adapter + +Radius Adapter — RADIUS-сервер, который используется для двухфакторной аутентификации пользователей при использовании удаленного доступа. Компонент доступен вместе с исходным кодом. Radius Adapter использует Linux-версию. + +Radius adapter не передает пароль пользователя в облако Multifactor. Пароль не покидает периметр сети. Передается только логин для идентификации пользователя и доставки ему второго фактора. + +### Возможности + +- Прием запросов на аутентификацию по протоколу RADIUS. +- Проверка первого фактора аутентификации — логина и пароля пользователя в Active Directory (в том числе AD LDS) или Network Policy Server. +- Проверка второго фактора аутентификации на телефоне пользователя. +- Настройка второго фактора в режиме диалога с пользователем. +- Настройка доступа на основе принадлежности пользователя к группе в AD. +- Избирательное включение второго фактора на основе принадлежности пользователя к группе AD. +- Настройка атрибутов ответа RADIUS на основе принадлежности пользователя к группе AD. +- Проксирование запросов и ответов Network Policy Server. +- Запись журналов в Syslog сервер или SIEM-систему. +- Режим bypass. В случае недоступности API система предлагает возможность пропускать пользователя без второго фактора или блокировать. + +## LDAP Adapter + +LDAP Adapter — LDAP proxy-сервер, разработанный и поддерживаемый компанией Мультифактор для двухфакторной аутентификации пользователей в приложениях, использующих LDAP аутентификацию. Компонент доступен вместе с исходным кодом. LDAP Adapter использует Linux-версию. + +Компонент не влияет на проверку имени и пароля пользователя. Второй фактор включается только, после успешной проверки учетной записи в Active Directory или другом LDAP каталоге. + +### Возможности + +- Проксирование сетевого трафика по протоколу LDAP. +- Поиск запросов на аутентификацию и подтверждение вторым фактором на телефоне пользователя. +- Работа по протоколам LDAP и LDAPS (шифрованный TLS канал). +- Перехват запросов на аутентификацию, использующих механизмы Simple, Digital, NTLM. +- Пропуск запросов от сервисных учетных записей (Bind DN) без второго фактора. +- Настройка доступа на основе принадлежности пользователя к группе AD. +- Избирательное включение второго фактора на основе принадлежности пользователя к группе AD. +- Звпись журналов в Syslog сервер или SIEM-систему. +- Режим bypass. В случае недоступности API система предлагает возможность пропускать пользователя без второго фактора или блокировать. + +## Портал самообслуживания + +SelfService Portal (Портал самообслуживания) — веб-сайт, разработанный и поддерживаемый компанией Мультифактор для самостоятельной регистрации второго фактора аутентификации пользователями с учётными записями из Active Directory или других LDAP каталогов. Компонент доступен вместе с исходным кодом. В рамках сервиса применяется Linux-версия и Windows-версии. + +### Возможности + +Портал предназначен для установки и работы внутри корпоративной сети. Портал может быть опубликован для доступа из сети интернет. + +- Проверка логина и пароля пользователя в LDAP-каталоге или домене Active Directory. Windows-версия может осуществлять проверку в нескольких доменах, если между ними настроены доверительные отношения. +- Настройка второго фактора аутентификации. +- Смена пароля пользователя после подтверждения второго фактора. +- Смена просроченного или требующего замены пароля. +- Единая точка входа (Single Sign-On) для корпоративных приложений с поддержкой протоколов SAML, OpenID Connect / Oauth. +- Избирательное включение второго фактора на основе принадлежности пользователя к группе в AD при Single Sign-On входе. +- Управление ActiveSync устройствами для доступа к почте Exchange. +- Поддержка проверки CAPTCHA на странице входа в портал. + +## Соответствие тарифов и адаптеров + +Подключаемый сервис Тип адаптера +NGAF ra VPN LDAP +UserGate ra VPN LDAP +Pfsense ra VPN RADIUS +OWA Модуль для OWA +ADFS Модуль для ADFS +Vmware horizon VDI RADIUS From 3a96cb441e142a31ade69f0343265b033046d6ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Thu, 30 Apr 2026 12:06:57 +0300 Subject: [PATCH 06/10] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20ka?= =?UTF-8?q?fka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/.vitepress/config.mts | 11 ++ src/PaaS/Apache-Kafka/Kafka-index.md | 22 ++++ src/PaaS/Apache-Kafka/about-service.md | 53 ++++----- src/PaaS/Apache-Kafka/base-tier-connection.md | 36 +++--- .../Apache-Kafka/base-tier-topics-guide.md | 44 +++----- .../Apache-Kafka/cluster-configuretion.md | 103 +++++++++--------- src/PaaS/Apache-Kafka/full-tier-connection.md | 68 +++++++----- 7 files changed, 173 insertions(+), 164 deletions(-) create mode 100644 src/PaaS/Apache-Kafka/Kafka-index.md diff --git a/src/.vitepress/config.mts b/src/.vitepress/config.mts index e80bcc5..59028e4 100644 --- a/src/.vitepress/config.mts +++ b/src/.vitepress/config.mts @@ -176,6 +176,17 @@ export default defineConfig({ ], }, {text: 'Параметры конфигурации IPSEC', link: '/PaaS/IPSEC.md'}, + + { text: 'Apache-Kafka', link: '/PaaS/Apache-Kafka/Kafka-index.md', + collapsed: true, + items: [ + {text: 'Обзор сервиса', link: '/PaaS/Apache-Kafka/about-service.md'}, + {text: 'Работа с кластером Kafka по тарифу Base', link: '/PaaS/Apache-Kafka/base-tier-connection.md'}, + {text: 'Настройка топика по тарифу Base', link: '/PaaS/Apache-Kafka/base-tier-topics-guide.md'}, + {text: 'Конфигурация кластера', link: '/PaaS/Apache-Kafka/cluster-configuretion.md'}, + {text: 'Работа с кластером Kafka по тарифу Full', link: '/PaaS/Apache-Kafka/full-tier-connection.md'}, + ], + }, ], // '/billing/': [ diff --git a/src/PaaS/Apache-Kafka/Kafka-index.md b/src/PaaS/Apache-Kafka/Kafka-index.md new file mode 100644 index 0000000..e5d9693 --- /dev/null +++ b/src/PaaS/Apache-Kafka/Kafka-index.md @@ -0,0 +1,22 @@ +--- +section_links: + - title: Назначение сервиса + link: /Apache-Kafka/about-service.md + description: Назначения и преимущества сервиса + - title: Работа с кластером Kafka по тарифу Base + link: /Apache-Kafka/base-tier-connection.md + description: Подключение и работа с кластером Kafka по тарифу Base + - title: Настройка топика по тарифу Base + link: /Apache-Kafka/base-tier-topics-guide.md + description: Рекомендации по настройке топика Kafka по тарифу Base + - title: Конфигурация кластера + link: /Apache-Kafka/cluster-configuretion.md + description: Конфигурации и возможности кластера Kafka + - title: Работа с кластером Kafka по тарифу Full + link: /Apache-Kafka/full-tier-connection.md + description: Подключение и работа с кластером Kafka по тарифу Full +--- + +# Apache-Kafka + +В данном разделе представлена документация по управляемому сервису **Apache-Kafka** платформы Beeline Cloud. \ No newline at end of file diff --git a/src/PaaS/Apache-Kafka/about-service.md b/src/PaaS/Apache-Kafka/about-service.md index 1a1d7a5..5f0c1a6 100644 --- a/src/PaaS/Apache-Kafka/about-service.md +++ b/src/PaaS/Apache-Kafka/about-service.md @@ -8,37 +8,22 @@ ## Основные понятия -### Продюсер (Producer) - -Программный компонент, который отправляет данные в Kafka. Продюсером может выступать любой сервис, генерирующий события: модуль приложения, система логирования, датчик IoT-устройства. - -### Консьюмер (Consumer) - -Программный компонент, который получает данные из Kafka. Консьюмер подписывается на интересующие его события и обрабатывает поступающие сообщения. - -### Топик (Topic) - -Именованный канал для хранения сообщений определённого типа. Топики организуют потоки данных по смыслу: например, «заказы», «ошибки», «события авторизации». Консьюмеры подписываются на один или несколько топиков для получения релевантных данных. - -### Партиция (Partition) - -Каждый топик разделяется на партиции - логические сегменты, распределяемые между серверами кластера. Партиции обеспечивают параллельную обработку данных: различные части одного топика могут обрабатываться одновременно несколькими консьюмерами. - -### Репликация (Replication) - -Для обеспечения отказоустойчивости партиции копируются на несколько серверов (брокеров). При выходе одного сервера из строя данные остаются доступными на других узлах кластера. - -### Микросервисная архитектура - -Kafka является стандартным решением для организации связи между микросервисами. В такой архитектуре сервисы обмениваются событиями асинхронно, что повышает надёжность и масштабируемость системы в целом.Преимущества управляемого сервиса +| Термин | Описание | +|--------------------------------|----------| +| **Продюсер (Producer)** | Программный компонент, который отправляет данные в Kafka. Продюсером может выступать любой сервис, генерирующий события: модуль приложения, система логирования, датчик IoT-устройства. | +| **Консьюмер (Consumer)** | Программный компонент, который получает данные из Kafka. Консьюмер подписывается на интересующие его события и обрабатывает поступающие сообщения. | +| **Топик (Topic)** | Именованный канал для хранения сообщений определённого типа. Топики организуют потоки данных по смыслу: например, «заказы», «ошибки», «события авторизации». Консьюмеры подписываются на один или несколько топиков для получения релевантных данных. | +| **Партиция (Partition)** | Каждый топик разделяется на партиции - логические сегменты, распределяемые между серверами кластера. Партиции обеспечивают параллельную обработку данных: различные части одного топика могут обрабатываться одновременно несколькими консьюмерами. | +| **Репликация (Replication)** | Для обеспечения отказоустойчивости партиции копируются на несколько серверов (брокеров). При выходе одного сервера из строя данные остаются доступными на других узлах кластера. | +| **Микросервисная архитектура** | Kafka является стандартным решением для организации связи между микросервисами. В такой архитектуре сервисы обмениваются событиями асинхронно, что повышает надёжность и масштабируемость системы в целом. | ## Преимущества управляемого сервиса -### Администрирование +#### Администрирование -Клиенту не требуется самостоятельно разворачивать и обслуживать кластер Kafka. Мы берём на себя управление инфраструктурой, обновление версий, масштабирование и поддержку работоспособности. +Клиенту не требуется самостоятельно разворачивать и обслуживать кластер Kafka. Сервис включает в себя управление инфраструктурой, обновление версий, масштабирование и поддержку работоспособности. -### Мониторинг +#### Мониторинг Предоставляются готовые дашборды в Grafana с визуализацией ключевых метрик: @@ -47,17 +32,17 @@ Kafka является стандартным решением для орган - настроенная система оповещений о критических событиях; - заполнение дискового пространства. -### Безопасность +#### Безопасность Поддерживается шифрованное подключение к кластеру с использованием SSL/TLS-сертификатов, что гарантирует защиту данных при передаче. -### Экспертная поддержка +#### Экспертная поддержка -Мы обладаем практическим опытом администрирования более 500 кластеров Kafka. Накопленная экспертиза позволяет обеспечивать стабильность работы, своевременно выявлять и устранять потенциальные проблемы, оптимизировать конфигурации под конкретные задачи. +Сервис создан с учётом практического опыта администрирования более 500 кластеров Kafka. Накопленная экспертиза позволяет обеспечивать стабильность работы, своевременно выявлять и устранять потенциальные проблемы, оптимизировать конфигурации под конкретные задачи. ## Тарифные планы -### Base +### 1. Тариф "Base" Тарифный план для тех, кто имеет собственную экспертизу в работе с Kafka и желает самостоятельно управлять объектами верхнего уровня. @@ -69,14 +54,14 @@ Kafka является стандартным решением для орган **Возможности:** -- **Управление учетными записями и правами доступа** - создание пользователей и настройка их прав для работы с Kafka; +- **Управление учетными записями и правами доступа** – создание пользователей и настройка их прав для работы с Kafka; - **Администрирование топиков** - полный цикл управления: создание, конфигурирование, настройка параметров и удаление; -- **Управление консьюмер-группами (Consumer Groups)** - возможность создавать, изменять и удалять логические объединения консьюмеров, которые совместно читают сообщения из топиков. Это обеспечивает высокую производительность и отказоустойчивость при обработке данных; -- **Работа с transactional ID** - полный цикл управления транзакционными идентификаторами (создание, изменение, удаление). Транзакционный идентификатор присваивается продюсеру Kafka для обеспечения атомарности операций: запись нескольких сообщений или коммит оффсетов выполняются по принципу «всё или ничего», а также предотвращается появление «зомби-продюсеров» при перезапусках. +- **Управление консьюмер-группами (Consumer Groups)** – возможность создавать, изменять и удалять логические объединения консьюмеров, которые совместно читают сообщения из топиков. Это обеспечивает высокую производительность и отказоустойчивость при обработке данных; +- **Работа с transactional ID** – полный цикл управления транзакционными идентификаторами (создание, изменение, удаление). Транзакционный идентификатор присваивается продюсеру Kafka для обеспечения атомарности операций: запись нескольких сообщений или коммит оффсетов выполняются по принципу «всё или ничего», а также предотвращается появление «зомби-продюсеров» при перезапусках. Инфраструктурное ядро кластера (брокеры, репликация, отказоустойчивость) остаётся под управлением провайдера. -### Full +### 2. Тариф "Full" Тарифный план для тех, кто предпочитает полностью делегировать задачи по администрированию Kafka. diff --git a/src/PaaS/Apache-Kafka/base-tier-connection.md b/src/PaaS/Apache-Kafka/base-tier-connection.md index 91f4094..cd603f2 100644 --- a/src/PaaS/Apache-Kafka/base-tier-connection.md +++ b/src/PaaS/Apache-Kafka/base-tier-connection.md @@ -1,7 +1,5 @@ # Подключение и работа с кластером Kafka (тариф Base) -## О разделе - Раздел содержит описание способов подключения к управлению кластером Kafka. Поддерживаются два типа подключения: - `SASL_PLAINTEXT` - незашифрованное; - `SASL_SSL` - зашифрованное (через SSL-сертификат). @@ -11,6 +9,7 @@ ## Предварительные требования Для начала работы с кластером Kafka необходимо выполнить предварительную настройку: + 1. **Установить клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию; 2. **Установить среду выполнения Java** - для работы необходимо установить среду выполнения, с помощью команды: `**sudo apt install openjdk-17-jre-headless**`. Рекомендуется использовать версию OpenJDK 17 или выше; 3. **Доступ к брокерам** - адреса брокеров (bootstrap servers) предоставляются после развертывания кластера; @@ -40,11 +39,11 @@ ./kafka-topics.sh --help ``` -### Конфигурационные файлы клиента +#### Конфигурационные файлы клиента Для подключения к Kafka используется файл настроек **client.properties**, который содержит параметры аутентификации, протокола и его механизмов (рекомендуются SCRAM_SHA_512 и SCRAM_SHA_256). -### Незашифрованное подключение (SASL_PLAINTEXT) +## Незашифрованное подключение (SASL_PLAINTEXT) Создается файл **client.properties** со следующим содержимым: @@ -56,11 +55,19 @@ sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule require     password="вашпароль"; ``` -### Зашифрованное подключение (SASL_SSL) +::: warning Примечание +Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091; +::: + +## Зашифрованное подключение (SASL_SSL) Для зашифрованного подключения (в production-средах рекомендуется использовать именно его) дополнительно требуется корневой сертификат и хранилище доверенных сертификатов (truststore). -#### Шаг 1. Создание truststore +::: warning Примечание +Для зашифрованного подключения (SASL_SSL) используется порт 9092. +::: + +### Шаг 1. Создание truststore С помощью утилиты **keytool** выполняется импорт сертификата в хранилище: @@ -76,7 +83,7 @@ keytool -importcert -storetype PKCS12 -keystore /путь/к/трастстор - **storepass** - пароль для доступа к хранилищу; - **keypass** - пароль для доступа к ключу. -#### Шаг 2. Настройка client.properties +### Шаг 2. Настройка client.properties В файл **client.properties** добавляются параметры SSL: @@ -90,10 +97,7 @@ ssl.truststore.location=/путь/к/трастстору/truststore.jks ssl.truststore.password=парольотхранилища ``` -## Примеры подключения - -Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091; -Для зашифрованного подключения (SASL_SSL) используется порт 9092. +## Работа с кластером Kafka ### Создание топиков @@ -139,12 +143,12 @@ command-config - путь к файлу с настройками клиент Параметры: -- **from-beginning **- чтение всех сообщений с начала (при отсутствии параметра чтение начинается с новых сообщений); +- **from-beginning**- чтение всех сообщений с начала (при отсутствии параметра чтение начинается с новых сообщений); - **group** - название consumer group, которая создастся автоматически. ## Управление пользователями и доступом -#### Рекомендации к паролям +### Рекомендации к созданию пароля **Длина пароля (рекомендуемая):** @@ -219,11 +223,11 @@ sudo ./kafka-acls.sh --bootstrap-server :9092,:9092, --generate --topics-to-move-json-file topics.json --broker-list "0,1,2" --execute ``` -::: info +::: warning Примечание Операция перераспределения партиций требует времени и может создавать дополнительную нагрузку на кластер. Выполнение рекомендуется в период наименьшей активности. ::: diff --git a/src/PaaS/Apache-Kafka/base-tier-topics-guide.md b/src/PaaS/Apache-Kafka/base-tier-topics-guide.md index 0898a7c..f9929a8 100644 --- a/src/PaaS/Apache-Kafka/base-tier-topics-guide.md +++ b/src/PaaS/Apache-Kafka/base-tier-topics-guide.md @@ -1,6 +1,4 @@ -# Настройка топика - -## Рекомендации по настройке топика (тариф Base) +# Рекомендации по настройке топика (тариф Base) В разделе описаны основные параметры топиков Apache Kafka, влияющие на производительность, отказоустойчивость и параллелизм обработки данных. @@ -20,14 +18,6 @@ - не рекомендуется использовать имена, различающиеся только точкой и подчёркиванием (например, `topic_1` и `topic.1`): Kafka не различает такие названия; - имена с двойным подчёркиванием в начале (например, `__consumer_offsets`) зарезервированы для внутренних топиков Kafka. -::: tip -Избегайте использования имен, отличающихся только точкой и подчеркиванием (например, topic_1 и topic.1), так как Kafka не различает такие названия -::: - -::: tip -Не используйте имена, начинающиеся с двойного подчеркивания (__), например, **__consumer_offsets**. Эти имена зарезервированы для внутренних топиков Kafka. -::: - ### Количество партиций (partitions) Партиции определяют уровень параллелизма при чтении и записи данных. Количество партиций выбирается исходя из требуемой пропускной способности. @@ -50,33 +40,25 @@ Partitions = max(NP, NC) - TP - максимальная пропускная способность одного продюсера для одной партиции; - TC - максимальная пропускная способность одного консьюмера для одной партиции. -### Фактор репликации (replication-factor) +## Фактор репликации (replication-factor) Фактор репликации определяет количество копий данных, хранящихся на разных брокерах. -> **Рекомендация для production-сред:** установите значение **3**. -> При этом каждая партиция получает одного лидера и две реплики, что обеспечивает отказоустойчивость при выходе одного брокера. +**Рекомендация для production-сред:** установите значение **3**. +При этом каждая партиция получает одного лидера и две реплики, что обеспечивает отказоустойчивость при выходе одного брокера. ## Дополнительные параметры конфигурации -### `min.insync.replicas` (минимальное количество синхронизированных реплик) +Параметр `min.insync.replicas` (минимальное количество синхронизированных реплик) работает вместе с настройкой продюсера `acks=all`. Он задаёт, сколько реплик (включая лидера) должны подтвердить запись, чтобы она считалась успешной. -Параметр действует совместно с настройкой продюсера `acks=all`. Определяет минимальное количество синхронизированных реплик (включая лидера), которые должны подтвердить запись для её успешного завершения. +**Для production-кластера с фактором репликации = 3** +Установите `min.insync.replicas = 2`. -**Рекомендация:** при факторе репликации = 3 установите `min.insync.replicas = 2`. +Что это даёт: -**Эффекты:** -- **надёжность** — данные записаны минимум на два брокера; -- **доступность** — при отказе одного брокера запись продолжается. +- **надёжность** — данные точно попали минимум на два брокера; +- **доступность** — если один брокер упадёт, запись продолжится. -> **Важно:** не устанавливайте значение, равное фактору репликации (например, 3). -> В противном случае при перезагрузке одного брокера запись в топик станет невозможной: система будет ожидать подтверждения от всех трёх реплик. - - -При факторе репликации = 3 рекомендуется установить значение **2**. Это обеспечивает: -- **надежность**: данные записаны минимум на два брокера; -- **доступность**: при отказе одного брокера запись продолжается. - -::: tip -Не рекомендуется устанавливать значение равным фактору репликации (например, 3). В этом случае при перезагрузке одного брокера запись в топик станет невозможной, так как для подтверждения потребуется подтверждение от всех трех реплик. -::: +::: warning Примечание +Не рекомендуется устанавливать значение равным фактору репликации (например, `min.insync.replicas = 3`). Если один брокер перезагрузится, запись в топик станет невозможной — система будет ждать подтверждения от всех трёх реплик, а одна недоступна. +::: \ No newline at end of file diff --git a/src/PaaS/Apache-Kafka/cluster-configuretion.md b/src/PaaS/Apache-Kafka/cluster-configuretion.md index 7da9bdf..d07b996 100644 --- a/src/PaaS/Apache-Kafka/cluster-configuretion.md +++ b/src/PaaS/Apache-Kafka/cluster-configuretion.md @@ -1,51 +1,43 @@ # Конфигурация кластера -## О разделе +В разделе описаны технические параметры кластера Kafka и порядок их первичной настройки. -Данный раздел описывает технические параметры кластера Kafka и порядок их первичной конфигурации. - -Настройка указанных параметров выполняется администратором облачного провайдера на этапе развертывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке. - -Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями. +Конфигурация выполняется администратором облачного провайдера на этапе развёртывания сервиса. Пользователь не имеет прямого доступа к изменению этих параметров. Перед созданием кластера клиент передаёт менеджеру перечень требуемых параметров. Администратор выполняет настройку в соответствии с согласованными требованиями. ## Выбор типа и размера дискового хранилища -Производительность брокера сообщений напрямую зависит от скорости, с которой он может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика. +Производительность брокера сообщений напрямую зависит от скорости чтения и записи на диск. При заказе кластера необходимо выбрать тип дискового хранилища — он определяет максимальную скорость работы (IOPS) и время отклика. -**IOPS**- количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее брокер сообщений обрабатывает запросы. +**IOPS** (Input/Output Operations Per Second) — количество операций чтения или записи, которые диск выполняет за секунду. Чем выше IOPS, тем быстрее брокер обрабатывает запросы. -: : : info -Каждые 15 IOPS обеспечивают примерно 1 мегабит в секунду (Мбит/с) скорости чтения или записи при размере блока данных 64 КБ. -: : : +::: warning Примечание +Каждые 15 IOPS обеспечивают примерно 1 Мбит/с скорости чтения или записи при размере блока данных 64 КБ. +::: ### Доступные типы хранилищ: -|Название|Лимит IOPS| -|---|---| -|**Fast SAS**|до 2 IOPS на 1 ГБ| -|**SSD**|до 5 IOPS на 1 ГБ| -|**Fast SSD**|до 10 IOPS на 1 ГБ| -|**Ultra NVMe**|до 25 IOPS на 1 ГБ| +|Название | Лимит IOPS | +|---------------|--------------------| +|**Fast SAS** | до 2 IOPS на 1 ГБ | +|**SSD** | до 5 IOPS на 1 ГБ | +|**Fast SSD** | до 10 IOPS на 1 ГБ | +|**Ultra NVMe** | до 25 IOPS на 1 ГБ | -: : : info +::: warning Примечание После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера Kafka. Минимальный объем зависит от выбранного типа хранилища -: : : +::: ## Конфигурация вычислительных ресурсов В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер Kafka. -### Количество нод в кластере +#### Основные понятия -Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надежность и производительность чтения. Количество нод выбирается в диапазоне от 3 до 14. - -### Процессор (CPU) - -Процессор - это вычислительная мощность, которая выделяется каждой ноде кластера. Количество vCPU определяет, насколько быстро брокер сообщений сможет обрабатывать запросы, выполнять сложные операции (сортировки, объединения таблиц) и обслуживать одновременные подключения. Доступный диапазон выбора процессора: от 2 шт до 24 шт. - -### Оперативная память (RAM) - -Оперативная память - один из ключевых ресурсов для производительности. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. Доступный диапазон выбора оперативной памяти: от 4 ГБ до 768 ГБ. +| Термин | Описание | +|-------------------------------|----------| +| **Количество нод в кластере** | Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надежность и производительность чтения. Количество нод выбирается в диапазоне от 3 до 14. | +| **Процессор (CPU)** | Процессор - это вычислительная мощность, которая выделяется каждой ноде кластера. Количество vCPU определяет, насколько быстро брокер сообщений сможет обрабатывать запросы, выполнять сложные операции (сортировки, объединения таблиц) и обслуживать одновременные подключения. Доступный диапазон выбора процессора: от 2 шт до 24 шт. | +| **Оперативная память (RAM)** | Оперативная память - один из ключевых ресурсов для производительности. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. Доступный диапазон выбора оперативной памяти: от 4 ГБ до 768 ГБ. | ## Интернет @@ -61,41 +53,46 @@ - 500 Мбит/с; - 1000 Мбит/с (1 Гбит/с). -: : : info -Для выбранного канала предоставляется публичный IP-адрес. -: : : +::: warning Примечание +Для выбранного канала предоставляется **публичный IP-адрес**. +::: + ## Сетевой доступ к кластеру -Для организации защищенного подключения к кластеру Kafka доступны стандартные механизмы, используемые во всех сервисах платформы: +Выбор способа подключения зависит от архитектуры приложений и требований к безопасности. Доступны два варианта: -- **IPsec-подключение** - организация защищенного туннеля между инфраструктурой и кластером Kafka. Подробнее см. раздел IPSEC; -- **Interconnect** - прямое сетевое соединение между сервисами внутри платформы без выхода в интернет. Подробнее см. раздел Interconnect. +- **IPsec-подключение** — организация защищённого туннеля между инфраструктурой клиента и кластером Kafka. Подробнее см. раздел «IPsec»; +- **Interconnect** — прямое сетевое соединение между сервисами внутри платформы без использования публичных сетей. Подробнее см. раздел «Interconnect». -Для построения Interconnect-соединения требуется сначала заказать PaaS-сервис и дождаться его предоставления, после чего отдельно заказать Interconnect через менеджера. +**Особенности Interconnect:** +- сначала закажите PaaS-сервис и дождитесь его предоставления; +- затем отдельно закажите Interconnect через менеджера. -Выбор конкретного способа подключения зависит от архитектуры приложений и требований к безопасности. +## Калькулятор расчёта кластера -# Калькулятор +Для расчёта параметров кластера Kafka разработан специализированный калькулятор — простое веб-приложение. -Для облегчения расчета параметров кластера Kafka разработан специализированный калькулятор - простое одностраничное приложение. В калькулятор вносятся исходные данные о планируемой нагрузке, после чего по нажатию кнопки **Получить** производится автоматический расчет конфигурации кластера. +**Как работает:** +- в калькулятор вносятся исходные данные о планируемой нагрузке (пропускная способность, количество партиций и т.д.); +- после нажатия кнопки **«Получить»** автоматически рассчитывается конфигурация кластера. -Все поля обязательны для заполнения. Формы можно удалять, добавлять и дублировать ранее заполненные, что позволяет гибко настраивать параметры под различные сценарии использования. +Все поля обязательны для заполнения. Формы можно удалять, добавлять и дублировать — это позволяет гибко настраивать параметры под разные сценарии использования. ## Параметры топиков -|Параметр|Описание| -|---|---| -|**Имя топика**|Уникальное наименование топика в рамках кластера. Поле обязательное. Используется для идентификации топика при расчетах.| -|**Число партиций**|Количество партиций, на которые будет разбит топик. Значение должно быть больше числа консьюмеров.| -|**Фактор репликации**|Количество копий данных, хранящихся на разных брокерах. Для продуктивных кластеров рекомендуется значение не менее 3.
**Примечание:** Количество узлов кластера формируется на основании параметра фактора репликации. Рекомендуется выбирать нечетное количество узлов для корректной работы механизмов выборов лидера.| -|**Средний размер сообщения**|Средний объем одного сообщения, передаваемого через топик.| -|**Максимальный размер сообщения**|Максимальный объем одного сообщения. Используется для расчета пиковых нагрузок.| -|**Частота сообщений**|Количество сообщений, отправляемых в топик за единицу времени.| -|**Срок хранения сообщения**|Период времени, в течение которого сообщения хранятся в топике после записи. По истечении этого срока данные удаляются.| -|**Имя продюсера**|Наименование приложения-отправителя (для идентификации в расчетах)| -|**Количество экземпляров продюсера**|Число одновременно работающих экземпляров продюсера.| -|**Имя консьюмера**|Наименование приложения-получателя (для идентификации в расчетах).| -|**Количество экземпляров консьюмера**|Число одновременно работающих экземпляров консьюмера.
**Примечание:** Формы продюсеров и консьюмеров можно добавлять, удалять и дублировать. Это позволяет учитывать множественные источники и приемники данных в рамках одного расчета.| +| Параметр |Описание | +|---------------------------------------|---------| +| **Имя топика** |Уникальное наименование топика в рамках кластера. Поле обязательное. Используется для идентификации топика при расчетах.| +| **Число партиций** |Количество партиций, на которые будет разбит топик. Значение должно быть больше числа консьюмеров.| +| **Фактор репликации** |Количество копий данных, хранящихся на разных брокерах. Для продуктивных кластеров рекомендуется значение не менее 3.
**Примечание:** Количество узлов кластера формируется на основании параметра фактора репликации. Рекомендуется выбирать нечетное количество узлов для корректной работы механизмов выборов лидера.| +| **Средний размер сообщения** |Средний объем одного сообщения, передаваемого через топик.| +| **Максимальный размер сообщения** |Максимальный объем одного сообщения. Используется для расчета пиковых нагрузок.| +| **Частота сообщений** |Количество сообщений, отправляемых в топик за единицу времени.| +| **Срок хранения сообщения** |Период времени, в течение которого сообщения хранятся в топике после записи. По истечении этого срока данные удаляются.| +| **Имя продюсера** |Наименование приложения-отправителя (для идентификации в расчетах)| +| **Количество экземпляров продюсера** |Число одновременно работающих экземпляров продюсера.| +| **Имя консьюмера** |Наименование приложения-получателя (для идентификации в расчетах).| +| **Количество экземпляров консьюмера** |Число одновременно работающих экземпляров консьюмера.
**Примечание:** Формы продюсеров и консьюмеров можно добавлять, удалять и дублировать. Это позволяет учитывать множественные источники и приемники данных в рамках одного расчета.| ## Расчет конфигурации кластера diff --git a/src/PaaS/Apache-Kafka/full-tier-connection.md b/src/PaaS/Apache-Kafka/full-tier-connection.md index d916845..4ec20ac 100644 --- a/src/PaaS/Apache-Kafka/full-tier-connection.md +++ b/src/PaaS/Apache-Kafka/full-tier-connection.md @@ -1,27 +1,32 @@ # Подключение и работа с кластером Kafka (тариф Full) -## О разделе +Раздел содержит описание способов подключения к управлению кластером Kafka. Поддерживаются два типа подключения: +- `SASL_PLAINTEXT` - незашифрованное; +- `SASL_SSL` - зашифрованное (через SSL-сертификат). -В данном разделе описаны способы подключения к управляемому кластеру Kafka. Рассматриваются два варианта: незашифрованное подключение (SASL_PLAINTEXT) и зашифрованное подключение с использованием SSL-сертификатов (SASL_SSL). Также приведены примеры работы с клиентскими утилитами. +Также в разделе приведены примеры работы с клиентскими утилитами и базовые операции администрирования. ## Предварительные требования -Для работы с кластером Kafka необходимо наличие следующих компонентов: +Для начала работы с кластером Kafka необходимо выполнить предварительную настройку: -1. **Установленный клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию; -2. **Установленная Java** - для работы с Kafka требуется среда выполнения Java. Установка выполняется командой: **sudo apt install openjdk-17-jre-headless.** Рекомендуется использовать версию OpenJDK 17 или выше; +1. **Установить клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию; +2. **Установить среду выполнения Java** - для работы необходимо установить среду выполнения, с помощью команды: `**sudo apt install openjdk-17-jre-headless**`. Рекомендуется использовать версию OpenJDK 17 или выше; 3. **Доступ к брокерам** - адреса брокеров (bootstrap servers) предоставляются после развертывания кластера; -4. **Учетные данные** - пользователи создаются по Вашему запросу. Например, с правами чтения топиков и записи в них. +4. **Учетные данные**: + - Имя пользователя (username) - стандартное значение client; + - Пароль - предоставляется после развертывания кластера. 5. **Корневой сертификат (для SSL-подключения)** - сертификат для зашифрованного подключения предоставляется файлом при заказе сервиса Kafka. ## Структура клиентского дистрибутива  После распаковки архива Kafka в директории bin доступны скрипты, например: -|Скрипт|Назначение| -|---|---| +| Скрипт | Назначение | +|---------------------------|--------------------------| |`kafka-console-producer.sh`|Отправка сообщений в топик| -|`kafka-console-consumer.sh`|Чтение сообщений из топика +|`kafka-console-consumer.sh`|Чтение сообщений из топика| + В разделе ниже приведены примеры использования скриптов. Подробное описание операций с данными и другими скриптами приведено в [официальной документации Kafka](https://kafka.apache.org/42/getting-started/introduction/). Дополнительную информацию можно получить, выполнив любой скрипт с флагом --help: @@ -32,7 +37,7 @@ ## Конфигурационные файлы клиента -Для подключения к Kafka используется файл настроек (client.properties), который содержит параметры аутентификации, протокола и его механизмов (рекомендуются SCRAM_SHA_512 и SCRAM_SHA_256). +Для подключения к Kafka используется файл настроек **client.properties**, который содержит параметры аутентификации, протокола и его механизмов (рекомендуются SCRAM_SHA_512 и SCRAM_SHA_256). ### Незашифрованное подключение (SASL_PLAINTEXT) @@ -46,11 +51,19 @@ sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule require     password="вашпароль"; ``` +::: warning Примечание +Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091; +::: + ### Зашифрованное подключение (SASL_SSL) Для зашифрованного подключения (в production-средах рекомендуется использовать именно его) дополнительно требуется корневой сертификат и хранилище доверенных сертификатов (truststore). -Шаг 1. Создание truststore +::: warning Примечание +Для зашифрованного подключения (SASL_SSL) используется порт 9092. +::: + +### Шаг 1. Создание truststore С помощью утилиты **keytool** выполняется импорт сертификата в хранилище: @@ -60,13 +73,13 @@ keytool -importcert -storetype PKCS12 -keystore /путь/к/трастстор Параметры: -- keystore - путь к создаваемому хранилищу; -- alias - псевдоним сертификата в хранилище; -- file - путь к загруженному корневому сертификату; -- storepass - пароль для доступа к хранилищу; -- keypass - пароль для доступа к ключу. +- **keystore** - путь к создаваемому хранилищу; +- **alias** - псевдоним сертификата в хранилище; +- **file** - путь к загруженному корневому сертификату; +- **storepass** - пароль для доступа к хранилищу; +- **keypass** - пароль для доступа к ключу. -Шаг 2. Настройка client.properties +### Шаг 2. Настройка client.properties В файл **client.properties** добавляются параметры SSL: @@ -80,11 +93,6 @@ ssl.truststore.location=/путь/к/трастстору/truststore.jks ssl.truststore.password=парольотхранилища ``` -## Примеры подключения - -Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091; -Для зашифрованного подключения (SASL_SSL) используется порт 9092. - ### Отправка сообщения в топик Выполняется команда с указанием брокеров, файла конфигурации и топика: @@ -95,12 +103,12 @@ ssl.truststore.password=парольотхранилища Параметры: -- bootstrap-server - список брокеров кластера (адреса и порты); -- command-config - путь к файлу с настройками клиента; +- **bootstrap-server** - список брокеров кластера (адреса и порты); +- **command-config** - путь к файлу с настройками клиента; После выполнения команды сообщения вводятся построчно. Для завершения используется сочетание клавиш Ctrl+C. -### Чтение сообщений из топика +### Чтение сообщений из топика Выполняется команда с указанием топика и, при необходимости, consumer group: @@ -115,9 +123,9 @@ ssl.truststore.password=парольотхранилища ## Администрирование кластера -: : : info -Для изменения параметров кластера Kafka (CPU, RAM, DISK, количества брокеров, параметров топиков) необходимо направить запрос в Service Desk по адресу servicedesk@datafort.ru с указанием требуемых значений. -: : : +::: warning Примечание +Для изменения параметров кластера Kafka (CPU, RAM, DISK, количества брокеров, параметров топиков) необходимо направить запрос в **Service Desk** по адресу `servicedesk@datafort.ru` с указанием требуемых значений. +::: ### Изменение количества брокеров @@ -125,6 +133,6 @@ ssl.truststore.password=парольотхранилища Брокеров в кластере рекомендуется поддерживать **нечетным** для корректной работы механизмов выборов лидера. -: : : info +::: warning Примечание Операция перераспределения партиций требует времени и может создавать дополнительную нагрузку на кластер. Выполнение рекомендуется в период наименьшей активности. -: : : \ No newline at end of file +::: \ No newline at end of file From f242ddd4cba6e0dab1ec04f0c699f62689ebce0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Wed, 6 May 2026 12:32:09 +0300 Subject: [PATCH 07/10] =?UTF-8?q?=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PaaS/Apache-Kafka/base-tier-connection.md | 2 +- src/security/Cloud-MFA/MFA-index.md | 19 ---- src/security/Cloud-MFA/about.md | 34 ------- .../Cloud-MFA/description/components.md | 96 ------------------- .../Cloud-MFA/description/compound.md | 83 ---------------- 5 files changed, 1 insertion(+), 233 deletions(-) delete mode 100644 src/security/Cloud-MFA/MFA-index.md delete mode 100644 src/security/Cloud-MFA/about.md delete mode 100644 src/security/Cloud-MFA/description/components.md delete mode 100644 src/security/Cloud-MFA/description/compound.md diff --git a/src/PaaS/Apache-Kafka/base-tier-connection.md b/src/PaaS/Apache-Kafka/base-tier-connection.md index cd603f2..345b7e9 100644 --- a/src/PaaS/Apache-Kafka/base-tier-connection.md +++ b/src/PaaS/Apache-Kafka/base-tier-connection.md @@ -105,7 +105,7 @@ ssl.truststore.password=парольотхранилища ./kafka-topics.sh --bootstrap-server :9092,:9092,:9092 --command-config ../config/client.properties --create --topic <имя топика> --partitions <количество партиций> --replication-factor <значение> --config min.insync.replicas=<значение> ``` -Ознакомиться с рекомендациями по настройке топиков можно здесь - рекомендации. +**Ознакомиться с рекомендациями по настройке топиков можно в разделе [Настройка топиков](./base-tier-topics-guide.md).** По умолчанию топик создаётся с --partitions 10 --replication-factor 3 --config min.insync.replicas=2, поэтому, если нет необходимости создавать топик со специфическими настройками, эти флаги в команде можно не указывать. diff --git a/src/security/Cloud-MFA/MFA-index.md b/src/security/Cloud-MFA/MFA-index.md deleted file mode 100644 index 9e819c9..0000000 --- a/src/security/Cloud-MFA/MFA-index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -section_links: - - title: Обзор сервиса - link: /security/Cloud-MDM/about.md - description: - - title: Порядок платежей - link: /security/Cloud-MDM/payments.md - description: - - title: Качественные характеристики сервиса - link: /security/Cloud-MDM/characteristics.md - description: - - title: Сроки и условия предоставления сервиса - link: /security/Cloud-MDM/provision.md - description: ---- - -# Cloud Multifactor Authentication (MFA) - -Сервис предназначен для настройки процесса подключения к системе. Процесс состоит из нескольких шагов и требует от пользователя указать дополнительные данные, а не только пароль. \ No newline at end of file diff --git a/src/security/Cloud-MFA/about.md b/src/security/Cloud-MFA/about.md deleted file mode 100644 index 6af6075..0000000 --- a/src/security/Cloud-MFA/about.md +++ /dev/null @@ -1,34 +0,0 @@ -# Cloud Multifactor Authentication (MFA) - -## Основа сервиса - -Сервис **Cloud Multifactor Authentication (MFA)** используется для настройки процесса входа в систему. Процесс состоит из нескольких шагов и требует от пользователя указать больше информации, а не только пароль. Сервис может быть как отдельным, так и опцией к уже существующим. Сервис реализован на базе российского решения Multifactor. - -## Задачи сервиса - -- Защита информационных систем от несанкционированного доступа и компрометации учетных данных. -- Усиленный контроль доступа к данным и приложениям. -- Выполнение требований стандартов в сфере информационной безопасности: - - PCI-DSS; - - HIPAA; - - SOX; - - NERC; - - FISMA; - - ISO; - - GLBA; - - GPG13 и т.д. - -## Особенности и конкурентные преимущества сервиса - -- Сервис работает по принципу zero trust: Multifactor не получает пароли пользователей. -- Пользователи могут самостоятельно настроить аутентификацию при первом входе, без регистрации. Функционал работает в браузере без установки плагинов, драйверов и сторонних приложений. -- Сервис поддерживает следующие факторы: - - бот в Telegram; - - биометрия; - - U2F; - - FIDO; - - OTP; - - Google Authenticator; - - Яндекс.Ключ; - - Звонки; - - SMS. \ No newline at end of file diff --git a/src/security/Cloud-MFA/description/components.md b/src/security/Cloud-MFA/description/components.md deleted file mode 100644 index 1970309..0000000 --- a/src/security/Cloud-MFA/description/components.md +++ /dev/null @@ -1,96 +0,0 @@ -# Компоненты сервиса - -## Виды компонентов - -В зависимости от решаемой задачи и архитектуры защищаемых систем используется один или несколько технических компонентов сервиса **Cloud Multifactor Authentication (MFA)**: - -- личный кабинет администратора; -- radius adapter; -- ldap adapter; -- портал самообслуживания. - -Все перечисленные компоненты разрабатываются и поддерживаются компанией Мультифактор. - -## 1. Личный кабинет администратора - -**Личный кабинет администратора** — это веб-приложение, доступное через интернет. С его помощью ИТ-специалисты управляют четырьмя категориями объектов: - -- пользователями; -- группами пользователей; -- интеграцией с защищаемыми информационными системами; -- списком доступных вторых факторов. - -## 2. Radius Adapter - -**Radius Adapter** — это RADIUS-сервер, обеспечивающий двухфакторную аутентификацию пользователей при удалённом доступе. Компонент поставляется с исходным кодом и работает под управлением Linux. - -::: warning Важно - -Пароль пользователя не передаётся в облако Multifactor и не покидает периметр сети. В облако передаётся только логин — для идентификации пользователя и доставки ему второго фактора. - -::: - -### Возможности - -- приём запросов на аутентификацию по протоколу RADIUS; -- проверка первого фактора (логина и пароля) в Active Directory (включая AD LDS) или Network Policy Server; -- проверка второго фактора на устройстве пользователя; -- настройка второго фактора в режиме диалога с пользователем; -- управление доступом на основе членства пользователя в группе AD; -- выборочное включение второго фактора в зависимости от членства пользователя в группе AD; -- настройка атрибутов RADIUS-ответа на основе членства пользователя в группе AD; -- проксирование запросов и ответов Network Policy Server; -- отправка журналов событий в Syslog-сервер или SIEM-систему; -- режим bypass: при недоступности сервера система может пропускать пользователя без второго фактора или блокировать доступ. - -## 3. LDAP Adapter - -**LDAP Adapter** — это LDAP proxy-сервер, разработанный и поддерживаемый компанией Мультифактор для двухфакторной аутентификации пользователей в приложениях, использующих LDAP-аутентификацию. Компонент поставляется с исходным кодом и работает под управлением Linux. - -::: warning Важно - -Компонент не влияет на проверку имени и пароля пользователя. Второй фактор включается только после успешной проверки учётной записи в Active Directory или другом LDAP-каталоге. - -::: - -### Возможности - -- проксирование сетевого трафика по протоколу LDAP; -- поиск запросов на аутентификацию и подтверждение вторым фактором на устройстве пользователя; -- работа по протоколам LDAP и LDAPS (шифрованный TLS-канал); -- перехват запросов на аутентификацию, использующих механизмы Simple, Digital, NTLM; -- пропуск запросов от служебных учётных записей (Bind DN) без второго фактора; -- настройка доступа на основе принадлежности пользователя к группе AD; -- выборочное включение второго фактора в зависимости от принадлежности пользователя к группе AD; -- отправка журналов событий в Syslog-сервер или SIEM-систему; -- режим bypass: при недоступности API система может пропускать пользователя без второго фактора или блокировать доступ. - -## 4. Портал самообслуживания - -**SelfService Portal (Портал самообслуживания)** — это веб-сайт, разработанный и поддерживаемый компанией Мультифактор для самостоятельной регистрации второго фактора аутентификации пользователями с учётными записями из Active Directory или других LDAP-каталогов. Компонент поставляется с исходным кодом. В рамках сервиса применяются Linux-версия и Windows-версия. - -### Возможности - -Портал предназначен для установки и работы внутри корпоративной сети. Также портал может быть опубликован для доступа из сети интернет. - -- проверка логина и пароля пользователя в LDAP-каталоге или домене Active Directory (Windows-версия может осуществлять проверку в нескольких доменах, если между ними настроены доверительные отношения); -- настройка второго фактора аутентификации; -- смена пароля пользователя после подтверждения второго фактора; -- смена просроченного или требующего замены пароля; -- единая точка входа (Single Sign-On) для корпоративных приложений с поддержкой протоколов SAML, OpenID Connect / OAuth; -- выборочное включение второго фактора на основе принадлежности пользователя к группе в AD при Single Sign-On входе; -- управление ActiveSync-устройствами для доступа к почте Exchange; -- поддержка проверки CAPTCHA на странице входа в портал. - -## Соответствие тарифов и адаптеров - -|Подключаемый сервис | Тип адаптера | -|--------------------|-----------------| -|NGAF ra VPN | LDAP | -|UserGate ra VPN | LDAP | -|Pfsense ra VPN | RADIUS | -|OWA | Модуль для OWA | -|ADFS | Модуль для ADFS | -|Vmware horizon VDI | RADIUS | - -Дополнительно прочтите про [настройку двухфакторной аутентификации в VPN на основе межсетевого экрана UserGate](https://multifactor.ru/docs/vpn/usergate-2fa-vpn/). \ No newline at end of file diff --git a/src/security/Cloud-MFA/description/compound.md b/src/security/Cloud-MFA/description/compound.md deleted file mode 100644 index ed09c40..0000000 --- a/src/security/Cloud-MFA/description/compound.md +++ /dev/null @@ -1,83 +0,0 @@ -# Состав сервиса - -## Варианты услуги - -Сервис **Cloud Multifactor Authentication (MFA)** предлагает два варианта: - -Self-Service, -Managed Service. - -Beeline cloud тарифицирует дополнительные работы по фактическим трудозатратам. - -## Личный кабинет администратора - -Личный кабинет администратора — веб-приложение, доступное из сети интернет. Через приложение ИТ-специалисты управляют четыреми элементами: - -- пользователями, -- группами пользователей, -- интеграцией с защищаемыми информационными системами, -- списком доступных вторых факторов. - -## Radius Adapter - -Radius Adapter — RADIUS-сервер, который используется для двухфакторной аутентификации пользователей при использовании удаленного доступа. Компонент доступен вместе с исходным кодом. Radius Adapter использует Linux-версию. - -Radius adapter не передает пароль пользователя в облако Multifactor. Пароль не покидает периметр сети. Передается только логин для идентификации пользователя и доставки ему второго фактора. - -### Возможности - -- Прием запросов на аутентификацию по протоколу RADIUS. -- Проверка первого фактора аутентификации — логина и пароля пользователя в Active Directory (в том числе AD LDS) или Network Policy Server. -- Проверка второго фактора аутентификации на телефоне пользователя. -- Настройка второго фактора в режиме диалога с пользователем. -- Настройка доступа на основе принадлежности пользователя к группе в AD. -- Избирательное включение второго фактора на основе принадлежности пользователя к группе AD. -- Настройка атрибутов ответа RADIUS на основе принадлежности пользователя к группе AD. -- Проксирование запросов и ответов Network Policy Server. -- Запись журналов в Syslog сервер или SIEM-систему. -- Режим bypass. В случае недоступности API система предлагает возможность пропускать пользователя без второго фактора или блокировать. - -## LDAP Adapter - -LDAP Adapter — LDAP proxy-сервер, разработанный и поддерживаемый компанией Мультифактор для двухфакторной аутентификации пользователей в приложениях, использующих LDAP аутентификацию. Компонент доступен вместе с исходным кодом. LDAP Adapter использует Linux-версию. - -Компонент не влияет на проверку имени и пароля пользователя. Второй фактор включается только, после успешной проверки учетной записи в Active Directory или другом LDAP каталоге. - -### Возможности - -- Проксирование сетевого трафика по протоколу LDAP. -- Поиск запросов на аутентификацию и подтверждение вторым фактором на телефоне пользователя. -- Работа по протоколам LDAP и LDAPS (шифрованный TLS канал). -- Перехват запросов на аутентификацию, использующих механизмы Simple, Digital, NTLM. -- Пропуск запросов от сервисных учетных записей (Bind DN) без второго фактора. -- Настройка доступа на основе принадлежности пользователя к группе AD. -- Избирательное включение второго фактора на основе принадлежности пользователя к группе AD. -- Звпись журналов в Syslog сервер или SIEM-систему. -- Режим bypass. В случае недоступности API система предлагает возможность пропускать пользователя без второго фактора или блокировать. - -## Портал самообслуживания - -SelfService Portal (Портал самообслуживания) — веб-сайт, разработанный и поддерживаемый компанией Мультифактор для самостоятельной регистрации второго фактора аутентификации пользователями с учётными записями из Active Directory или других LDAP каталогов. Компонент доступен вместе с исходным кодом. В рамках сервиса применяется Linux-версия и Windows-версии. - -### Возможности - -Портал предназначен для установки и работы внутри корпоративной сети. Портал может быть опубликован для доступа из сети интернет. - -- Проверка логина и пароля пользователя в LDAP-каталоге или домене Active Directory. Windows-версия может осуществлять проверку в нескольких доменах, если между ними настроены доверительные отношения. -- Настройка второго фактора аутентификации. -- Смена пароля пользователя после подтверждения второго фактора. -- Смена просроченного или требующего замены пароля. -- Единая точка входа (Single Sign-On) для корпоративных приложений с поддержкой протоколов SAML, OpenID Connect / Oauth. -- Избирательное включение второго фактора на основе принадлежности пользователя к группе в AD при Single Sign-On входе. -- Управление ActiveSync устройствами для доступа к почте Exchange. -- Поддержка проверки CAPTCHA на странице входа в портал. - -## Соответствие тарифов и адаптеров - -Подключаемый сервис Тип адаптера -NGAF ra VPN LDAP -UserGate ra VPN LDAP -Pfsense ra VPN RADIUS -OWA Модуль для OWA -ADFS Модуль для ADFS -Vmware horizon VDI RADIUS From 9f287b5f15ed2a759e2bfcc1566a18632b41780e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Wed, 6 May 2026 13:03:08 +0300 Subject: [PATCH 08/10] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B1=D1=80=D0=BE=D0=BA=D0=B5=D1=80=D0=BE=D0=B2=20+=20=D0=B8?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/index.md b/src/index.md index 8b05e0e..94afea5 100644 --- a/src/index.md +++ b/src/index.md @@ -104,6 +104,11 @@ services: description: Объектно-реляционная СУБД с открытым кодом, обеспечивающая высокую надёжность и масштабируемость icon: database link: /PaaS/index + - title: Брокеры сообщений + articles: + - title: Apache Kafka + description: Распределённая система для потоковой передачи данных в реальном времени + icon: message - title: Аналитика articles: - title: Визуализация и анализ данных From e16de529349699ffc9988f4010d642b16692b2ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Fri, 15 May 2026 12:38:25 +0300 Subject: [PATCH 09/10] =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=80=D0=B0=D1=81=D0=BF=D0=BE=D0=BB=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/.vitepress/config.mts | 16 +++++++++------- src/{PaaS => }/Apache-Kafka/Kafka-index.md | 0 src/{PaaS => }/Apache-Kafka/about-service.md | 0 .../Apache-Kafka/base-tier-connection.md | 6 +++--- .../Apache-Kafka/base-tier-topics-guide.md | 0 .../Apache-Kafka/cluster-configuretion.md | 0 .../Apache-Kafka/full-tier-connection.md | 2 +- src/PaaS/index.md | 1 - src/index.md | 1 + 9 files changed, 14 insertions(+), 12 deletions(-) rename src/{PaaS => }/Apache-Kafka/Kafka-index.md (100%) rename src/{PaaS => }/Apache-Kafka/about-service.md (100%) rename src/{PaaS => }/Apache-Kafka/base-tier-connection.md (97%) rename src/{PaaS => }/Apache-Kafka/base-tier-topics-guide.md (100%) rename src/{PaaS => }/Apache-Kafka/cluster-configuretion.md (100%) rename src/{PaaS => }/Apache-Kafka/full-tier-connection.md (98%) diff --git a/src/.vitepress/config.mts b/src/.vitepress/config.mts index 59028e4..ace5274 100644 --- a/src/.vitepress/config.mts +++ b/src/.vitepress/config.mts @@ -176,17 +176,19 @@ export default defineConfig({ ], }, {text: 'Параметры конфигурации IPSEC', link: '/PaaS/IPSEC.md'}, + ], - { text: 'Apache-Kafka', link: '/PaaS/Apache-Kafka/Kafka-index.md', + '/Apache-Kafka/': [ + { text: 'Apache-Kafka', link: '/Apache-Kafka/Kafka-index.md', collapsed: true, items: [ - {text: 'Обзор сервиса', link: '/PaaS/Apache-Kafka/about-service.md'}, - {text: 'Работа с кластером Kafka по тарифу Base', link: '/PaaS/Apache-Kafka/base-tier-connection.md'}, - {text: 'Настройка топика по тарифу Base', link: '/PaaS/Apache-Kafka/base-tier-topics-guide.md'}, - {text: 'Конфигурация кластера', link: '/PaaS/Apache-Kafka/cluster-configuretion.md'}, - {text: 'Работа с кластером Kafka по тарифу Full', link: '/PaaS/Apache-Kafka/full-tier-connection.md'}, + {text: 'Обзор сервиса', link: '/Apache-Kafka/about-service.md'}, + {text: 'Работа с кластером Kafka по тарифу Base', link: '/Apache-Kafka/base-tier-connection.md'}, + {text: 'Настройка топика по тарифу Base', link: '/Apache-Kafka/base-tier-topics-guide.md'}, + {text: 'Конфигурация кластера', link: '/Apache-Kafka/cluster-configuretion.md'}, + {text: 'Работа с кластером Kafka по тарифу Full', link: '/Apache-Kafka/full-tier-connection.md'}, ], - }, + } ], // '/billing/': [ diff --git a/src/PaaS/Apache-Kafka/Kafka-index.md b/src/Apache-Kafka/Kafka-index.md similarity index 100% rename from src/PaaS/Apache-Kafka/Kafka-index.md rename to src/Apache-Kafka/Kafka-index.md diff --git a/src/PaaS/Apache-Kafka/about-service.md b/src/Apache-Kafka/about-service.md similarity index 100% rename from src/PaaS/Apache-Kafka/about-service.md rename to src/Apache-Kafka/about-service.md diff --git a/src/PaaS/Apache-Kafka/base-tier-connection.md b/src/Apache-Kafka/base-tier-connection.md similarity index 97% rename from src/PaaS/Apache-Kafka/base-tier-connection.md rename to src/Apache-Kafka/base-tier-connection.md index 345b7e9..c629591 100644 --- a/src/PaaS/Apache-Kafka/base-tier-connection.md +++ b/src/Apache-Kafka/base-tier-connection.md @@ -11,11 +11,11 @@ Для начала работы с кластером Kafka необходимо выполнить предварительную настройку: 1. **Установить клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию; -2. **Установить среду выполнения Java** - для работы необходимо установить среду выполнения, с помощью команды: `**sudo apt install openjdk-17-jre-headless**`. Рекомендуется использовать версию OpenJDK 17 или выше; +2. **Установить среду выполнения Java** - для работы необходимо установить среду выполнения, с помощью команды: `sudo apt install openjdk-17-jre-headless`. Рекомендуется использовать версию OpenJDK 17 или выше; 3. **Доступ к брокерам** - адреса брокеров (bootstrap servers) предоставляются после развертывания кластера; 4. **Учетные данные**: - - Имя пользователя (username) - стандартное значение client; - - Пароль - предоставляется после развертывания кластера. + - **Имя пользователя (username)** - стандартное значение client; + - **Пароль** - предоставляется после развертывания кластера. 5. **Корневой сертификат (для SSL-подключения)** - сертификат для зашифрованного подключения предоставляется файлом при заказе сервиса Kafka. ## Структура клиентского дистрибутива diff --git a/src/PaaS/Apache-Kafka/base-tier-topics-guide.md b/src/Apache-Kafka/base-tier-topics-guide.md similarity index 100% rename from src/PaaS/Apache-Kafka/base-tier-topics-guide.md rename to src/Apache-Kafka/base-tier-topics-guide.md diff --git a/src/PaaS/Apache-Kafka/cluster-configuretion.md b/src/Apache-Kafka/cluster-configuretion.md similarity index 100% rename from src/PaaS/Apache-Kafka/cluster-configuretion.md rename to src/Apache-Kafka/cluster-configuretion.md diff --git a/src/PaaS/Apache-Kafka/full-tier-connection.md b/src/Apache-Kafka/full-tier-connection.md similarity index 98% rename from src/PaaS/Apache-Kafka/full-tier-connection.md rename to src/Apache-Kafka/full-tier-connection.md index 4ec20ac..4e2a75b 100644 --- a/src/PaaS/Apache-Kafka/full-tier-connection.md +++ b/src/Apache-Kafka/full-tier-connection.md @@ -11,7 +11,7 @@ Для начала работы с кластером Kafka необходимо выполнить предварительную настройку: 1. **Установить клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию; -2. **Установить среду выполнения Java** - для работы необходимо установить среду выполнения, с помощью команды: `**sudo apt install openjdk-17-jre-headless**`. Рекомендуется использовать версию OpenJDK 17 или выше; +2. **Установить среду выполнения Java** - для работы необходимо установить среду выполнения, с помощью команды: `sudo apt install openjdk-17-jre-headless`. Рекомендуется использовать версию OpenJDK 17 или выше; 3. **Доступ к брокерам** - адреса брокеров (bootstrap servers) предоставляются после развертывания кластера; 4. **Учетные данные**: - Имя пользователя (username) - стандартное значение client; diff --git a/src/PaaS/index.md b/src/PaaS/index.md index 933c9aa..742da2a 100644 --- a/src/PaaS/index.md +++ b/src/PaaS/index.md @@ -6,7 +6,6 @@ section_links: - title: IPSEC link: /PaaS/IPSEC.md description: Параметры конфигурации IPSEC - --- # Начало работы в Cloud PostgreSQL diff --git a/src/index.md b/src/index.md index 94afea5..71a32d7 100644 --- a/src/index.md +++ b/src/index.md @@ -109,6 +109,7 @@ services: - title: Apache Kafka description: Распределённая система для потоковой передачи данных в реальном времени icon: message + link: /Apache-Kafka/Kafka-index - title: Аналитика articles: - title: Визуализация и анализ данных From 2702259c017891cdf2883fdb96a6d9df19982fd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=B2=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=9B?= =?UTF-8?q?=D1=8E=D0=B4=D0=BC=D0=B8=D0=BB=D0=B0=20=D0=90=D0=BB=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Wed, 20 May 2026 11:26:58 +0300 Subject: [PATCH 10/10] =?UTF-8?q?=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Apache-Kafka/Kafka-index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Apache-Kafka/Kafka-index.md b/src/Apache-Kafka/Kafka-index.md index e5d9693..9a33f81 100644 --- a/src/Apache-Kafka/Kafka-index.md +++ b/src/Apache-Kafka/Kafka-index.md @@ -19,4 +19,4 @@ section_links: # Apache-Kafka -В данном разделе представлена документация по управляемому сервису **Apache-Kafka** платформы Beeline Cloud. \ No newline at end of file +В данном разделе представлена документация по управляемому сервису **Apache-Kafka** платформы Beeline Cloud.