Zabbix — открытая система мониторинга инфраструктуры: серверов, сетевых устройств, приложений и баз данных. VPS под Zabbix — выделенный виртуальный сервер, на котором развёртывается Zabbix Server, веб-фронтенд и СУБД для хранения метрик. Централизованный мониторинг позволяет обнаруживать проблемы раньше, чем их замечают пользователи.
Архитектура Zabbix
Zabbix состоит из нескольких компонентов:
- Zabbix Server — ядро системы. Собирает данные от агентов, обрабатывает триггеры (пороговые условия), генерирует оповещения.
- Zabbix Agent — устанавливается на каждый мониторируемый хост. Активный режим: агент сам отправляет данные серверу по расписанию. Пассивный режим: сервер опрашивает агента.
- Zabbix Web Frontend — веб-интерфейс на PHP/Apache или Nginx. Дашборды, графики, карты сетей, настройка триггеров и уведомлений.
- База данных — хранилище всех метрик: MySQL, PostgreSQL или TimescaleDB (расширение PostgreSQL для временных рядов).
- Zabbix Proxy — промежуточный компонент для мониторинга удалённых сетей без прямого доступа от сервера.
Zabbix поддерживает несколько протоколов сбора данных: Zabbix Agent (порты 10050/10051), SNMP v1/v2c/v3 для сетевого оборудования, IPMI для физических серверов, JMX для Java-приложений, HTTP-запросы для веб-сервисов, SSH/Telnet для устройств без агента.
Настройка триггеров и оповещений
Триггеры настраиваются с помощью функций Zabbix Expression. Пример триггера на высокую загрузку CPU:
avg(/hostname/system.cpu.util,5m) > 80
При срабатывании — оповещение через email, Telegram-бот, Slack, PagerDuty или webhook. Зависимости триггеров позволяют подавить оповещения: если сервер недоступен — не генерировать отдельные алерты о каждом сервисе на нём.
История
Alexei Vladishev начал разработку Zabbix в 1998 году как внутренний проект в латвийском банке. В 2001 году код опубликован под GPL. Zabbix 1.0 вышел в 2004 году. Версия 2.0 (2012) — Low-Level Discovery для автоматического обнаружения хостов. Zabbix 4.0 (2018) — поддержка TimescaleDB. Zabbix 6.0 LTS (2022) — улучшенные дашборды. Zabbix 7.0 LTS (2024) — актуальная LTS-ветка с новой архитектурой шаблонов и улучшенным High Availability режимом.
Минимальные требования к VPS для Zabbix
| Масштаб | Хостов | CPU | ОЗУ | Диск |
|---|---|---|---|---|
| Малый | до 100 | 2 ядра | 4 ГБ | 20 ГБ SSD |
| Средний | 100–500 | 4 ядра | 8 ГБ | 100 ГБ SSD |
| Крупный | 500–2000 | 8 ядер | 16 ГБ | 500 ГБ NVMe |
| Enterprise | 2000+ | 16+ ядер | 32+ ГБ | 2 ТБ+ NVMe |
На что обращать внимание
База данных — узкое место Zabbix. При мониторинге 500 хостов с интервалом 60 секунд генерируется 500–2000 записей в секунду. PostgreSQL + TimescaleDB показывает лучшую производительность при высоких нагрузках: TimescaleDB автоматически партиционирует таблицу истории по времени и сжимает старые данные. Для хранения истории метрик за 365 дней при 1000 хостах требуется 200–500 ГБ. NVMe SSD обязателен — Zabbix генерирует интенсивную запись. При размещении на VDS выбирайте хостера с гарантированными IOPS, а не shared-дисковую подсистему. Для высокой доступности Zabbix 6.0+ поддерживает native HA с несколькими Zabbix Server на один набор данных.
Интеграция Zabbix с системами оповещения
Zabbix поддерживает несколько каналов оповещения из коробки:
- Email — через встроенный SMTP или внешний Postfix.
- Telegram-бот — через webhook или Zabbix Media Type для Telegram. Самый популярный канал для DevOps-команд.
- Slack / Teams — через webhooks. Конфигурация в Zabbix 6.0+ доступна как готовый Media Type шаблон.
- PagerDuty — интеграция для on-call оповещений с эскалацией.
- Webhook — произвольный HTTP-запрос при срабатывании триггера. Позволяет интегрировать с любой системой.
Пример Telegram-оповещения при высоком load average на сервере: триггер срабатывает при avg(/server/system.cpu.load,5m) > 4 на 4-ядерном сервере, отправляет сообщение в Telegram-группу DevOps с указанием хоста, метрики и ссылкой на график в Zabbix.