Открыть сервис

Zabbix agent: назначение и принципы работы

Zabbix agent — это программа-демон, устанавливаемая на контролируемый хост для сбора данных мониторинга и передачи их на сервер Zabbix. Агент является одним из ключевых компонентов архитектуры системы мониторинга Zabbix наряду с сервером, веб-интерфейсом и прокси. Он обеспечивает сбор метрик производительности, доступности и целостности системы, работая по принципу активного или пассивного опроса.

История и развитие

Первая версия Zabbix agent появилась в 2001 году вместе с выходом Zabbix 1.0, разработанного Алексеем Владышевым. Изначально агент был реализован только для Unix-подобных операционных систем и поддерживал ограниченный набор параметров. С развитием проекта функциональность агента расширялась: в версии 2.0 (2012 год) была добавлена поддержка параллельных проверок и улучшена работа с пользовательскими параметрами, в версии 4.0 (2018 год) появилась поддержка шифрования TLS, а в версии 6.0 (2022 год) — нативная поддержка новых платформ и улучшенная обработка больших объёмов данных. Отдельная версия агента для Windows разрабатывается с 2004 года. Начиная с Zabbix 6.4 представлен Zabbix agent 2 — переработанная версия агента с модульной архитектурой и встроенной поддержкой множества протоколов.

Архитектура и принцип работы

Zabbix agent устанавливается непосредственно на отслеживаемый сервер, виртуальную машину или сетевое устройство. Он работает в фоновом режиме, ожидая запросов от сервера Zabbix (в пассивном режиме) либо самостоятельно инициируя соединение с сервером (в активном режиме). Взаимодействие происходит по протоколу Zabbix, использующему TCP-порт 10050 для пассивных проверок и 10051 для активных.

Пассивный режим

В пассивном режиме сервер Zabbix отправляет агенту запрос на получение значения конкретного параметра. Агент выполняет проверку, формирует ответ и передаёт его серверу. Этот режим используется по умолчанию и подходит для большинства сценариев, однако при большом количестве элементов данных создаёт значительную нагрузку на сервер.

Активный режим

В активном режиме агент самостоятельно устанавливает соединение с сервером, запрашивает список элементов данных, настроенных для него, и периодически отправляет собранные значения. Такой подход снижает нагрузку на сервер и позволяет мониторить хосты, находящиеся за NAT или межсетевыми экранами. Активный режим рекомендуется для масштабных инсталляций с тысячами элементов данных.

Типы собираемых данных

Zabbix agent поддерживает несколько типов проверок, определяющих характер собираемой информации:

  • Нативные проверки — встроенные метрики, собираемые самим агентом без дополнительных скриптов. К ним относятся загрузка процессора (system.cpu.load), использование памяти (vm.memory.size), состояние дисков (vfs.fs.size), сетевой трафик (net.if.in/net.if.out), количество процессов (proc.num) и другие.
  • Пользовательские параметры (UserParameters) — проверки, определяемые администратором в конфигурационном файле агента. Позволяют собирать произвольные данные путём выполнения указанных команд или скриптов.
  • Проверки лог-файлов — отслеживание появления новых записей в файлах журналов с возможностью фильтрации по регулярным выражениям.
  • Системные службыконтроль состояния служб и процессов операционной системы.
  • Сетевые проверкиизмерение задержек, доступности портов и TCP-соединений.

Конфигурация и установка

Конфигурация агента осуществляется через файл zabbix_agentd.conf (или zabbix_agent2.conf для agent 2), в котором указываются адрес сервера, порт, список разрешённых хостов, параметры логирования и определяются пользовательские параметры. Для обеспечения безопасности соединение между агентом и сервером может быть зашифровано с использованием предварительно распределённых ключей (PSK) или сертификатов TLS.

Установка агента выполняется из официальных репозиториев Zabbix для большинства дистрибутивов Linux, FreeBSD, macOS, а также для Windows. Для Windows предусмотрен установщик MSI, позволяющий развернуть агент как службу Windows. После установки агент автоматически регистрируется на сервере, если включена функция автоматической регистрации.

Zabbix agent 2

Zabbix agent 2, представленный в версии 6.4, представляет собой эволюционное развитие классического агента. Его ключевые особенности:

  • модульная архитектура, позволяющая подключать дополнительные плагины для мониторинга конкретных приложений (MySQL, PostgreSQL, Redis, Nginx и других);
  • встроенная поддержка протоколов Prometheus, MQTT и Modbus;
  • улучшенная производительность при обработке большого количества метрик;
  • единый исполняемый файл для всех поддерживаемых платформ;
  • обратная совместимость с параметрами классического агента.

Применение

Zabbix agent используется в корпоративных средах для мониторинга серверной инфраструктуры, облачных платформ, виртуальных сред и контейнерных кластеров. Он входит в стандартный набор инструментов DevOps-инженеров и системных администраторов, позволяя централизованно отслеживать состояние сотен и тысяч узлов. Агент также применяется для мониторинга бизнес-приложений через пользовательские параметры и интеграции со сторонними системами сбора метрик.

Альтернативы и сравнение

В качестве альтернатив Zabbix agent на рынке систем мониторинга выступают агенты Prometheus Node Exporter, Telegraf (часть стека TICK), Collectd и агенты коммерческих решений (SolarWinds, PRTG). По сравнению с Node Exporter, Zabbix agent предоставляет более широкий набор встроенных проверок и поддерживает активный режим, что упрощает мониторинг за межсетевыми экранами. Telegraf отличается более гибкой конфигурацией и поддержкой множества выходных форматов, тогда как Zabbix agent теснее интегрирован с собственным сервером Zabbix и его системой триггеров и уведомлений.

Ограничения

Zabbix agent не предназначен для мониторинга сетевого оборудования (коммутаторов, маршрутизаторов) — для этих целей используются протоколы SNMP и ICMP. Также агент не способен выполнять распределённые проверки, требующие координации между несколькими хостами. Для мониторинга веб-приложений и HTTP-сервисов используются веб-сценарии, выполняемые сервером, а не агентом.

Источники

  • Официальная документация Zabbix (Zabbix Documentation 7.0)
  • Руководство администратора Zabbix, раздел «Zabbix agent»
  • Книга «Zabbix: Enterprise Monitoring» (Packt Publishing)
  • Репозиторий исходного кода Zabbix на GitHub
Загружаем BFOmetr…