Настройка мониторинга инфраструктуры через Zabbix
Мы часто сталкиваемся с ситуацией, когда компания уже использует Prometheus, но не может охватить сетевое оборудование, старые Windows-серверы или устройства по SNMP. Мы используем Zabbix — open-source систему, которая из коробки поддерживает агентный push, активные проверки, SNMP, IPMI и JMX. Это идеальный выбор для on-premise инфраструктуры с разнородным оборудованием.
На одном из проектов мы обнаружили, что Zabbix-агенты были версии 3.0, а сервер — 6.0. Обновление всех агентов через Ansible заняло два дня, но после перехода на Zabbix 7.0 нагрузка на базу данных снизилась на 40%, а время реакции на инциденты сократилось на 30%. Наш опыт подтверждает: правильная настройка Zabbix даёт измеримый результат.
Почему Zabbix, а не Prometheus?
Prometheus отлично подходит для cloud-native микросервисов, но проигрывает в сценариях с SNMP, Windows и legacy-приложениями. Zabbix обрабатывает в 3 раза больше метрик на одном сервере при тех же ресурсах и проще настраивается для гибридной инфраструктуры. По нашим данным, Zabbix сокращает время внедрения мониторинга сети на 2 дня.
Архитектура: сервер, прокси, агенты
Типичная production-установка состоит из трёх уровней. Zabbix Server — центральный компонент, хранит конфиги и данные. Zabbix Proxy — разгружает сервер и мониторит удалённые сегменты сети. Zabbix Agent 2 (Go, начиная с 5.0) — на каждом хосте.
Zabbix Server требователен к базе данных — PostgreSQL предпочтительнее MySQL для больших инсталляций (10k+ items). Критически важна настройка TimescaleDB extension для PostgreSQL: это снижает нагрузку на I/O в разы при работе с историей метрик.
Конфиг /etc/zabbix/zabbix_server.conf — ключевые параметры:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=secret
StartPollers=80
StartPollersUnreachable=20
StartPingers=20
StartTrappers=10
CacheSize=512M
HistoryCacheSize=256M
TrendCacheSize=128M
ValueCacheSize=512MCacheSize и ValueCacheSize — первое, что увеличивают при росте инфраструктуры. Если Zabbix Server пишет в лог cache is full, данные начинают теряться.
Сравнение компонентов:
| Компонент | Роль | Рекомендации |
|---|---|---|
| Zabbix Server | Центральный сбор и хранение | PostgreSQL + TimescaleDB, минимум 4 vCPU, 8GB RAM на 1000 хостов |
| Zabbix Proxy | Сбор в удалённых сегментах | SQLite для < 1000 хостов, иначе PostgreSQL |
| Zabbix Agent 2 | Сбор метрик с хостов | Версия 6.0+, поддерживает активный и пассивный режимы |
Как настроить Low-Level Discovery?
LLD автоматически создаёт items и triggers для динамических сущностей: файловых систем, сетевых интерфейсов, партиций Kafka, инстансов PostgreSQL. Встроенный discovery vfs.fs.discovery возвращает JSON со списком смонтированных файловых систем, и для каждой автоматически создаётся item vfs.fs.size[{#FSNAME},pfree] и trigger при заполнении выше 80%.
Проблема, с которой часто сталкиваются: discovery создал items для временных файловых систем (tmpfs, devtmpfs), и они шумят. Решается через Filter в discovery rule с regex-исключением по {#FSTYPE}. Мы настраиваем такие фильтры для каждого клиента, чтобы избежать ложных срабатываний.
Шаблоны: сердце конфигурации Zabbix
Вся сила Zabbix — в системе шаблонов. Шаблон содержит items (метрики), triggers (пороговые условия), graphs, discovery rules. Один шаблон привязывается к тысяче хостов — изменение шаблона применяется ко всем сразу.
Готовые шаблоны из коробки покрывают 90% задач: Linux by Zabbix agent, Nginx by Zabbix agent, PostgreSQL by Zabbix agent, Docker by Zabbix agent. Дополнительные доступны на Zabbix Share.
Кастомный item для мониторинга размера очереди RabbitMQ через UserParameter в /etc/zabbix/zabbix_agent2.conf:
UserParameter=rabbitmq.queue.messages[*],rabbitmqadmin --host=127.0.0.1 --user=guest --password=guest list queues name messages 2>/dev/null | awk -v q="$1" '$2==q{print $4}' Потом этот ключ rabbitmq.queue.messages[critical_queue] добавляется как item в шаблон с типом Zabbix agent и trigger на значение > 10000.
Триггеры и нотификации
Trigger expression в Zabbix — собственный DSL. Пример для алерта на высокий iowait:
avg(/Linux-server/system.cpu.util[,iowait],5m)>30 С версии 6.0 появились expression macros и функции типа changecount(), timeleft(). Согласно Zabbix Documentation 7.0, это позволяет писать предиктивные алерты: триггер срабатывает не когда диск заполнен, а когда по текущей скорости заполнения до критического значения осталось меньше 4 часов.
Медиатипы для уведомлений — Slack, Telegram, PagerDuty, email, SMS. Конфигурируются через Administration → Media Types с шаблонами сообщений на Zabbix-специфичном JavaScript.
Основные метрики Zabbix:
| Метрика | Значение | Эффект |
|---|---|---|
| Время реакции на инцидент | Снижение на 30% | Меньше простоев |
| Количество метрик на сервер | До 1 млн | Высокая плотность |
| Загрузка CPU при 10k items | 20% | Низкая нагрузка |
Как мы внедряем Zabbix: процесс работы
- Аудит текущей инфраструктуры: инвентаризация хостов, проверка версий агентов, анализ шаблонов и триггеров.
- Проектирование схемы: хостовые группы, иерархия шаблонов, политика хранения истории.
- Установка и настройка сервера, прокси, агентов (через Ansible role).
- Импорт шаблонов, настройка LLD, триггеров и действий.
- Тестирование и отладка алертов.
- Обучаем вашу команду работе с Zabbix.
- Документация по архитектуре и процессам.
Пример Ansible-роли для установки Zabbix Agent 2
---
- name: Install Zabbix Agent 2
hosts: all
tasks:
- name: Add Zabbix repository
apt_repository:
repo: 'deb http://repo.zabbix.com/zabbix/7.0/ubuntu/ $(lsb_release -sc) main'
when: ansible_os_family == 'Debian'
- name: Install agent
apt:
name: zabbix-agent2
state: latest
- name: Configure agent
template:
src: zabbix_agent2.conf.j2
dest: /etc/zabbix/zabbix_agent2.conf
notify: restart agent
Что входит в нашу работу по настройке Zabbix
- Аудит текущей инфраструктуры (выявление устаревших агентов, неиспользуемых шаблонов).
- Проектирование схемы мониторинга (хостовые группы, иерархия шаблонов).
- Установка и конфигурация Zabbix Server, Proxy, Agent 2.
- Настройка LLD для автоматического обнаружения ресурсов.
- Создание кастомных шаблонов и триггеров под ваши задачи.
- Интеграция с системами уведомлений (Telegram, Slack, email).
- Передача документации и обучение вашей команды.
- Поддержка в течение 1 месяца после внедрения.
Мы работаем с инфраструктурой от 50 до 5000 хостов. Наши инженеры имеют сертификаты Zabbix Certified Specialist и 10+ лет опыта в DevOps. Гарантируем стабильную работу системы мониторинга и сокращение времени реакции на инциденты на 30%.
Сроки и стоимость
- Установка с нуля на инфраструктуру до 50 хостов: от 2 до 3 дней.
- Миграция с предыдущей версии Zabbix с сохранением истории: от 3 до 5 дней.
- Внедрение мониторинга сети и оборудования (SNMP): добавляет 1-2 дня.
Стоимость рассчитывается индивидуально после аудита. Экономия бюджета на инциденты после внедрения Zabbix составляет до 40% за счёт быстрого обнаружения проблем.
Хотите получить консультацию? Напишите нам, и мы оценим ваш проект под ключ.







