3. Агент 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.<PluginName>.System.Capacity=N в параметре конфигурации Plugins.
Поддерживаемые платформы
Список поддерживаемых платформ приведён на странице Требования.
Агент 2 в Unix-подобных системах
Zabbix агент 2 в 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 агент 2 можно установить в Windows одним из следующих способов:
- Предварительно скомпилированные бинарные файлы агента Zabbix — загрузите пакет установщика MSI агента и следуйте инструкциям на странице Установка агента Windows из MSI.
- Исходные коды Zabbix — загрузите исходные файлы и следуйте инструкциям на странице Сборка 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 соответственно.