3. Агент 2

Обзор

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

Он предназначен для следующего:

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

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

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

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

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

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

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

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

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

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

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

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

Проверки из разных плагинов могут выполняться параллельно. Количество одновременно выполняемых проверок в рамках одного плагина ограничено настройкой capacity плагина. У каждого плагина может быть жестко заданное значение capacity (по умолчанию — 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 агент 2 работает как процесс переднего плана и использует внешний менеджер служб (например, systemd) для выполнения в фоновом режиме; Zabbix агент 2 не имеет встроенной поддержки демонизации в Linux.

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

systemctl start zabbix-agent2

Чтобы остановить, перезапустить или проверить состояние Zabbix агента 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 агент 2:

Параметр Описание
UNIX и Windows агент
-c --config <config-file> Путь к файлу конфигурации.
Вы можете использовать этот параметр, чтобы указать файл конфигурации, отличный от используемого по умолчанию.
В UNIX по умолчанию используется /usr/local/etc/zabbix_agent2.conf или путь, заданный переменными compile-time --sysconfdir или --prefix
В Windows по умолчанию используется C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf
-f --foreground Запустить Zabbix агент в режиме переднего плана (по умолчанию: true).
-p --print Вывести известные элементы данных и завершить работу.
Примечание: чтобы также возвращать результаты пользовательских параметров, необходимо указать файл конфигурации (если он не находится в расположении по умолчанию).
-t --test <item key> Проверить указанный элемент данных и завершить работу.
Примечание: чтобы также возвращать результаты пользовательских параметров, необходимо указать файл конфигурации (если он не находится в расположении по умолчанию).
-T --test-config Проверить файл конфигурации и завершить работу.
-h --help Вывести справочную информацию и завершить работу.
-v --verbose Вывести отладочную информацию. Используйте этот параметр вместе с параметрами -p и -t.
-V --version Вывести версию агента и информацию о лицензии.
-R --runtime-control <option> Выполнить административные функции. См. runtime control.
Только 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
Управление работой

Управление работой агента предоставляет некоторые опции для удалённого управления агентом.

Опция Описание
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 агент 2 в основном совпадают с параметрами Zabbix агент, за некоторыми исключениями:

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

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

Коды завершения

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

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