Интеграция бэкенда продукта с модулем координации (SaltStack) через брокер сообщений Kafka
На Рис. 1 представлена схема интеграции бэкенда продукта с модулем координации (SaltStack) через брокер сообщений Kafka.
В рамках интеграции c модулем координации бэкенд продукта обеспечивает:
-
передачу данных со всех серверов управления (masters) в бэкенд продукта с помощью подписки на топик Apache Kafka;
В брокере сообщений Kafka создается топик — логическая единица организации данных. Каждый топик представляет собой некоторое количество записей, которые называются сообщениями. Производитель, Kafka returner — модуль сервера управления (master), отправляет результаты выполнения команд и состояний, полученные от агентов (minions), в топик для дальнейшей обработки, а потребитель, бэкенд продукта, читает сообщения из него.
-
распределение запросов на установку ПО между серверами управления (masters).
При запросе на установку ПО на агенте (minion) бэкенд продукта отправляет HTTP-запрос, содержащий идентификатор агента (minion), на соответствующий сервер управления (master). Чтобы корректно определить сервер управления (master), бэкенд продукта анализирует следующие сообщения о событиях SaltStack, полученные через брокер сообщений Kafka:
-
minion_ping— указывает на то, что агент (minion) только что отправил ping-запрос на сервер управления (master); -
minion_start— указывает на то, что агент (minion) только что запустился; -
/minion/refresh/<minion-id>— указывает на то, что была выполнена операция обновления данных на агенте (minion) с указанным идентификатором, который определяет Kafka returner при обработке сообщений.
-
Перед тем как настроить интеграцию необходимо:
-
Установить Apache Kafka, следуя инструкциям в официальной документации.
-
Создать отдельный топик (например, salt-topic), следуя инструкции в официальной документации. Для топика рекомендуется задать параметры:
-
retention— время, в течение которого сообщения будут храниться в топике до момента удаления; -
partitions— способ физического разделения данных в топике на несколько частей. Эти параметры могут быть настроены в зависимости от требований к производительности и надежности системы.
-
Настройка интеграции выполняется в несколько шагов при установке продукта отдельно для каждого сервера управления (master) и агента (minion). Подробное описание каждого шага содержится в руководстве по установке.
Последовательность шагов:
-
При конфигурировании сервера управления (master) выполните настройку отправки событий в топик Apache Kafka.
-
После того как будут заданы настройки сервера управления (master), выполните настройку Kafka returner.
-
При конфигурировании агента (minion) задайте интервал времени (
ping_interval) между отправкой ping-запросов от агента (minion) на сервер управления (master). -
При конфигурировании бэкенда в файле
application.propertiesзадайте: