Настройка интеграции с Apache Kafka

Отправка событий с сервера управления (master) в Apache Kafka выполняется с помощью библиотеки librdkafka.

Создайте конфигурационный файл /etc/salt/master.d/returner.conf.

Пример:

returner.kafka_custom.bootstrap:
  - "<kafka_host>:<kafka_port>"
returner.kafka_custom.topic: 'salt-topic'
returner.kafka_custom.security.protocol: ""
returner.kafka_custom.ssl.cipher.suites: ""
returner.kafka_custom.ssl.curves.list: ""
returner.kafka_custom.ssl.sigalgs.list: ""
returner.kafka_custom.ssl.key.location: ""
returner.kafka_custom.ssl.key.password: ""
returner.kafka_custom.ssl.key.pem: ""
returner.kafka_custom.ssl.certificate.location: ""
returner.kafka_custom.ssl.certificate.pem: ""
returner.kafka_custom.ssl.ca.location: ""
returner.kafka_custom.ssl.ca.pem: ""
returner.kafka_custom.ssl.ca.certificate.stores: ""
returner.kafka_custom.ssl.crl.location: ""
returner.kafka_custom.ssl.keystore.location: ""
returner.kafka_custom.ssl.keystore.password: ""
returner.kafka_custom.ssl.providers: ""
returner.kafka_custom.ssl.engine.id: ""
returner.kafka_custom.enable.ssl.certificate.verification: ""
returner.kafka_custom.ssl.endpoint.identification.algorithm: ""
returner.kafka_custom.debug: "all"
returner.kafka_custom.log_level: ""
returner.kafka_custom.allow.auto.create.topics: "true"
event_return: kafka_custom

В таблицах ниже приводится описание параметров из файла.

Обязательные параметры:

Наименование Описание Пример значения

returner.kafka_custom.bootstrap

Список хостов с указанием портов, где запущен брокер сообщений Apache Kafka

"192.168.1.101:9092"

returner.kafka_custom.topic

Топик Apache Kafka

salt-topic

event_return

Выбор способа отправки событий возврата

kafka_custom

Опциональные параметры:

Наименование Описание Пример значения

returner.kafka_custom.security.protocol

Протокол, который используется для соединения с Apache Kafka

plaintext

returner.kafka_custom.ssl.cipher.suites

Набор шифров (именованная комбинация аутентификации, шифрование, MAC-адреса и алгоритмы обмена ключами), используемые для согласования параметров безопасности сетевого подключения по протоколу SSL. Подробнее см. SSL_CTX_set_cipher_list

returner.kafka_custom.ssl.curves.list

Поддерживаемые кривые (supported curves), стандартные/именованные или «явные» GF(2^k) или GF(p) для использования сервером, которые передаются в сообщении TLS ClientHello. Подробнее см. SSL_CTX_set1_curves_list

returner.kafka_custom.ssl.sigalgs.list

Поддерживаемые алгоритмы цифровой подписи для использования сервером, которые передаются в сообщении TLS ClientHello. Подробнее см. SSL_CTX_set1_sigalgs

returner.kafka_custom.ssl.key.location

Путь к закрытому ключу клиента (PEM), который используется для аутентификации

returner.kafka_custom.ssl.key.password

Пароль для закрытого ключа (для использования с ssl.key.location и set_ssl_cert())

returner.kafka_custom.ssl.key.pem

Строка закрытого ключа клиента (в PEM-формате), которая используется для аутентификации

returner.kafka_custom.ssl.certificate.location

Путь к публичному ключу клиента (в PEM-формате), который используется для аутентификации

returner.kafka_custom.ssl.certificate.pem

Строка публичного ключа клиента (в PEM-формате), которая используется для аутентификации

returner.kafka_custom.ssl.ca.location

Путь к файлу или каталогу сертификатов CA (Certificate Authority) для проверки ключа брокера

returner.kafka_custom.ssl.ca.pem

Строка сертификата CA (в PEM-формате) для проверки ключа брокера

returner.kafka_custom.ssl.ca.certificate.stores

Список хранилищ сертификатов Windows (через запятую), из которых можно загрузить сертификаты CA. Сертификаты будут загружены в том же порядке, в котором указаны хранилища

returner.kafka_custom.ssl.crl.location

Путь к CRL для валидации сертификата брокера

returner.kafka_custom.ssl.keystore.location

Путь к хранилищу ключей клиента (PKCS#12), которые используются для аутентификации

returner.kafka_custom.ssl.keystore.password

Пароль хранилища ключей клиента (PKCS#12)

returner.kafka_custom.ssl.providers

Список провайдеров (разделенный запятыми) OpenSSL 3.0.x

returner.kafka_custom.ssl.engine.id

Идентификатор OpenSSL

returner.kafka_custom.enable.ssl.certificate.verification

Включение проверки сертификата встроенного брокера OpenSSL (сервера). Эта проверка может быть расширена приложением путем реализации certificate_verify_cb

returner.kafka_custom.ssl.endpoint.identification.algorithm

Алгоритм идентификации endpoint для проверки имени хоста брокера с использованием сертификата брокера

returner.kafka_custom.debug

Список контекстов отладки (разделенный запятыми), которые необходимо включить

returner.kafka_custom.log_level

Уровень логирования

returner.kafka_custom.allow.auto.create.topics

Разрешение автоматического создания темы в брокере при подписке на несуществующие темы или назначения им тем.

Для корректной работы данной конфигурации брокер должен быть настроен с параметром auto.create.topics.enable=true
В качестве инструкции по генерации сертификатов используйте документ "Using SSL with librdkafka".

Настройка интеграции с Apache Kafka с использованием защищенного TLS-соединения

Чтобы настроить интеграцию с использованием защищенного TLS-соединения, в конфигурационном файле /etc/salt/master.d/returner.conf укажите все настройки, приведенные ниже:

returner.kafka_custom.bootstrap:
  - 10.31.0.170:9092
returner.kafka_custom.topic: salt-topic
returner.kafka_custom.security.protocol: "ssl"
returner.kafka_custom.ssl.key.location: "/etc/salt/pki/salt_kafkaclient.key"
returner.kafka_custom.ssl.key.password: "abcdefgh"
returner.kafka_custom.ssl.certificate.location: "/etc/salt/pki/salt_kafkaclient.pem"
returner.kafka_custom.ssl.ca.location: "/etc/salt/pki/salt_kafkaca.crt"
returnet.kafka_custom.ssl.endpoint.identification.algorithm: "none"
returner.kafka_custom.enable.ssl.certificate.verification: "false"
returner.kafka_custom.allow.auto.create.topics: "true"
returner.kafka_custom.debug: "all"
event_return: kafka_custom