3. Агент 2

Обзор

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

  • Сократить количество TCP-соединений;
  • Обеспечить улучшенную параллельность проверок;
  • Легко расширяться с помощью плагинов, которые предоставляют простые проверки с минимальным объемом кода и поддерживают сложные проверки, состоящие из длительно выполняющихся скриптов и автономного сбора данных с периодической передачей результатов;
  • Выполнять роль замены Zabbix agent, поддерживая все предыдущие возможности.

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

Для плагинов характерны следующие возможности:

  • Планируемые и гибкие интервалы как для пассивных, так и для активных проверок
  • Управление очередью задач с учетом расписания и параллельности выполнения задач
  • Тайм-ауты на уровне плагина
  • Проверка совместимости Zabbix agent 2 и его плагинов при запуске

Существуют два типа плагинов:

Вы также можете создавать собственные плагины.

Плагины, созданные пользователем, не обязательно должны быть встроены в agent 2. Их можно добавлять как загружаемые плагины, тем самым упрощая создание плагинов для новых метрик.

Загружаемые плагины можно добавлять во время работы без перекомпиляции Zabbix agent 2.

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

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

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

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

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

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

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

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

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

Установка

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

  • Пакеты Zabbix - выберите компонент Agent 2 (после выбора версии Zabbix, дистрибутива ОС и версии ОС) и следуйте инструкциям;
  • Исходные тексты Zabbix - загрузите исходные файлы и скомпилируйте агент, настроив его с параметром --enable-agent2.

Возможности мониторинга 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 агент 2 можно установить в Windows одним из следующих способов:

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

Дополнительные сведения об установке Zabbix агент 2 (из ZIP-архива) в качестве службы Windows см. на странице Агент Zabbix в 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 Windows agent. Допустимые значения:
automatic - (по умолчанию) запускать службу автоматически при старте Windows;
delayed - отложить запуск службы после завершения запуска служб, запускаемых автоматически;
manual - запускать службу вручную (пользователем или приложением);
disabled - отключить службу, чтобы ее нельзя было запустить пользователем или приложением.
Этот параметр можно использовать вместе с параметром -i или отдельно, чтобы изменить тип запуска уже установленной службы.
-i --install Установить Zabbix Windows agent как службу.
-d --uninstall Удалить службу Zabbix Windows agent.
-s --start Запустить службу Zabbix Windows agent.
-x --stop Остановить службу Zabbix Windows agent.

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

  • Вывести все встроенные элементы данных агента со значениями.
  • Проверить пользовательский параметр с ключом 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

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

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

  • В 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 соответственно.