Zabbix Agent устанавливается на наблюдаемый узел и получает локальные сведения об ОС, ресурсах, процессах, службах и приложениях. Но сам факт установки пакета не создает полезный мониторинг. Нужно выбрать модель связи, правильно сопоставить Hostname, ограничить доверенные стороны, защитить канал, подключить подходящий шаблон и проверить, что события приводят к действиям.

Эта статья посвящена подключению узлов к уже существующему Zabbix. Установка Zabbix Server, базы данных, web-интерфейса и проектирование высокой доступности являются отдельными задачами.

Компоненты и их роли

КомпонентЧто делаетЧто важно контролировать
Zabbix ServerХранит конфигурацию, обрабатывает данные и события, выполняет центральную логикуБаза данных, очередь, процессы, история, backup и доступность frontend
Zabbix ProxyСобирает данные на удаленной площадке или от группы узлов и передает серверуБуфер, синхронизация времени, связь с server, нагрузка и собственное состояние
Zabbix AgentСобирает метрики ОС и выполняет разрешенные проверкиВерсия, конфигурация, права процесса, Hostname, журнал и канал
Zabbix Agent 2Альтернативная реализация агента с расширяемой plugin-модельюСовместимость шаблонов и плагинов, package/service name и обновления
TemplateОбъединяет items, triggers, discovery, graphs и правила под класс узловВерсия шаблона, макросы, пороги, шум и локальные исключения
HostПредставляет конкретный наблюдаемый объект в конфигурацииУникальная идентичность, интерфейс, группы, tags, proxy и владелец

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

РежимКто инициирует обменКогда удобенЧто открыть в сети
ПассивныйZabbix Server или Proxy запрашивает значение у AgentЦентральная сеть, прямой контролируемый маршрут, тест доступности агента из нужной точкиДоступ от конкретного server/proxy к порту агента
АктивныйAgent получает список items и сам отправляет новые значения Server или ProxyФилиал, NAT, firewall, нестабильный канал, узел без входящего административного доступаИсходящее соединение агента к указанному server/proxy

Один агент может использовать оба режима для разных items. Выбор задается не только параметрами файла конфигурации, но и типом item в Zabbix. Если шаблон содержит пассивные items, одного ServerActive недостаточно.

Для узла за firewall активные проверки часто проще: входящее соединение к агенту не требуется. Однако нужно контролировать, куда агент отправляет данные, как подтверждается его идентичность и сколько значений удерживается при временной недоступности приемника.

Параметры, которые чаще всего путают

ПараметрНазначениеТиповая ошибка
ServerКаким server/proxy разрешены пассивные запросы к агентуУказать широкую сеть вместо минимального списка доверенных адресов
ServerActiveОткуда получать список активных items и куда отправлять их значенияУказать server, хотя host назначен на proxy, или наоборот
HostnameИдентичность для активных проверок, которая должна совпасть с Host name в frontendИспользовать отображаемое Visible name или имя с другим регистром/суффиксом
HostnameItemПозволяет агенту вычислить Hostname, если он не задан явноПолучить одинаковые или меняющиеся значения после клонирования образа
ListenIPИнтерфейсы для пассивного прослушиванияСлушать на всех адресах без сетевого ограничения
TimeoutОграничивает ожидание отдельных проверокУвеличивать глобально вместо исправления медленного item

Для активного агента Hostname является частью протокола сопоставления. Если в frontend создан host srv-1, а агент отправляет SRV-1.example.local, сервер не начнет принимать значения только потому, что IP совпадает.

Когда нужен Zabbix Proxy

  • в филиале несколько узлов и не хочется открывать каждый из них центральному серверу;
  • канал периодически пропадает, но данные нужно буферизовать локально;
  • проверки должны выполняться изнутри площадки;
  • центральный server находится далеко и прямой опрос создает лишнюю задержку;
  • нужно разделить нагрузку сбора между площадками;
  • сетевая политика разрешает один контролируемый канал между proxy и server.

Proxy не является невидимым транспортом. Его база, очередь, процессы, диск, время и связь с server должны мониториться. Отказ proxy способен скрыть целую площадку, поэтому центральная система должна отличать проблему proxy от одновременной аварии всех узлов за ним.

Защита канала

Zabbix поддерживает TLS с сертификатами или pre-shared key. PSK проще для небольшого числа управляемых узлов, но требует уникальной идентичности, случайного ключа, защищенного хранения и процедуры ротации. Один PSK на всех клиентах превращает компрометацию одного узла в общий риск.

  • не передавайте PSK в заявках, чатах и открытых конфигурационных репозиториях;
  • ограничивайте права на файл ключа учетной записью агента;
  • не используйте один и тот же PSK для независимых клиентов;
  • проверяйте обе стороны: что агент принимает нужный тип соединения, а host в frontend настроен соответственно;
  • при выводе узла из эксплуатации отзывайте его идентичность и ключ;
  • если применяется PKI, контролируйте срок сертификата, цепочку доверия и процедуру перевыпуска.

Шифрование канала не заменяет firewall и минимальные права агента. Не нужно публиковать агент в интернет только потому, что включен TLS.

Права процесса и пользовательские параметры

Агент должен работать с минимальными правами, достаточными для выбранных items. UserParameter, system.run и удаленные команды расширяют возможности, но одновременно увеличивают риск. Их нельзя включать глобально ради одной проверки.

РасширениеБезопасный подход
UserParameterФиксированная команда, строгая обработка аргументов, отдельный тест и понятный timeout
system.runПо умолчанию не разрешать; для исключения использовать allowlist конкретного ключа
Проверка файла или журналаДать чтение только нужного пути, не запускать агент root/Administrator без необходимости
Скрипт приложенияОтдельная учетная запись или API с правами только на диагностическую операцию
Секрет в macroИспользовать подходящий защищенный тип и ограничить круг пользователей frontend

Проверка мониторинга должна быть безопаснее наблюдаемого сервиса. Скрипт, который ради метрики меняет данные или создает административную сессию, требует отдельного пересмотра.

Шаблон нужно адаптировать, а не просто привязать

  1. Сверить версию Zabbix и совместимость шаблона.
  2. Проверить discovery rules: какие файловые системы, интерфейсы и службы будут обнаружены.
  3. Установить macro для емкости, задержек и исключений по фактической роли узла.
  4. Отключить items, которые не имеют владельца или действия.
  5. Добавить проверки бизнес-сервиса поверх метрик ОС.
  6. Настроить зависимости, чтобы отказ proxy или гипервизора не создавал лавину событий.
  7. Проверить maintenance для плановых работ.
  8. Зафиксировать локальные изменения шаблона и способ обновления.

Зеленый host может быть бесполезным, если контролируются только CPU и память. Для файлового сервера важны доступность SMB, место, задержки диска, backup и критичные события. Для базы - соединение, состояние службы, очередь, блокировки и пользовательский тест.

Установка пакета: почему нет одной вечной команды

Название пакета, Agent или Agent 2, официальный репозиторий, service name и пути зависят от версии Zabbix и дистрибутива. Перед установкой нужно открыть актуальную инструкцию Zabbix, выбрать поддерживаемую ветку и конкретную ОС. Пакет из базового репозитория дистрибутива может отличаться от версии сервера и нужного шаблона.

Команды ниже оставлены как безопасный каркас для тестового стенда Ubuntu/Debian-like: обновление индекса, установка агента, резервная копия конфигурации, ручное редактирование и запуск службы. Они не открывают firewall и не задают вымышленные ключи. Для production используйте точные команды из официальной документации выбранной версии.

Как проверить подключение

  1. Сверить Hostname в конфигурации агента и Host name в frontend.
  2. Проверить время на agent, proxy и server.
  3. Посмотреть журнал агента сразу после запуска.
  4. Для пассивной модели проверить маршрут и соединение только от назначенного server/proxy.
  5. Для активной модели убедиться, что агент получил список active checks и отправляет значения нужному приемнику.
  6. Открыть Latest data и проверить свежесть нескольких разных items.
  7. Создать безопасное тестовое условие, например низкий тестовый порог, и проверить событие, уведомление и recovery.
  8. Перезапустить агент и убедиться, что конфигурация поднимается автоматически.
  9. Кратковременно разорвать допустимый тестовый канал и проверить буферизацию/событие по архитектуре.
  10. Задокументировать версию, template, proxy, тип соединения и владельца реакции.

Типовые ошибки

  • открыть порт агента для любой сети;
  • указать только ServerActive при шаблоне с пассивными items;
  • перепутать Host name и Visible name;
  • назначить host центральному server, а агент отправлять на proxy;
  • включить незашифрованный канал через недоверенную сеть;
  • использовать общий PSK для всех клиентов;
  • запустить агент с root/Administrator ради одного нестандартного item;
  • подключить большой шаблон и не разобрать лавину unsupported items;
  • не мониторить proxy и сам Zabbix Server;
  • считать появление зеленого индикатора завершенной приемкой.

Официальная документация Zabbix

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

Итог: подключение агента считается завершенным, когда выбран активный или пассивный путь, идентичность совпадает, канал ограничен и защищен, шаблон соответствует роли, тестовое событие прошло полный цикл, а состояние агента и proxy тоже наблюдается.

Безопасный каркас установки Zabbix Agent для тестового стенда

Совместимость: Linux: Ubuntu/Debian-like серверы; пример для тестового агента, не полная установка Zabbix Server; требуется sudo.

Старые команды установки Zabbix Server из исходной статьи нельзя считать универсальной production-инструкцией. Ниже оставлен только безопасный каркас для агента; репозитории, версии сервера и базу данных нужно сверять с актуальной документацией Zabbix под вашу ОС.

# Примерный каркас для тестового стенда Ubuntu/Debian.
# Для production всегда сверяйте репозиторий и версии с официальной документацией Zabbix.

sudo apt update
sudo apt install -y zabbix-agent

sudo cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.backup
sudoedit /etc/zabbix/zabbix_agentd.conf

# Минимальные параметры, которые нужно указать в конфиге:
# Server=<ip_zabbix_server>
# ServerActive=<ip_zabbix_server>
# Hostname=<unique_host_name>

sudo systemctl enable --now zabbix-agent
sudo systemctl status zabbix-agent --no-pager

Важно: перед запуском проверьте код под свою задачу, сохраните важные данные и не используйте административные скрипты из интернета без понимания каждого действия.