3. Агент 2

Обзор

Zabbix агент 2 — это новое поколение Zabbix агента, написанное на языке Go (с частичным использованием кода на C из Zabbix агента). Zabbix агент 2 разработан для:

  • уменьшения количества TCP-соединений;
  • улучшения параллельности проверок;
  • лёгкого расширения при помощи плагинов, которые обеспечивают простые проверки с минимальным кодом и поддерживают сложные проверки, состоящие из длительно выполняемых скриптов и автономного сбора данных с периодической отправкой данных;
  • функционирования в качестве замены Zabbix агента, поддерживая все предыдущие функции.

Все метрики, поддерживаемые Zabbix агентом 2, собираются плагинами.

Пассивные и активные проверки

Агент Zabbix 2 поддерживает пассивные и активные проверки, как и агент Zabbix. Кроме того, активные проверки агента Zabbix 2 поддерживают гибкие интервалы/интервалы по расписанию и параллельное выполнение проверок в рамках одного активного сервера.

По умолчанию после перезапуска агент Zabbix 2 запланирует первый сбор данных для активных проверок на условно случайное время в пределах интервала обновления элемента данных, чтобы предотвратить всплески нагрузки на ресурсы. Чтобы выполнять активные проверки, у которых нет интервала обновления типа Scheduling, сразу после перезапуска агента, задайте параметр ForceActiveChecksOnStart (на глобальном уровне) или Plugins.<Plugin name>.System.ForceActiveChecksOnStart (влияет только на проверки конкретного плагина) в файле конфигурации. Если параметр уровня плагина задан, он переопределяет глобальный параметр.

Проверка параллельного выполнения

Проверки из разных плагинов могут выполняться одновременно. Количество одновременных проверок в рамках одного плагина ограничено параметром емкости плагина. Для каждого плагина может быть задано жестко закодированное значение емкости (1000 по умолчанию), которое можно уменьшить с помощью параметра Plugins.<PluginName>.System.Capacity=N в параметре конфигурации Plugins.

Поддерживаемые платформы

Поддерживаемые платформы смотрите на странице Требования.

Агент 2 в Unix-подобных системах

Агент 2 Zabbix в Unix-подобных системах запускается на узле сети, который находится под мониторингом.

Установка

Zabbix агент 2 можно установить на системах на базе Linux одним из следующих способов:

Возможности мониторинга Zabbix агент 2 можно расширить с помощью загружаемых плагинов, которые доступны отдельно. Подробности см. в разделе Загружаемые плагины.

Если установлен как пакет

Zabbix agent 2 работает как процесс переднего плана и для работы в фоновом режиме использует внешний менеджер служб (например, systemd). В Linux у Zabbix agent 2 нет встроенной поддержки демонизации.

Агент можно запустить, выполнив:

systemctl start zabbix-agent2

Чтобы остановить, перезапустить или проверить состояние Zabbix agent 2, используйте следующие команды:

systemctl stop zabbix-agent2
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
Запуск вручную

Вы можете запустить агент Zabbix, найдя исполняемый файл zabbix_agent2 и запустив его напрямую; например:

zabbix_agent2

Агент 2 в системах Windows

Zabbix агент 2 работает как отдельный процесс; однако его также можно запускать как службу Windows.

Установка

Zabbix agent 2 можно установить в Windows одним из следующих способов:

Возможности мониторинга Zabbix agent 2 можно расширить с помощью загружаемых плагинов, которые доступны отдельно. Подробности см. на странице Загружаемые плагины.

Дополнительные сведения об установке Zabbix agent 2 (из ZIP-архива) в качестве службы Windows см. на странице Zabbix agent в Microsoft Windows.

Параметры

С Zabbix agent 2 можно использовать следующие параметры командной строки:

Parameter Description
Агент UNIX и Windows
-c --config <config-file> Путь к файлу конфигурации.
Вы можете использовать этот параметр, чтобы указать файл конфигурации, отличный от файла по умолчанию.
-f --foreground Запустить Zabbix agent в режиме переднего плана (по умолчанию: true).
-p --print Вывести известные элементы данных и выйти.
Обратите внимание: чтобы также вернуть результаты пользовательского параметра, необходимо указать файл конфигурации (если он не находится в расположении по умолчанию).
-t --test <item key> Проверить указанный элемент данных и выйти.
Обратите внимание: чтобы также вернуть результаты пользовательского параметра, необходимо указать файл конфигурации (если он не находится в расположении по умолчанию).
-T --test-config Проверить файл конфигурации и выйти.
-h --help Вывести справочную информацию и выйти.
-v --verbose Вывести отладочную информацию. Используйте этот параметр вместе с параметрами -p и -t.
-V --version Вывести версию агента и сведения о лицензии.
-R --runtime-control <option> Выполнить административные функции. См. управление во время выполнения.
Только агент Windows
-m --multiple-agents Использовать несколько экземпляров агента (с параметрами -i, -d, -s, -x).
Чтобы различать имена служб экземпляров, каждое имя службы будет включать значение Hostname из указанного файла конфигурации.
-S --startup-type <value> Установить тип запуска службы Zabbix agent для Windows. Допустимые значения:
automatic - (по умолчанию) запускать службу автоматически при старте Windows;
delayed - отложить запуск службы до завершения запуска служб, которые стартуют автоматически;
manual - запускать службу вручную (пользователем или приложением);
disabled - отключить службу, чтобы ее нельзя было запустить пользователем или приложением.
Вы можете использовать этот параметр вместе с параметром -i или отдельно, чтобы изменить тип запуска уже установленной службы.
-i --install Установить Zabbix agent для Windows как службу.
-d --uninstall Удалить службу Zabbix agent для Windows.
-s --start Запустить службу Zabbix agent для Windows.
-x --stop Остановить службу Zabbix agent для Windows.

Конкретные примеры использования параметров командной строки:

  • Вывести все встроенные элементы данных агента со значениями.
  • Проверить пользовательский параметр с ключом mysql.ping, определенным в указанном файле конфигурации.
  • Установить службу Zabbix Agent для Windows, используя путь по умолчанию к файлу конфигурации C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf.
  • Изменить тип запуска установленной службы Zabbix Agent для Windows, используя файл конфигурации zabbix_agent2.conf, расположенный в той же папке, что и исполняемый файл агента.
zabbix_agent2 --print
zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
zabbix_agent2.exe -i
zabbix_agent2.exe -c zabbix_agent2.conf -S delayed
Управление во время выполнения

Управление во время выполнения предоставляет несколько возможностей для удаленного управления.

Option Description
log_level_increase Увеличить уровень журналирования.
log_level_decrease Уменьшить уровень журналирования.
metrics Вывести список доступных метрик.
version Показать версию агента.
userparameter_reload Перезагрузить значения параметров UserParameter и Include из текущего файла конфигурации.
help Показать справочную информацию по управлению во время выполнения.

Примеры:

  • Увеличение уровня журналирования для агента 2.
  • Вывести параметры управления во время выполнения.
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help

Начиная с Zabbix 7.4.1, команды управления во время выполнения для агента 2 выводят результат в stdout (стандартный вывод) вместо stderr (стандартный поток ошибок).

Файл конфигурации

Путь по умолчанию к файлу конфигурации:

  • В UNIX по умолчанию используется /usr/local/etc/zabbix_agent2.conf или путь, заданный переменными время компиляции --sysconfdir или --prefix.
  • В Windows по умолчанию используется C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf.

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

Параметры конфигурации Zabbix agent 2 в основном совпадают с параметрами Zabbix agent, за некоторыми исключениями:

Parameters Description
Специфичные для Zabbix agent 2 параметры конфигурации
ControlSocket Путь к сокету управления во время выполнения. Zabbix agent 2 использует сокет управления для команд во время выполнения.
EnablePersistentBuffer,
PersistentBufferFile,
PersistentBufferPeriod
Эти параметры используются для настройки постоянного хранилища в Zabbix agent 2 для активных элементов данных.
ForceActiveChecksOnStart Определяет, должен ли агент выполнять активные проверки сразу после перезапуска или распределять их равномерно во времени.
Plugins У плагинов могут быть собственные параметры в формате Plugins.<Plugin name>.<Parameter>=<value>. Распространенный параметр плагина — System.Capacity, который задает предел числа проверок, выполняемых одновременно.
StatusPort Порт, на котором Zabbix agent 2 будет ожидать HTTP-запросы состояния и отображать список настроенных плагинов и некоторые внутренние параметры.
Параметры конфигурации Zabbix agent, не поддерживаемые в Zabbix agent 2
AllowRoot,
User
Не поддерживаются в Zabbix agent 2, поскольку он не поддерживает демонизацию.
EnableRemoteCommands Устарел; вместо него в обоих агентах используются параметры AllowKey и DenyKey.
ListenBacklog Используется в Zabbix agent для определения максимального числа ожидающих подключений в очереди TCP. Не поддерживается в Zabbix agent 2.
LoadModule,
LoadModulePath
Загружаемые модули не поддерживаются в Zabbix agent 2.
MaxLinesPerSecond,
LogRemoteCommands
В Zabbix agent 2 вместо них используются Plugins.Log.MaxLinesPerSecond и Plugins.SystemRun.LogRemoteCommands.
StartAgents Этот параметр используется в Zabbix agent для увеличения параллелизма пассивных проверок или их отключения. В Zabbix agent 2 параллелизм настраивается на уровне плагина и может быть ограничен параметром capacity. Пассивные проверки в Zabbix Agent 2 отключены, если не указан параметр Server.

Подробнее см. параметры файла конфигурации для Zabbix agent2.

Коды выхода

Zabbix agent 2 также может быть скомпилирован с более старыми версиями OpenSSL (1.0.1, 1.0.2).

В этом случае Zabbix предоставляет мьютексы для блокировки в OpenSSL. Если блокировка или разблокировка мьютекса завершается сбоем, то сообщение об ошибке выводится в стандартный поток ошибок (STDERR), а Agent 2 завершает работу с кодом возврата 2 или 3 соответственно.