3. Агент 2
Обзор
Zabbix агент 2 — это новое поколение Zabbix агента, написанное на языке Go (с частичным использованием кода на C из Zabbix агента). Zabbix агент 2 разработан для:
- уменьшения количества TCP-соединений;
- улучшения параллельности проверок;
- лёгкого расширения при помощи плагинов, которые обеспечивают простые проверки с минимальным кодом и поддерживают сложные проверки, состоящие из длительно выполняемых скриптов и автономного сбора данных с периодической отправкой данных;
- функционирования в качестве замены Zabbix агента, поддерживая все предыдущие функции.
Все метрики, поддерживаемые Zabbix агентом 2, собираются плагинами.
Пассивные и активные проверки
Агент Zabbix 2 поддерживает пассивные и активные проверки, как и агент Zabbix. Кроме того, активные проверки агента Zabbix 2 поддерживают гибкие интервалы/интервалы по расписанию и параллельное выполнение проверок в рамках одного активного сервера.
По умолчанию после перезапуска агент Zabbix 2 запланирует первый сбор данных для активных проверок на условно случайное время в пределах интервала обновления элемента данных, чтобы предотвратить всплески нагрузки на ресурсы.
Чтобы выполнять активные проверки, у которых нет интервала обновления типа Scheduling, сразу после перезапуска агента, задайте параметр ForceActiveChecksOnStart (на глобальном уровне) или Plugins.<Plugin name>.System.ForceActiveChecksOnStart (влияет только на проверки конкретного плагина) в файле конфигурации.
Если параметр уровня плагина задан, он переопределяет глобальный параметр.
Проверка параллельного выполнения
Проверки из разных плагинов могут выполняться одновременно.
Количество одновременных проверок в рамках одного плагина ограничено параметром емкости плагина.
Для каждого плагина может быть задано жестко закодированное значение емкости (1000 по умолчанию), которое можно уменьшить с помощью параметра Plugins.<PluginName>.System.Capacity=N в параметре конфигурации Plugins.
Поддерживаемые платформы
Поддерживаемые платформы смотрите на странице Требования.
Агент 2 в Unix-подобных системах
Агент 2 Zabbix в 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 agent 2 можно установить в Windows одним из следующих способов:
- Предварительно скомпилированные двоичные файлы Zabbix agent - загрузите MSI-пакет установщика агента и следуйте инструкциям на странице Установка агента Windows из MSI;
- Исходные коды Zabbix - загрузите исходные файлы и следуйте инструкциям на странице Сборка Zabbix agent 2 в Windows.
Возможности мониторинга Zabbix agent 2 можно расширить с помощью загружаемых плагинов, которые доступны отдельно. Подробности см. на странице Загружаемые плагины.
Дополнительные сведения об установке Zabbix agent 2 (из ZIP-архива) в качестве службы Windows см. на странице Zabbix agent в 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 agent для Windows. Допустимые значения:automatic - (по умолчанию) запускать службу автоматически при старте Windows;delayed - отложить запуск службы до завершения запуска служб, которые стартуют автоматически;manual - запускать службу вручную (пользователем или приложением);disabled - отключить службу, чтобы ее нельзя было запустить пользователем или приложением.Вы можете использовать этот параметр вместе с параметром -i или отдельно, чтобы изменить тип запуска уже установленной службы. |
-i --install |
Установить Zabbix agent для Windows как службу. |
-d --uninstall |
Удалить службу Zabbix agent для Windows. |
-s --start |
Запустить службу Zabbix agent для Windows. |
-x --stop |
Остановить службу Zabbix agent для Windows. |
Конкретные примеры использования параметров командной строки:
- Вывести все встроенные элементы данных агента со значениями.
- Проверить пользовательский параметр с ключом
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
Начиная с Zabbix 7.4.1, команды управления во время выполнения для агента 2 выводят результат в stdout (стандартный вывод) вместо stderr (стандартный поток ошибок).
Файл конфигурации
Путь по умолчанию к файлу конфигурации:
- В 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 соответственно.