Zabbix: мониторинг IT-инфраструктуры с нуля до production
Zabbix — это мощная платформа мониторинга с открытым исходным кодом, которая позволяет отслеживать состояние серверов, сетевого оборудования, приложений и облачных сервисов. В отличие от простых инструментов вроде htop или iotop, Zabbix собирает метрики в реальном времени, хранит историю, строит графики, отправляет уведомления и автоматически реагирует на проблемы. Это система мониторинга промышленного уровня — и она полностью бесплатна.
Зачем нужен Zabbix и какие задачи он решает?
Zabbix закрывает весь спектр задач мониторинга:
- Серверы: CPU, RAM, диски, сеть, процессы, температура
- Сетевое оборудование: SNMP-мониторинг коммутаторов, маршрутизаторов, точек доступа
- Приложения: веб-сайты, базы данных, очереди сообщений, Docker
- Облако: AWS, Azure, VMware, Proxmox
- Безопасность: мониторинг изменений файлов, открытых портов, SSL-сертификатов
Ключевая ценность Zabbix — проактивный мониторинг. Вы узнаёте о проблеме до того, как о ней сообщат пользователи. Диск заполнен на 85%? Zabbix предупредит. Сертификат истекает через 14 дней? Получите алерт. Сервер не отвечает 3 минуты? Автоматический перезапуск сервиса.
Какую архитектуру выбрать для развёртывания Zabbix?
Компоненты Zabbix:
- Zabbix Server — центральный процесс, обрабатывает данные, вычисляет триггеры
- Database — хранилище метрик и конфигурации (PostgreSQL, MySQL, Oracle)
- Web Frontend — веб-интерфейс на PHP (Apache/Nginx)
- Zabbix Agent — устанавливается на каждый контролируемый хост
- Zabbix Proxy — для мониторинга удалённых площадок через NAT
Как установить Zabbix Server на Debian/Ubuntu?
Установка Zabbix 7.0 LTS на Debian 12 с PostgreSQL:
# Добавляем репозиторий Zabbix
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb
dpkg -i zabbix-release_latest+debian12_all.deb
apt update
# Устанавливаем компоненты
apt install -y zabbix-server-pgsql zabbix-frontend-php php8.2-pgsql \
zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2
# Устанавливаем PostgreSQL
apt install -y postgresql postgresql-contrib
# Создаём базу данных
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
# Импортируем схему
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | \
sudo -u zabbix psql zabbix
Настраиваем подключение к БД в /etc/zabbix/zabbix_server.conf:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=YOUR_SECURE_PASSWORD
# Производительность
StartPollers=10
StartPingers=5
CacheSize=256M
HistoryCacheSize=64M
ValueCacheSize=128M
# Запускаем службы
systemctl enable --now zabbix-server zabbix-agent2 nginx php8.2-fpm
systemctl restart zabbix-server
Веб-интерфейс доступен по адресу http://IP/. Логин по умолчанию: Admin / zabbix.
Как установить и настроить Zabbix Agent на хостах?
Zabbix Agent 2 (рекомендуемая версия) устанавливается на каждый контролируемый хост:
# Debian/Ubuntu
apt install -y zabbix-agent2
# CentOS/RHEL
dnf install -y zabbix-agent2
# Windows
# Скачайте MSI с https://www.zabbix.com/download_agents
Конфигурация /etc/zabbix/zabbix_agent2.conf:
Server=192.168.1.10 # IP Zabbix Server
ServerActive=192.168.1.10 # Для активных проверок
Hostname=web-server-01 # Имя хоста (должно совпадать в Zabbix)
ListenPort=10050
# Расширенный мониторинг
Plugins.SystemRun.LogRemoteCommands=1
AllowKey=system.run[*]
Как настроить шаблоны мониторинга для типовых задач?
Zabbix поставляется с сотнями готовых шаблонов. Основные:
- Linux by Zabbix agent — CPU, память, диски, сеть, процессы
- Windows by Zabbix agent — аналогично для Windows + Event Log
- PostgreSQL by Zabbix agent 2 — мониторинг БД
- Docker by Zabbix agent 2 — контейнеры и образы
- SNMP Generic — сетевое оборудование
- Website certificate by Zabbix agent 2 — SSL-сертификаты
Привязка шаблона к хосту: Configuration → Hosts → выбрать хост → Templates → Link new templates.
Как настроить триггеры и уведомления о проблемах?
Триггеры — это условия, при выполнении которых Zabbix создаёт алерт. Примеры:
# Диск заполнен более чем на 90%
{host:vfs.fs.size[/,pused].last()}>90
# CPU загружен более 95% в течение 5 минут
{host:system.cpu.util.avg(5m)}>95
# Сервис не работает
{host:net.tcp.service[http,,80].last()}=0
# SSL-сертификат истекает менее чем через 14 дней
{host:web.certificate.info[example.ru,443].json_parse("$.not_after_timestamp")}-{host:time.now.last()}<1209600
Уведомления настраиваются через Media Types:
- Email — классический способ, SMTP-настройки
- Telegram — через Bot API, мгновенные алерты
- Slack/Teams — webhook-интеграция
- SMS — через внешние шлюзы
- Custom scripts — любая автоматизация
Как мониторить сетевое оборудование через SNMP?
Для коммутаторов, маршрутизаторов и другого сетевого оборудования используется SNMP:
# Добавляем хост с SNMP-интерфейсом в Zabbix:
# Configuration → Hosts → Create host
# Interfaces: SNMP, IP: 192.168.1.1, Port: 161
# SNMP community: public (или ваш community string)
# Привязываем шаблон:
# Templates → Cisco IOS SNMP / Generic SNMP / etc.
Zabbix автоматически обнаружит сетевые интерфейсы (LLD — Low Level Discovery) и начнёт собирать данные о трафике, ошибках, статусе портов.
Как настроить мониторинг удалённых площадок через Zabbix Proxy?
Если серверы находятся за NAT или в удалённом офисе, используйте Zabbix Proxy:
# На удалённой площадке
apt install -y zabbix-proxy-pgsql
# /etc/zabbix/zabbix_proxy.conf
Server=ZABBIX_SERVER_IP
Hostname=proxy-office-2
DBName=zabbix_proxy
ProxyMode=0 # Active mode
Proxy собирает данные локально и пересылает на центральный сервер. Это снижает нагрузку на WAN-канал и обеспечивает работу даже при временной потере связи.
Как построить дашборды и отчёты в Zabbix?
Дашборды — это визуальное представление состояния инфраструктуры:
- Monitoring → Dashboard → Create dashboard
- Добавьте виджеты: Graph, Problem hosts, System information, Map
- Настройте период отображения и автообновление
Для отчётов используйте:
- Scheduled reports — автоматическая отправка PDF по расписанию
- Grafana + Zabbix plugin — для продвинутой визуализации
- Zabbix API — для интеграции с внешними системами
Как масштабировать Zabbix для крупной инфраструктуры?
Рекомендации по оптимизации:
- TimescaleDB: включите для ускорения работы с историческими данными
- Partitioning: настройте партиционирование таблиц history и trends
- Housekeeper: уменьшите период хранения данных (30 дней history, 365 дней trends)
- Active agents: переведите агенты в активный режим для снижения нагрузки на сервер
- Прокси: используйте прокси для разгрузки центрального сервера
# Включение TimescaleDB
# В postgresql.conf:
shared_preload_libraries = 'timescaledb'
# В Zabbix:
# Administration → General → Housekeeping
# Enable TimescaleDB compression
Какие типичные проблемы возникают при работе с Zabbix?
Частые вопросы из сообщества:
- Конфликт портов Apache и Nginx: Zabbix по умолчанию ставит Apache. Если нужен Nginx — установите
zabbix-nginx-confи удалите Apache. - Миграция с CentOS на Debian: экспортируйте конфигурацию через API или XML-экспорт, перенесите базу через pg_dump/pg_restore.
- Мониторинг камер за NAT: используйте Zabbix Proxy на удалённой площадке или активный режим агента.
- Мониторинг дисков Windows: шаблон «Windows by Zabbix agent» автоматически обнаруживает диски через LLD.
Заключение: Zabbix как единая система мониторинга
Zabbix — это инвестиция в видимость вашей инфраструктуры. Один раз настроив мониторинг, вы навсегда избавитесь от ситуаций «а мы не знали, что сервер упал». Начните с мониторинга 5-10 ключевых хостов, настройте уведомления в Telegram, постройте первый дашборд — и расширяйте охват по мере роста инфраструктуры. А если нужна помощь с внедрением — команда АйТи Фреш имеет опыт развёртывания Zabbix для десятков клиентов.
Документация: Zabbix 7.0 Documentation
Часто задаваемые вопросы
Какую базу данных лучше использовать для Zabbix — MySQL или PostgreSQL?
Рекомендуется PostgreSQL + TimescaleDB. Это оптимальное решение по производительности, особенно для крупных инсталляций. TimescaleDB ускоряет запросы к историческим данным и позволяет эффективно сжимать старые метрики.
Совместимы ли агенты Zabbix разных версий с сервером?
Да, агенты Zabbix обратно совместимы. Agent 5.0 или 6.0 будет работать с Server 7.0. Однако для использования новых функций (например, плагины Agent 2) рекомендуется обновлять агенты до версии сервера.
Как мониторить устройства за NAT без белого IP?
Используйте Zabbix Proxy в активном режиме на удалённой площадке. Proxy собирает данные от агентов локально и пересылает на центральный сервер. Альтернатива — переведите агенты в активный режим (ServerActive), тогда агент сам инициирует соединение с сервером.
Сколько ресурсов нужно серверу Zabbix для мониторинга 100 хостов?
Для 100 хостов со стандартными шаблонами: 4 ядра CPU, 8 ГБ RAM, 100 ГБ SSD для БД. При 1000+ NVPS (new values per second) увеличьте CacheSize до 512M и HistoryCacheSize до 128M в конфигурации сервера.
Как отправлять уведомления из Zabbix в Telegram?
Administration → Media Types → Telegram. Создайте бота через @BotFather, получите токен. Укажите токен в настройках Media Type. Затем в профиле пользователя добавьте Telegram media с chat_id. Настройте Action для отправки при срабатывании триггера.
Можно ли использовать Zabbix вместе с Grafana?
Да. Установите плагин Zabbix для Grafana (alexanderzobnin-zabbix-app). Grafana подключается к Zabbix через API и позволяет строить продвинутые дашборды с данными из Zabbix. Это популярная связка для красивой визуализации.
ООО «АйТи Фреш» возьмёт это на себя
Не хватает времени или своих специалистов — мы настроим, оптимизируем и возьмём вашу IT-инфраструктуру на постоянное сопровождение. Работаем с юридическими лицами в Москве и регионах. Собственный дата-центр, команда из 8 серверов Dell Xeon Platinum 8280 на базе МТС.