3. Агент 2

Обзор

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

  • уменьшения количества TCP-соединений
  • улучшения многопоточности проверок
  • лёгкого расширения при помощи плагинов. Плагин должен уметь следующее:
    • обеспечивать простые проверки, состоящие только из нескольких строк кода
    • обеспечивать сложные проверки, состоящие из длительно выполняемых скриптов и автономного сбора данных с периодической отправкой данных обратно
  • простой замены Zabbix агента (поскольку он поддерживает весь предыдущий функционал)

Агент 2 написан на языке программирования Go (с частичным использованием кода на C из Zabbix агента). Для сборки Zabbix агента 2 требуется подготовленная среда Go с поддерживаемой в настоящее время версией Go [en].

Агент 2 не имеет встроенной поддержки режима демона на Linux; его можно запустить в качестве службы Windows.

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

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

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

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

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

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

Zabbix агент 2 поддерживается на следующих платформах:

Начиная с Zabbix 7.0.5, пакеты Zabbix агента 2 больше не доступны для RHEL 6 из-за несовместимости Go 1.22 (и новее) с GCC 4.4.7, предоставляемым RHEL 6, что приводит к ошибкам компиляции. Однако следует отметить, что пакеты Zabbix агента по-прежнему поддерживаются.

Установка

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

Windows:

Linux:

  • из дистрибутивных пакетов — следуйте инструкциям на странице пакетов Zabbix, доступным при выборе вашего дистрибутива и компонента Агент 2
  • из исходных кодов — смотрите Установка из исходных кодов; обратите внимание, что вы должны сконфигурировать исходные коды с указанием опции конфигурации --enable-agent2

Возможности мониторинга с использованием Zabbix агента 2 могут быть расширены с помощью плагинов. В то время как встроенные плагины доступны «из коробки», подгружаемые плагины нужно устанавливать отдельно. Для более подробной информации смотрите Плагины.

Опции

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

Параметр Описание
Агенты UNIX and Windows
-c --config <файл-конфигурации> Путь к файлу конфигурации.
Вы можете использовать данную опцию, чтобы указать файл конфигурации, отличный от заданного по умолчанию.
В UNIX путь по умолчанию /usr/local/etc/zabbix_agent2.conf или как задано во время компиляции переменными --sysconfdir или --prefix
В Windows путь по умолчанию C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf
-f --foreground Запуск Zabbix агента без перехода в фоновый режим (по умолчанию: true).
-p --print Вывод известых элементов данных и выход.
Обратите внимание: Чтобы также получить результаты пользовательских параметров, вам необходимо указать файл конфигурации (если он отличается от заданного по умолчанию).
-t --test <ключ элемента данных> Тестирование указанного элемента данных и выход.
Обратите внимание: Чтобы также получить результат пользовательских параметров, вам необходимо указать файл конфигурации (если он отличается от заданного по умолчанию).
-T --test-config Проверка файла конфигурации и выход.
-h --help Вывод справочной информации и выход.
-v --verbose Вывод отладочной информации. Используйте эту опцию совместно с опциями -p и -t.
-V --version Вывод номера версии агента и информации о лицензии.
-R --runtime-control <опция> Выполнение административных функций. Смотрите управление работой.
Только Windows агент
-m --multiple-agents Использование нескольких экземпляров агента (с опциями -i, -d, -s, -x).
Для уникальности имён экземпляров служб, каждое имя службы будет включать значение Hostname из указанного файла конфигурации.
-S --startup-type <значение> Установить тип запуска службы Windows агента Zabbix. Допустимые значения:
automatic(по умолчанию) автоматический запуск службы при старте Windows;
delayed — задержка запуска службы до завершения запуска автоматически запускаемых служб;
manual — ручной запуск службы (пользователем или приложением);
disabled — служба отключена, во избежание запуска пользователем или приложением.
Эту опцию можно использовать совместно с опцией -i либо отдельно для модификации типа запуска уже установленной службы.
-i --install Установка Zabbix агента как службы Windows .
-d --uninstall Удаление службы Windows Zabbix агента.
-s --start Запуск службы Windows Zabbix агента.
-x --stop Останов службы Windows Zabbix агента.

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

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

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

Параметры конфигурации агента 2 большей частью совместимы с Zabbix агентом, за несколькими исключениями.

Новые параметры Описание
ControlSocket Путь к сокету управления работой. Агент 2 использует управляющий сокет для административных команд.
EnablePersistentBuffer,
PersistentBufferFile,
PersistentBufferPeriod
Эти параметры используются для настройки постоянного хранилища агента 2 для активных элементов данных.
ForceActiveChecksOnStart Параметр определяет, должен ли агент выполнить активные проверки немедленно после перезапуска агента или равномерно распределить их по времени.
Plugins Плагины могут иметь свои собственные параметры, в формате Plugins.<Имя плагина>.<Параметр>=<значение>. Общий параметр плагинов — System.Capacity, задаёт ограничение количества проверок, которые могут быть выполнены одновременно.
StatusPort Агент 2 будет слушать этот порт для запросов HTTP состояния и отображать список настроенных плагинов и некоторые внутренние параметры.
Исключённые параметры Описание
AllowRoot, User Не поддерживается, так как режим демона не поддерживается.
LoadModule, LoadModulePath Загружаемые модули не поддерживаются.
StartAgents Этот параметр использовался в Zabbix агенте для увеличения параллелизма пассивных проверок или для их отключения. В Агенте 2 параллелизм настраивается на уровне плагинов и может быть ограничен настройкой производительности. Между тем, полное отключение пассивных проверок в настоящее время не поддерживается.
HostInterface, HostInterfaceItem Ещё не поддерживается.

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

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

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

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