3. Агент 2
Обзор
Zabbix агент 2 — это новое поколение Zabbix агента, написанное на языке Go (с частичным использованием кода на C из Zabbix агента). Zabbix агент 2 разработан для:
- уменьшения количества TCP-соединений;
- улучшения параллельности проверок;
- лёгкого расширения при помощи плагинов, которые обеспечивают простые проверки с минимальным кодом и поддерживают сложные проверки, состоящие из длительно выполняемых скриптов и автономного сбора данных с периодической отправкой данных;
- функционирования в качестве замены Zabbix агента, поддерживая все предыдущие функции.
Все метрики, поддерживаемые Zabbix агентом 2, собираются плагинами.
Пассивные и активные проверки
Zabbix агент 2 поддерживает пассивные и активные проверки, аналогично Zabbix агенту. Кроме того, активные проверки Zabbix агента 2 поддерживают переменные интервалы / интервалы по расписанию и параллелизм проверок в пределах одного активного сервера.
По умолчанию, после перезапуска Zabbix агент 2 будет планировать первый сбор данных по активным проверкам в случайное время в течение интервала обновления элемента данных, во избежание скачков в использовании ресурсов.
Чтобы активные проверки, у которых отсутствует интервал обновления По расписанию, были выполнены сразу после перезапуска агента, укажите в файле конфигурации параметр ForceActiveChecksOnStart (глобальный уровень) или Plugins.<ИмяПлагина>.System.ForceActiveChecksOnStart (влияет только на проверки из конкретного плагина).
Параметр уровня плагина, если задан, переопределяет собой глобальный параметр.
Параллелизм проверок
Проверки из разных плагинов могут выполняться параллельно.
Количество параллельных проверок в пределах одного плагина ограничено настройкой производительности плагина.
Каждый плагин может иметь жёстко зашитую в код настройку производительности (по умолчанию, 1000), значение которой можно уменьшить, указав настройку Plugins.<ИмяПлагина>.System.Capacity=N в параметре конфигурации Plugins.
Поддерживаемые платформы
Поддерживаемые платформы смотрите на странице Требования.
Агент 2 на Unix-подобных системах
Zabbix агент 2 на Unix-подобных системах запускается на отслеживаемом хосте.
Установка
Zabbix агент 2 на системах на базе Linux может быть установлен одним из следующих способов:
- Пакеты Zabbix — выберите компонент Агент 2 (после выбора версии Zabbix, дистрибутива ОС и версии ОС) и следуйте инструкциям;
- Исходный код Zabbix — загрузите исходный код и скомпилируйте агент, сконфигурировав с указанием опции
--enable-agent2.
Возможности мониторинга Zabbix агента 2 можно расширить с помощью загружаемых плагинов, которые доступны отдельно. За более подробной информацией обратитесь к разделу Подгружаемые плагины.
Начиная с Zabbix 7.0.5, пакеты Zabbix агента 2 больше не доступны для RHEL 6 из-за несовместимости Go 1.22 (и новее) с GCC 4.4.7, предоставляемым RHEL 6, что приводит к ошибкам компиляции. Однако, следует отметить, что пакеты Zabbix агента по-прежнему поддерживаются.
При установке как пакет
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 агента — загрузите пакет установщика MSI агента и следуйте инструкциям на странице Установка агента Windows из MSI;
- Исходный код Zabbix — загрузите исходный код и следуйте инструкциям на странице Сборка Zabbix агента 2 на Windows.
Возможности мониторинга Zabbix агента 2 можно расширить с помощью подгружаемых плагинов, которые доступны отдельно. Для более подробной информации смотрите Подгружаемые плагины.
Дополнительные сведения об установке Zabbix агента 2 (из ZIP-архива) в качестве службы Windows смотрите на странице Агент Zabbix в Microsoft Windows.
Опции
Следующие параметры командной строки могут быть использованы с 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
Начиная с версии Zabbix 7.0.17, команды управления работой агента 2 пишут вывод в stdout (стандартный вывод) вместо stderr (стандартного вывода ошибок).
Файл конфигурации
Путь по умолчанию файла конфигурации:
- В UNIX, путём по умолчанию является
/usr/local/etc/zabbix_agent2.confлибо как задано переменными времени компиляции--sysconfdirили--prefix. - В Windows, путём по умолчанию является
C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf.
Если на хосте запущен один экземпляр агента, он может использовать файл конфигурации по умолчанию или файл конфигурации, указанный в командной строке. В случае нескольких экземпляров каждый экземпляр агента должен иметь свой собственный файл конфигурации (один из экземпляров может использовать файл конфигурации по умолчанию).
Параметры конфигурации Zabbix агента 2 большей частью совпадают с параметрами Zabbix агента, за несколькими исключениями.
| Параметры | Описание | |
|---|---|---|
| Параметры конфигурации, специфичные для Zabbix агента 2 | ||
ControlSocket |
Путь к сокету управления работой. Агент 2 использует управляющий сокет для административных команд. | |
EnablePersistentBuffer,PersistentBufferFile,PersistentBufferPeriod |
Эти параметры используются для настройки постоянного хранилища агента 2 для активных элементов данных. | |
ForceActiveChecksOnStart |
Параметр определяет, должен ли агент выполнить активные проверки немедленно после перезапуска агента или равномерно распределить их по времени. | |
Plugins |
Плагины могут иметь свои собственные параметры, в формате Plugins.<Имя плагина>.<Параметр>=<значение>. Общий параметр плагинов — System.Capacity, задаёт ограничение количества проверок, которые могут быть выполнены одновременно. |
|
StatusPort |
Агент 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 параллелизм настраивается на уровне плагинов и может быть ограничен настройкой производительности. Пассивные проверки в Zabbix агенте 2 отключаются, если не указан параметр Server. |
|
Для получения подробной информации смотрите параметры файла конфигурации для Zabbix агента 2.
Коды завершения
Zabbix агент 2 также может быть скомпилирован с более старыми версиями OpenSSL (1.0.1, 1.0.2).
В этом случае Zabbix предоставляет мьютексы для блокировки в OpenSSL.
Если блокировка или разблокировка мьютекса не удалась, то в стандартный поток ошибок (STDERR) выводится сообщение об ошибке, и агент 2 завершает работу, возвращая код 2 или 3 соответственно.