# Resource nubes_kafka Service ID: `116` Service Name: ApacheKafka [Manual](kafka.md) | [Create params](kafka_params_create.md) | [Modify params](kafka_params_modify.md) | [Output params](kafka_outputs.md) | [Operations](kafka_ops.md) | [Example](kafka_example.md) ## Operations - `create` — Создание кластера. Параметры: [Create params](kafka_params_create.md) - `create_topic` — # Инструкция по управлению топиками Apache Kafka через платформу ## 1. Общая информация --- Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам. Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API. --- ## Доступные операции - **create_topic** — Создание топика - **modify_topic** — Модификация топика - **delete_topic** — Удаление топика --- ## 2. Параметры создания топика Ниже перечислены параметры, которые необходимо указать при создании нового топика: * **Имя топика** Название топика. Должно быть уникальным в пределах кластера. Пример: `orders-events`. * **Партиции** Количество партиций топика. Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки. Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки. * **Реплики** Количество реплик для каждой партиции. Обычно равно количеству доступных брокеров или меньше. Пример: `3`. --- ## 4. Параметры модификации топика Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными: * **Имя топика** Название топика. Пример: `orders-events`. * **Партиции** Новое количество партиций. Пример: `12`. * **Реплики** Новое количество реплик. Пример: `2`. --- ## 5. Рекомендации * Планируйте количество партиций с запасом — уменьшение их числа невозможно. * Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров. * Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки. ---. См. [nubes_kafka_topic](kafka_topic.md) - `create_user` — # Инструкция по управлению пользователями Apache Kafka. --- ## 1. Общая информация Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру. Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам. Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka. --- ## Доступные операции - **create_user** — Создание пользователя - **modify_user** — Модификация пользователя - **delete_user** — Удаление пользователя --- ## 2. Параметры создания пользователя Ниже перечислены параметры, которые необходимо указать при создании нового пользователя: * **Имя пользователя** Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав. Пример: `username-admin` * **Топик** Название топика, к которому будут назначены права для данного пользователя. Пример: `orders-events`. Использовать маску нельзя (`orders*`), только полное название или `*`. * **Операции** Список разрешённых операций на указанном топике. Пример: `Describe, Read, Write` * **Группа** Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп. Пример: `order-consumers`. * **Разрешённые хосты** Список хостов или подсетей, с которых разрешено подключение пользователя. Пример: `192.168.1.0/24` или `*`. --- ## 3. Параметры модификации пользователя Ниже перечислены параметры, которые необходимо указать при модификации пользователя: * **Имя пользователя** Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав. Пример: `username-admin` * **Топик** Название топика, к которому будут назначены права для данного пользователя. Пример: `orders-events`. Использовать маску нельзя (`orders*`), только полное название или `*`. * **Операции** Список разрешённых операций на указанном топике. Пример: `Describe, Read, Write` * **Группа** Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп. Пример: `order-consumers`. * **Разрешённые хосты** Список хостов или подсетей, с которых разрешено подключение пользователя. Пример: `192.168.1.0/24` или `*`. --- ## 4. Параметры удалении пользователя Ниже перечислены параметры, которые необходимо указать при удалении пользователя: * **Имя пользователя** Имя удаляемого пользователя. Пример: `username-admin` ## 5. Выходные параметры После успешного создания пользователя платформа возвращает параметры, необходимые для подключения: * **ca.crt** Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении. Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.crt ``` * **ca.p12** PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.p12 ``` * **ca.password** Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно. * **user.crt** Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka. Используется совместно с приватным ключом `user.key` для аутентификации. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.crt ``` * **user.key** Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.key ``` * **user.p12** PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo "<содержание поля>" | base64 -d > <название>.p12 ``` * **user.password** Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно. Эти параметры используются для настройки TLS-подключения. --- ## 6. Пример конфигурации клиента внутри кластера Пример пода: ```yaml apiVersion: v1 kind: Pod metadata: name: kafka-4 spec: volumes: - name: work emptyDir: {} containers: - name: kcat image: quay.io/strimzi/kafka:latest-kafka-4.0.0 command: ["sleep", "5600"] volumeMounts: - name: work mountPath: /work restartPolicy: Never ``` Создаём под и сохраняем сертификаты: ```bash kubectl cp user.p12 kafka-4:/work/ kubectl cp ca.p12 kafka-4:/work/ ``` Создаём файлы конфигурации: ```bash cat > /work/user-read.properties <<'EOF' security.protocol=SSL ssl.keystore.type=PKCS12 ssl.keystore.location=/work/user.p12 ssl.keystore.password= ssl.truststore.type=PKCS12 ssl.truststore.location=/work/ca.p12 ssl.truststore.password= EOF ``` ```bash cat > /work/user-write.properties <<'EOF' security.protocol=SSL ssl.keystore.type=PKCS12 ssl.keystore.location=/work/user-write.p12 ssl.keystore.password= ssl.truststore.type=PKCS12 ssl.truststore.location=/work/ca.p12 ssl.truststore.password= EOF ``` Листинг доступных топиков: ```bash /opt/kafka/bin/kafka-topics.sh \ --bootstrap-server kafkak8s-bootstrap-external:9093 \ --command-config /work/user-read.properties \ --list ``` Запись сообщений: ```bash /opt/kafka/bin/kafka-console-producer.sh \ --bootstrap-server <адрес сервис брокера>:9093 \ --topic \ --producer.config /work/user-write.properties ``` Чтение сообщений: ```bash /opt/kafka/bin/kafka-console-consumer.sh \ --bootstrap-server <адрес сервис брокера>:9093 \ --topic \ --from-beginning \ --group \ --consumer.config /work/user-read.properties \ --max-messages 50 ``` --- ## 7. Пример внешнего подключения с использованием **kcat** **Листинг топиков** ```bash kcat -b :9093 \ -L \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-read.crt \ -X ssl.key.location=./user-read.key \ -X ssl.endpoint.identification.algorithm=none ``` **Запись сообщения** ```bash echo "hello from kcat" | kcat -P \ -b :9093 \ -t write-test \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-write.crt \ -X ssl.key.location=./user-write.key \ -X ssl.endpoint.identification.algorithm=none ``` **Чтение сообщений** ```bash kcat -C \ -b :9093 \ -t write-test \ -o beginning \ -q \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-read.crt \ -X ssl.key.location=./user-read.key \ -X ssl.endpoint.identification.algorithm=none ``` --- ## 9. Рекомендации * Минимизируйте набор разрешённых операций для повышения безопасности. * Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов. * Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**. * После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам. ---. См. [nubes_kafka_user](kafka_user.md) - `delete` - `delete_topic` — . См. [nubes_kafka_topic](kafka_topic.md) - `delete_user` — # Инструкция по управлению пользователями Apache Kafka. --- ## 1. Общая информация Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру. Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам. Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka. --- ## Доступные операции - **create_user** — Создание пользователя - **modify_user** — Модификация пользователя - **delete_user** — Удаление пользователя --- ## 2. Параметры создания пользователя Ниже перечислены параметры, которые необходимо указать при создании нового пользователя: * **Имя пользователя** Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав. Пример: `username-admin` * **Топик** Название топика, к которому будут назначены права для данного пользователя. Пример: `orders-events`. Использовать маску нельзя (`orders*`), только полное название или `*`. * **Операции** Список разрешённых операций на указанном топике. Пример: `Describe, Read, Write` * **Группа** Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп. Пример: `order-consumers`. * **Разрешённые хосты** Список хостов или подсетей, с которых разрешено подключение пользователя. Пример: `192.168.1.0/24` или `*`. --- ## 3. Параметры модификации пользователя Ниже перечислены параметры, которые необходимо указать при модификации пользователя: * **Имя пользователя** Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав. Пример: `username-admin` * **Топик** Название топика, к которому будут назначены права для данного пользователя. Пример: `orders-events`. Использовать маску нельзя (`orders*`), только полное название или `*`. * **Операции** Список разрешённых операций на указанном топике. Пример: `Describe, Read, Write` * **Группа** Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп. Пример: `order-consumers`. * **Разрешённые хосты** Список хостов или подсетей, с которых разрешено подключение пользователя. Пример: `192.168.1.0/24` или `*`. --- ## 4. Параметры удалении пользователя Ниже перечислены параметры, которые необходимо указать при удалении пользователя: * **Имя пользователя** Имя удаляемого пользователя. Пример: `username-admin` ## 5. Выходные параметры После успешного создания пользователя платформа возвращает параметры, необходимые для подключения: * **ca.crt** Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении. Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.crt ``` * **ca.p12** PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.p12 ``` * **ca.password** Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно. * **user.crt** Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka. Используется совместно с приватным ключом `user.key` для аутентификации. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.crt ``` * **user.key** Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.key ``` * **user.p12** PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo "<содержание поля>" | base64 -d > <название>.p12 ``` * **user.password** Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно. Эти параметры используются для настройки TLS-подключения. --- ## 6. Пример конфигурации клиента внутри кластера Пример пода: ```yaml apiVersion: v1 kind: Pod metadata: name: kafka-4 spec: volumes: - name: work emptyDir: {} containers: - name: kcat image: quay.io/strimzi/kafka:latest-kafka-4.0.0 command: ["sleep", "5600"] volumeMounts: - name: work mountPath: /work restartPolicy: Never ``` Создаём под и сохраняем сертификаты: ```bash kubectl cp user.p12 kafka-4:/work/ kubectl cp ca.p12 kafka-4:/work/ ``` Создаём файлы конфигурации: ```bash cat > /work/user-read.properties <<'EOF' security.protocol=SSL ssl.keystore.type=PKCS12 ssl.keystore.location=/work/user.p12 ssl.keystore.password= ssl.truststore.type=PKCS12 ssl.truststore.location=/work/ca.p12 ssl.truststore.password= EOF ``` ```bash cat > /work/user-write.properties <<'EOF' security.protocol=SSL ssl.keystore.type=PKCS12 ssl.keystore.location=/work/user-write.p12 ssl.keystore.password= ssl.truststore.type=PKCS12 ssl.truststore.location=/work/ca.p12 ssl.truststore.password= EOF ``` Листинг доступных топиков: ```bash /opt/kafka/bin/kafka-topics.sh \ --bootstrap-server kafkak8s-bootstrap-external:9093 \ --command-config /work/user-read.properties \ --list ``` Запись сообщений: ```bash /opt/kafka/bin/kafka-console-producer.sh \ --bootstrap-server <адрес сервис брокера>:9093 \ --topic \ --producer.config /work/user-write.properties ``` Чтение сообщений: ```bash /opt/kafka/bin/kafka-console-consumer.sh \ --bootstrap-server <адрес сервис брокера>:9093 \ --topic \ --from-beginning \ --group \ --consumer.config /work/user-read.properties \ --max-messages 50 ``` --- ## 7. Пример внешнего подключения с использованием **kcat** **Листинг топиков** ```bash kcat -b :9093 \ -L \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-read.crt \ -X ssl.key.location=./user-read.key \ -X ssl.endpoint.identification.algorithm=none ``` **Запись сообщения** ```bash echo "hello from kcat" | kcat -P \ -b :9093 \ -t write-test \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-write.crt \ -X ssl.key.location=./user-write.key \ -X ssl.endpoint.identification.algorithm=none ``` **Чтение сообщений** ```bash kcat -C \ -b :9093 \ -t write-test \ -o beginning \ -q \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-read.crt \ -X ssl.key.location=./user-read.key \ -X ssl.endpoint.identification.algorithm=none ``` --- ## 9. Рекомендации * Минимизируйте набор разрешённых операций для повышения безопасности. * Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов. * Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**. * После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам. ---. См. [nubes_kafka_user](kafka_user.md) - `modify` — Изменение кластера. Параметры: [Modify params](kafka_params_modify.md) - `modify_topic` — # Инструкция по управлению топиками Apache Kafka через платформу ## 1. Общая информация --- Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам. Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API. --- ## Доступные операции - **create_topic** — Создание топика - **modify_topic** — Модификация топика - **delete_topic** — Удаление топика --- ## 2. Параметры создания топика Ниже перечислены параметры, которые необходимо указать при создании нового топика: * **Имя топика** Название топика. Должно быть уникальным в пределах кластера. Пример: `orders-events`. * **Партиции** Количество партиций топика. Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки. Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки. * **Реплики** Количество реплик для каждой партиции. Обычно равно количеству доступных брокеров или меньше. Пример: `3`. --- ## 4. Параметры модификации топика Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными: * **Имя топика** Название топика. Пример: `orders-events`. * **Партиции** Новое количество партиций. Пример: `12`. * **Реплики** Новое количество реплик. Пример: `2`. --- ## 5. Рекомендации * Планируйте количество партиций с запасом — уменьшение их числа невозможно. * Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров. * Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки. ---. См. [nubes_kafka_topic](kafka_topic.md) - `modify_user` — # Инструкция по управлению пользователями Apache Kafka. --- ## 1. Общая информация Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру. Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам. Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka. --- ## Доступные операции - **create_user** — Создание пользователя - **modify_user** — Модификация пользователя - **delete_user** — Удаление пользователя --- ## 2. Параметры создания пользователя Ниже перечислены параметры, которые необходимо указать при создании нового пользователя: * **Имя пользователя** Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав. Пример: `username-admin` * **Топик** Название топика, к которому будут назначены права для данного пользователя. Пример: `orders-events`. Использовать маску нельзя (`orders*`), только полное название или `*`. * **Операции** Список разрешённых операций на указанном топике. Пример: `Describe, Read, Write` * **Группа** Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп. Пример: `order-consumers`. * **Разрешённые хосты** Список хостов или подсетей, с которых разрешено подключение пользователя. Пример: `192.168.1.0/24` или `*`. --- ## 3. Параметры модификации пользователя Ниже перечислены параметры, которые необходимо указать при модификации пользователя: * **Имя пользователя** Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав. Пример: `username-admin` * **Топик** Название топика, к которому будут назначены права для данного пользователя. Пример: `orders-events`. Использовать маску нельзя (`orders*`), только полное название или `*`. * **Операции** Список разрешённых операций на указанном топике. Пример: `Describe, Read, Write` * **Группа** Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп. Пример: `order-consumers`. * **Разрешённые хосты** Список хостов или подсетей, с которых разрешено подключение пользователя. Пример: `192.168.1.0/24` или `*`. --- ## 4. Параметры удалении пользователя Ниже перечислены параметры, которые необходимо указать при удалении пользователя: * **Имя пользователя** Имя удаляемого пользователя. Пример: `username-admin` ## 5. Выходные параметры После успешного создания пользователя платформа возвращает параметры, необходимые для подключения: * **ca.crt** Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении. Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.crt ``` * **ca.p12** PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.p12 ``` * **ca.password** Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно. * **user.crt** Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka. Используется совместно с приватным ключом `user.key` для аутентификации. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.crt ``` * **user.key** Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo '<содержание поля>' | base64 -d > <название>.key ``` * **user.p12** PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka. Выдаеться в формате base64 для получения файла сертификата использовать команду ```bash echo "<содержание поля>" | base64 -d > <название>.p12 ``` * **user.password** Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно. Эти параметры используются для настройки TLS-подключения. --- ## 6. Пример конфигурации клиента внутри кластера Пример пода: ```yaml apiVersion: v1 kind: Pod metadata: name: kafka-4 spec: volumes: - name: work emptyDir: {} containers: - name: kcat image: quay.io/strimzi/kafka:latest-kafka-4.0.0 command: ["sleep", "5600"] volumeMounts: - name: work mountPath: /work restartPolicy: Never ``` Создаём под и сохраняем сертификаты: ```bash kubectl cp user.p12 kafka-4:/work/ kubectl cp ca.p12 kafka-4:/work/ ``` Создаём файлы конфигурации: ```bash cat > /work/user-read.properties <<'EOF' security.protocol=SSL ssl.keystore.type=PKCS12 ssl.keystore.location=/work/user.p12 ssl.keystore.password= ssl.truststore.type=PKCS12 ssl.truststore.location=/work/ca.p12 ssl.truststore.password= EOF ``` ```bash cat > /work/user-write.properties <<'EOF' security.protocol=SSL ssl.keystore.type=PKCS12 ssl.keystore.location=/work/user-write.p12 ssl.keystore.password= ssl.truststore.type=PKCS12 ssl.truststore.location=/work/ca.p12 ssl.truststore.password= EOF ``` Листинг доступных топиков: ```bash /opt/kafka/bin/kafka-topics.sh \ --bootstrap-server kafkak8s-bootstrap-external:9093 \ --command-config /work/user-read.properties \ --list ``` Запись сообщений: ```bash /opt/kafka/bin/kafka-console-producer.sh \ --bootstrap-server <адрес сервис брокера>:9093 \ --topic \ --producer.config /work/user-write.properties ``` Чтение сообщений: ```bash /opt/kafka/bin/kafka-console-consumer.sh \ --bootstrap-server <адрес сервис брокера>:9093 \ --topic \ --from-beginning \ --group \ --consumer.config /work/user-read.properties \ --max-messages 50 ``` --- ## 7. Пример внешнего подключения с использованием **kcat** **Листинг топиков** ```bash kcat -b :9093 \ -L \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-read.crt \ -X ssl.key.location=./user-read.key \ -X ssl.endpoint.identification.algorithm=none ``` **Запись сообщения** ```bash echo "hello from kcat" | kcat -P \ -b :9093 \ -t write-test \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-write.crt \ -X ssl.key.location=./user-write.key \ -X ssl.endpoint.identification.algorithm=none ``` **Чтение сообщений** ```bash kcat -C \ -b :9093 \ -t write-test \ -o beginning \ -q \ -X security.protocol=SSL \ -X ssl.ca.location=./ca.crt \ -X ssl.certificate.location=./user-read.crt \ -X ssl.key.location=./user-read.key \ -X ssl.endpoint.identification.algorithm=none ``` --- ## 9. Рекомендации * Минимизируйте набор разрешённых операций для повышения безопасности. * Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов. * Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**. * После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам. ---. См. [nubes_kafka_user](kafka_user.md) - `resume` - `suspend`