Self-hosted Apps

Zabbix

Open-source система мониторинга серверов, сети и приложений: собирает метрики, рисует графики и шлёт алерты, когда что-то ломается.

Что такое Zabbix

Zabbix — система мониторинга ИТ-инфраструктуры с открытым кодом. Собирает метрики с серверов, сетевого оборудования, баз данных и приложений, хранит историю, рисует графики и дашборды, а главное — сам замечает проблему и присылает алерт до того, как о ней сообщат пользователи.

Разрабатывается латвийской компанией Zabbix SIA. Код открыт под GPL, все функции доступны бесплатно — компания зарабатывает на поддержке, внедрении и обучении. Платных редакций с урезанным функционалом нет, и это одна из причин его популярности в России и СНГ.

Из чего состоит

Компонент Роль
Zabbix Server ядро: опрашивает, вычисляет триггеры, шлёт уведомления
База данных вся история метрик: MySQL/MariaDB, PostgreSQL
Frontend веб-интерфейс на PHP под Nginx или Apache
Zabbix Agent ставится на наблюдаемый хост, отдаёт метрики ОС
Zabbix Proxy собирает данные в удалённой площадке и отдаёт серверу пачкой

Zabbix Proxy — недооценённая вещь. Он нужен, когда наблюдаемые хосты за NAT или в другом ЦОДе: прокси буферизует метрики у себя и переживает обрыв канала, не теряя данные.

Как он собирает метрики

  • Zabbix Agent, пассивные проверки — сервер сам ходит на агент, порт 10050/TCP.
  • Zabbix Agent, активные проверки — агент сам стучится на сервер, порт 10051/TCP. Это спасает, когда до хоста не достучаться напрямую.
  • SNMP — для железа без агента: коммутаторы, роутеры, ИБП, принтеры.
  • IPMI — температура, вентиляторы, состояние блоков питания прямо с сервера.
  • HTTP agent — дёрнуть REST API и распарсить JSON.
  • Внешние скрипты и ODBC — когда всё вышеперечисленное не подошло.

Ключевые сущности: item (что измеряем), trigger (выражение, при котором это считается проблемой), template (набор items и triggers, который навешивается на хост целиком). Templates — то, ради чего Zabbix и терпят: подключили сотый сервер, накинули шаблон Linux by Zabbix agent, и мониторинг готов без единого клика по отдельным метрикам.

Отдельно стоит low-level discovery: Zabbix сам находит диски, интерфейсы и файловые системы на хосте и заводит метрики под каждый. Не нужно вручную описывать, что на этом сервере пять дисков.

Zabbix vs Prometheus

Оба про мониторинг, но идеология разная — и выбирают их под разные задачи.

Zabbix Prometheus
Модель данных хосты и метрики метрики с метками (labels)
Хранилище реляционная СУБДсвоя TSDB
Настройка через веб-интерфейс конфиги в Git
Единица наблюдения сервер, устройство сервис, job
Сеть и железо родная задача: SNMP, IPMI через exporters, менее удобно
Динамические среды тяжеловесно родная задача
Уведомления встроены отдельный Alertmanager

Грубое правило: если у вас парк физических серверов, коммутаторов и ИБП — Zabbix. Если Kubernetes и эфемерные поды — Prometheus. Если и то и другое — обычно живут оба, и это нормально.

Что нужно от сервера

Нагрузку в Zabbix меряют в NVPS — new values per second, число новых значений в секунду. Упирается всё почти всегда в базу данных, а не в сам сервер Zabbix: история метрик пишется непрерывно.

Практические ориентиры:

  • десятки хостов — хватит VPS на 2 vCPU / 4 ГБ RAM со всеми компонентами вместе;
  • дальше базу выносят на отдельную машину и обязательно на NVMe — на HDD Zabbix задыхается на записи первым делом;
  • на PostgreSQL подключают TimescaleDB: он сжимает исторические данные и сильно снижает аппетит к диску;
  • настройте housekeeping и периоды хранения history/trends сразу — иначе база растёт бесконечно.

Установку удобно раскатывать Ansible или Docker Compose — официальные образы есть для каждого компонента.

Уведомления

Из коробки Zabbix умеет слать почту, а через media types — в Telegram, Slack, Mattermost, на webhook в свою систему. Важнее механики — эскалации: если алерт не подтвердили за N минут, отправить его следующему по списку. Это то, из чего строится дежурство и на чём держится SLA.

Графики Zabbix рисует сам, но многие выводят его данные в Grafana — там дашборды удобнее.

Связанные термины

  • Prometheus — главная альтернатива с другой идеологией
  • SNMP — протокол для мониторинга сетевого железа
  • IPMI / DCIM — контроль состояния физических серверов
  • Уведомления и алерты — то, ради чего ставят мониторинг
  • Wazuh — сосед по стеку: следит не за доступностью, а за безопасностью
  • PostgreSQL — где хранится история метрик

Готовы запустить GPU-задачу?

Запустить GPU-сервер