В 2026 году развернуть эффективную систему мониторинга для Linux-инфраструктуры в продакшене можно двумя основными путями: используя готовую платформу Zabbix или собрав модульный стек Prometheus + Grafana. Оба решения — мощные open-source инструменты, но их архитектура и философия принципиально различаются, что напрямую влияет на выбор для конкретной задачи. Zabbix предлагает централизованное управление «из коробки», в то время как Prometheus с Grafana дают максимальную гибкость за счет сборки из независимых компонентов.
Это руководство предоставит вам объективное сравнение по ключевым критериям для продакшена и две детальные, проверенные инструкции по установке. Вы сможете быстро запустить сбор критических метрик (CPU, память, диск, сеть), создать наглядные дашборды и настроить алертирование, выбрав решение, которое лучше соответствует архитектуре вашей инфраструктуры и ресурсам команды.
Zabbix или Prometheus + Grafana: объективное сравнение для принятия решения в 2026
Выбор между Zabbix и Prometheus с Grafana — это выбор между двумя разными философиями построения мониторинга. Чтобы принять обоснованное решение, сравним их по ключевым для продакшена критериям: архитектуре, сложности настройки и поддержки, гибкости и масштабируемости.
Архитектура и философия: централизованное управление против модульной гибкости
Архитектурное различие — фундаментально. Zabbix — это классическая монолитная система, построенная по модели «сервер — агенты/прокси — база данных». Сервер Zabbix является единой точкой управления: он опрашивает агентов, установленных на хостах, или собирает данные без агентов через SNMP, ICMP, HTTP. Веб-интерфейс, логика алертинга и хранение данных тесно интегрированы. Это обеспечивает быстрое развертывание готовой системы, но делает кастомизацию отдельных компонентов более сложной.
Prometheus, в свою очередь, работает по модели pull (вытягивания). Автономный сервер Prometheus периодически «скрабирует» (запрашивает) метрики у так называемых экспортеров, например, Node Exporter для метрик ОС. Grafana выступает отдельным, независимым инструментом визуализации, который подключается к Prometheus как к источнику данных. Alertmanager — еще один отдельный компонент для обработки и маршрутизации алертов.
Что выбрать? Zabbix отлично подходит для классической, гетерогенной инфраструктуры с сетевым оборудованием, где важна единая точка управления и готовые шаблоны. Стек Prometheus + Grafana стал де-факто стандартом для мониторинга микросервисных архитектур и Kubernetes, где важны гибкость, мощный язык запросов PromQL и возможность легко интегрировать кастомные экспортеры.
Сложность настройки и поддержки: первоначальные и долгосрочные затраты
Оценка трудозатрат — критический фактор.
Начальная настройка: Zabbix позволяет быстрее получить работающую систему. После установки сервера, базы данных и веб-интерфейса вы сразу получаете доступ к библиотеке готовых шаблонов для мониторинга Linux, сетевых устройств и популярных сервисов. Добавление нового хоста часто сводится к установке агента и привязке шаблона в веб-интерфейсе.
Для Prometheus + Grafana потребуется больше ручных шагов: отдельная установка и настройка Prometheus, Node Exporter на каждом хосте, Grafana, а затем их связывание через конфигурационные файлы (prometheus.yml). Создание эффективных алертов требует понимания PromQL.
Долгосрочная поддержка и масштабирование: Zabbix проще администрировать на начальном и среднем масштабе благодаря централизованному веб-интерфейсу. Для масштабирования на сотни/тысячи хостов потребуется настройка прокси-серверов Zabbix для распределения нагрузки. Архитектура Prometheus изначально горизонтально масштабируема (несколько независимых серверов), но для глобального представления данных потребуются дополнительные инструменты, такие как Thanos или Cortex.
Итог для выбора: Если вам нужна «работающая из коробки» система с минимумом ручной сборки и ваша команда знакома с классическими системами мониторинга — выбирайте Zabbix. Если ваша инфраструктура динамична (контейнеры, микросервисы), а команда готова инвестировать время в изучение и тонкую настройку модульного стека для максимального контроля — ваш выбор Prometheus + Grafana. Для глубокого понимания метрик и их анализа рекомендуем ознакомиться с нашим руководством по ключевым метрикам производительности Linux.
Пошаговая установка и базовая настройка Zabbix для мониторинга Linux-сервера
Предполагаем, что вы используете Ubuntu 24.04 LTS или Rocky Linux 9. Все команды актуальны на апрель 2026 года.
Установка сервера Zabbix и веб-интерфейса
1. Установите репозиторий Zabbix и необходимые пакеты (на примере Ubuntu):
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu24.04_all.deb
dpkg -i zabbix-release_7.0-1+ubuntu24.04_all.deb
apt update
2. Установите сервер Zabbix, фронтенд и агент, используя PostgreSQL в качестве БД:
apt install -y zabbix-server-pgsql zabbix-frontend-php php8.3-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2
3. Создайте базу данных и пользователя, затем импортируйте начальную схему:
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
4. Настройте подключение к БД в файле /etc/zabbix/zabbix_server.conf:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=your_secure_password_here
5. Запустите сервисы и настройте автозагрузку:
systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm
systemctl enable zabbix-server zabbix-agent2 nginx php8.3-fpm
6. Откройте веб-браузер и перейдите по адресу http://ваш_сервер/zabbix. Следуйте мастеру начальной настройки веб-интерфейса.
Настройка мониторинга первого хоста: CPU, память, диск, сеть
1. В веб-интерфейсе Zabbix перейдите в Configuration → Hosts и нажмите Create host.
2. Заполните основные параметры: имя хоста, видимое имя и добавьте его в группу (например, «Linux servers»).
3. На вкладке Interfaces добавьте интерфейс типа «Agent» и укажите IP-адрес целевого хоста и порт агента (по умолчанию 10050).
4. На вкладке Templates найдите и свяжите шаблон Template OS Linux by Zabbix agent. Этот шаблон автоматически начнет сбор ключевых метрик: загрузку CPU, использование оперативной и swap-памяти, свободное место на разделах диска, сетевой трафик по интерфейсам, количество запущенных процессов и другую системную телеметрию.
5. Нажмите Add. Через несколько минут перейдите в Monitoring → Latest data, отфильтруйте по имени вашего хоста. Вы увидите список собираемых метрик и их текущие значения. Если данные не появляются, проверьте, что на целевом хосте запущен и настроен Zabbix Agent2, а брандмауэр разрешает соединения на порт 10050.
Развертывание стека мониторинга Prometheus, Node Exporter и Grafana с нуля
Инструкция для Ubuntu 24.04 LTS / Rocky Linux 9. Будем разворачивать компоненты на одном сервере для простоты.
Настройка Prometheus и добавление цели для Node Exporter
1. Установите Prometheus:
wget https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz
tar xvf prometheus-2.52.0.linux-amd64.tar.gz
sudo mv prometheus-2.52.0.linux-amd64 /usr/local/bin/prometheus
sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir /etc/prometheus /var/lib/prometheus
2. Создайте основной конфигурационный файл /etc/prometheus/prometheus.yml:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
3. Установите и запустите Node Exporter для сбора метрик ОС:
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.0/node_exporter-1.8.0.linux-amd64.tar.gz
tar xvf node_exporter-1.8.0.linux-amd64.tar.gz
sudo mv node_exporter-1.8.0.linux-amd64/node_exporter /usr/local/bin/
sudo useradd --no-create-home --shell /bin/false node_exporter
sudo systemctl enable --now node_exporter
4. Запустите Prometheus и откройте веб-интерфейс по адресу http://ваш_сервер:9090. Перейдите на вкладку Status → Targets. Вы должны увидеть состояние целей (targets) prometheus и node_exporter как UP.
Визуализация метрик: импорт дашборда в Grafana и создание своего
1. Установите Grafana:
sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y grafana
sudo systemctl enable --now grafana-server
2. Откройте веб-интерфейс Grafana по адресу http://ваш_сервер:3000 (логин/пароль по умолчанию: admin/admin).
3. Добавьте источник данных: Configuration → Data sources → Add data source. Выберите Prometheus. В поле URL укажите http://localhost:9090 и нажмите Save & Test.
4. Импортируйте готовый дашборд. Перейдите в Dashboards → Import. В поле Import via grafana.com введите ID 1860 (популярный дашборд «Node Exporter Full»). Выберите источник данных Prometheus и нажмите Import.
Теперь у вас есть комплексный дашборд с графиками по CPU, памяти, дисковому вводу-выводу, сетевому трафику, загрузке системы и другим метрикам. Для создания собственной панели нажмите Add → Visualization, выберите источник данных Prometheus и используйте PromQL для запроса метрик, например: rate(node_cpu_seconds_total{mode="system"}[5m]) для загрузки CPU в системном режиме.
Настройка алертинга: от простых уведомлений до отказоустойчивой конфигурации
Система мониторинга без алертов — просто архив данных. Настроим оповещения в обеих системах, начав с самых востребованных сценариев.
Алерты в Zabbix: триггеры, действия и интеграция с Telegram
1. Создайте триггер. Перейдите в Configuration → Hosts, выберите ваш хост и перейдите на вкладку Triggers → Create trigger.
• Name: «High CPU load on {HOST.NAME}»
• Expression: {Template OS Linux by Zabbix agent:system.cpu.util[,system].avg(5m)}>90
Это выражение сработает, если средняя за 5 минут загрузка CPU в системном режиме превысит 90%.
2. Настройте способ оповещения (медиа-тип). Перейдите в Administration → Media types → Create media type.
• Name: «Telegram»
• Type: Webhook
• В поле Script укажите скрипт, который будет отправлять сообщение через API Telegram-бота. (Для экономии места приведем концепцию: вам потребуется создать бота через @BotFather, получить его токен и chat ID, затем написать скрипт, использующий curl для вызова https://api.telegram.org/bot{token}/sendMessage).
3. Создайте действие. Перейдите в Configuration → Actions, выберите тип «Trigger action» → Create action.
• Настройте условие, при котором действие выполняется (например, для созданного триггера).
• На вкладке Operations добавьте операцию: отправку сообщения созданному пользователю (или группе) через медиа-тип «Telegram».
Alertmanager для Prometheus: правила алертов и маршрутизация
1. Установите и настройте Alertmanager (отдельный компонент).
2. Создайте файл правил алертов для Prometheus, например, /etc/prometheus/rules/node_alerts.yml:
groups:
- name: node_alerts
rules:
- alert: HighMemoryUsage
expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100 > 85
for: 5m
labels:
severity: warning
annotations:
summary: "High memory usage on {{ $labels.instance }}"
description: "Memory usage is above 85% (current value: {{ $value }}%)"
3. Укажите путь к правилам в prometheus.yml в секции rule_files и перезагрузите конфигурацию Prometheus.
4. Настройте alertmanager.yml для маршрутизации алертов, например, в Slack или email. Alertmanager позволяет группировать алерты по меткам, подавлять уведомления и настраивать повторные отправки. Перед настройкой сложных алертов полезно провести нагрузочное тестирование сервисов, чтобы понимать их нормальное поведение. Методики описаны в нашем руководстве по нагрузочному тестированию серверов.
Дальнейшее развитие: масштабирование, кастомные метрики и поддержка в 2026
После успешного запуска базового мониторинга встают вопросы развития системы.
Как добавить мониторинг специфичного оборудования или приложения
Сила обеих систем — в расширяемости.
Для Prometheus используется концепция экспортеров. Например, для мониторинга GPU NVIDIA установите nvidia_gpu_exporter. Для мониторинга кастомного приложения нужно, чтобы оно отдавало метрики в формате Prometheus (обычно по HTTP на путь /metrics). Если приложение этого не умеет, можно написать простой экспортер на Python с использованием библиотеки prometheus_client.
Для Zabbix используйте UserParameter в конфигурации агента (/etc/zabbix/zabbix_agent2.d/*.conf). Он позволяет определить ключ и команду, результат выполнения которой Zabbix будет собирать как метрику. Например:
UserParameter=app.queue.size, /usr/local/bin/check_queue.sh
Для мониторинга состояния сложных распределенных приложений, например, работающих в Kubernetes, принципы остаются теми же, но добавляется специфика оркестратора. Подробнее о подходах к мониторингу в Kubernetes можно узнать из нашего материала о полном цикле создания системы мониторинга.
Масштабирование: Zabbix масштабируется через прокси-серверы, которые берут на себя сбор данных с группы хостов и передают их на основной сервер. Prometheus масштабируется горизонтально — запуском независимых экземпляров для разных сегментов инфраструктуры. Для глобального запроса к данным с нескольких прометеев используются федерация или надстройки вроде Thanos.
Поддержка в 2026: Регулярно обновляйте компоненты для получения исправлений уязвимостей и новых функций. Настройте резервное копирование критических конфигураций: файлов prometheus.yml, правил алертов, дашбордов Grafana (их можно экспортировать в JSON), а также базы данных Zabbix. Помните: система мониторинга сама является критической инфраструктурой. Настройте для нее базовый мониторинг (нагрузка, дисковое пространство) и продумайте схему высокой доступности, если это необходимо для вашего продакшена.