Алгоритмы работы

  • чтение конфигурации агента из файла или параметров по умолчанию;

  • отправка текущего состояния консоли и получение новой конфигурации в методе;

  • при получении новой конфигурации - обновление модулей или самого агента;

  • обновление файла текущей конфигурации;

  • проверка, что все установленные модули запущены.

Параметры подключения:

Хост сенсора агент получает из сервисной DNS записи "_alertixsensor._tcp.<домен хоста>", если не удалось - из переменной окружения. После первого получения имени сенсора агент сохраняет его в конфигурационный файл и на каждой итерации проверяет его доступность. Если сенсор стал недоступен, агент запрашивает в DNS новый адрес.

Домен для запроса агент получает из системы:

  • Linux - системная утилита domainname

  • Windows - ключ реестра
    "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\System\DNSClient"

Если не удалось - из переменной окружения.

Создаваемые переменные:

  • Хост сенсора: ALERTIX_SENSOR (по умолчанию alertix-sensor);

  • Порт сенсора для отправки событий с хоста: ALERTIX_BEATS_PORT (по умолчанию 5044);

  • Порт сенсора для отправки логов агента: ALERTIX_LOG_PORT (по умолчанию 5045);

  • Порт сенсора для отправки запросов конфигурации и загрузки модулей: ALERTIX_SENSOR_PORT (по умолчанию 5602);

  • Домен сенсора: ALERTIX_DEFAULT_DOMAIN (по умолчанию local).

Порядок обновления модулей при получении текущей конфигурации:

  1. Если новая конфигурация не содержит модуль из старой конфигурации, ничего делать не надо.

  2. Если модуль не установлен и не должен быть установлен, ничего делать не надо.

  3. Если модуль установлен, но не должен быть установлен – его необходимо удалить.

  4. Если модуль установлен сторонними средствами, но должен быть установлен агентом, его необходимо удалить. Если удалить не удалось, сохранить старую конфигурацию и перейти к следующему модулю без установки своего модуля, чтобы не было конфликта.

  5. Если модуль не был установлен либо имеет статус [NotInstalled] (см. [moduleStatus]), но должен быть установлен, его необходимо установить. Если не удалось, сохранить старую конфигурацию, чтобы попытаться установить при следующем запуске.

  6. Если текущая версия модуля меньше актуальной, необходимо обновить модуль. Если не удалось, сохранить старую конфигурацию, чтобы попытаться обновить при следующем запуске.

  7. Если текущая группа агента отличается от актуальной, или версия конфигурации агента меньше актуальной, необходимо обновить конфигурацию модуля. Если не удалось, сохранить старую конфигурацию, чтобы попытаться обновить при следующем запуске.

  8. Если модуль установлен, но не запущен, его необходимо запустить.