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 планирует первый сбор данных для активных проверок на условно случайное время в пределах интервала обновления элемента данных, чтобы предотвратить всплески использования ресурсов. Чтобы выполнять активные проверки без интервала обновления по расписанию сразу после перезапуска агента, задайте параметр 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.<Имя плагина>.<Параметр>=<значение>. Распространенный параметр плагина — 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 соответственно.