Агент 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 agent 2 планирует первый сбор данных для активных проверок на условно случайное время в пределах интервала обновления элемента данных, чтобы предотвратить всплески использования ресурсов. Чтобы выполнять активные проверки, у которых нет интервала обновления Scheduling, сразу после перезапуска агента, задайте параметр ForceActiveChecksOnStart (на глобальном уровне) или Plugins.<Plugin name>.System.ForceActiveChecksOnStart (влияет только на проверки конкретного плагина) в файле конфигурации. Если параметр на уровне плагина задан, он переопределяет глобальный параметр.

Параллелизм проверок

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

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

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

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

Zabbix агент 2 в 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 агент 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 соответственно.