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

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

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

Параметры

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

Параметр Описание
Агент UNIX и Windows
-c --config <config-file> Путь к файлу конфигурации.
Этот параметр можно использовать для указания файла конфигурации, отличного от файла по умолчанию.
-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> Выполнить административные функции. См. раздел управление во время выполнения.
Только агент Windows
-m --multiple-agents Использовать несколько экземпляров агента (с параметрами -i, -d, -s, -x).
Чтобы различать имена служб экземпляров, имя каждой службы будет включать значение Hostname из указанного файла конфигурации.
-S --startup-type <value> Установить тип запуска службы агента Zabbix для Windows. Допустимые значения:
automatic - (по умолчанию) автоматически запускать службу при запуске Windows;
delayed - отложить запуск службы до завершения запуска служб, запущенных автоматически;
manual - запускать службу вручную (пользователем или приложением);
disabled - отключить службу, чтобы ее нельзя было запустить пользователю или приложению.
Этот параметр можно использовать вместе с параметром -i или отдельно для изменения типа запуска уже установленной службы.
-i --install Установить агент Zabbix для Windows как службу.
-d --uninstall Удалить службу агента Zabbix для Windows.
-s --start Запустить службу агента Zabbix для Windows.
-x --stop Остановить службу агента Zabbix для Windows.

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

  • Вывод всех встроенных элементов данных агента со значениями.
  • Проверка пользовательского параметра с ключом mysql.ping, определенным в указанном файле конфигурации.
  • Установка службы агента Zabbix для Windows с использованием пути по умолчанию к файлу конфигурации.
  • Изменение типа запуска установленной службы агента Zabbix для Windows с использованием файла конфигурации, расположенного в той же папке, что и исполняемый файл агента.
zabbix_agent2 --print
zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agent2.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:

  • В UNIX по умолчанию используется:
    • При установке из исходных кодов: /usr/local/etc/zabbix_agent2.conf или значения переменных --sysconfdir или --prefix, заданные на этапе сборки.
    • При установке из пакетов: /etc/zabbix/zabbix_agent2.conf.
  • В 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 соответственно.