В 2026 году надежный мониторинг серверной инфраструктуры остается критически важным для предотвращения сбоев. Эта инструкция проведет вас через развертывание готового стека на базе Prometheus, Grafana и Alertmanager. Вы получите работающую систему для сбора метрик, визуализации данных и автоматических оповещений о проблемах с CPU, памятью, дисками и сетью.
Гайд основан на актуальных версиях ПО на май 2026 года и содержит проверенные конфигурационные файлы. Мы начнем с установки компонентов, затем настроим алертинг в популярные мессенджеры и создадим информативные дашборды. Весь процесс займет 1-2 часа.
Подготовка инфраструктуры и установка компонентов
Перед началом убедитесь, что у вас есть сервер под управлением Ubuntu 24.04 LTS, Debian 12 или аналогичного дистрибутива Linux. Потребуются права суперпользователя (sudo) и стабильное интернет-соединение. Мы будем устанавливать ПО через официальные репозитории и systemd для управления службами.
Установка и настройка Prometheus для сбора метрик
Prometheus 3.8 (актуальная версия на май 2026) устанавливается через пакетный менеджер. Добавьте официальный репозиторий и выполните установку.
sudo apt update
sudo apt install -y prometheus prometheus-node-exporter
После установки отредактируйте основной конфигурационный файл /etc/prometheus/prometheus.yml. Приведенная ниже конфигурация задает глобальные параметры и добавляет задание для сбора метрик с локального node_exporter.
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
- "/etc/prometheus/alert_rules.yml"
alerting:
alertmanagers:
- static_configs:
- targets: ['localhost:9093']
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
Запустите службу и включите автозагрузку:
sudo systemctl start prometheus
sudo systemctl enable prometheus
Проверьте работу Prometheus, открыв в браузере http://ваш_сервер:9090. В разделе Status -> Targets должны отображаться состояния endpoint'ов prometheus и node со статусом UP.
Развертывание node_exporter для мониторинга состояния сервера
node_exporter 2.0 уже установился вместе с Prometheus. Эта служба собирает ключевые метрики операционной системы:
- CPU: загрузка ядер, время в режиме user/system/idle.
- Память: общий объем, использование, кэш, своп.
- Диски: свободное пространство, I/O операции, latency.
- Сеть: трафик, ошибки, состояние интерфейсов.
Запустите и включите службу:
sudo systemctl start prometheus-node-exporter
sudo systemctl enable prometheus-node-exporter
Убедитесь, что метрики доступны по адресу http://ваш_сервер:9100/metrics. Prometheus автоматически начнет их сбор, так как target указан в конфигурации. Если вам нужен мониторинг специфичных служб, таких как Nginx, рассмотрите установку соответствующих экспортеров. Подробный гайд по настройке мониторинга веб-сервера доступен в нашей статье: Nginx: практический мониторинг, анализ логов и отладка ошибок.
Настройка Alertmanager для автоматических оповещений
Alertmanager 0.28 обрабатывает алерты, сгенерированные Prometheus, и отправляет уведомления в заданные каналы. Его основная функция - группировка, подавление дублей и маршрутизация сообщений.
Конфигурация Alertmanager для Telegram, Slack и Email
Установите Alertmanager из репозитория:
sudo apt install -y alertmanager
Основной файл конфигурации - /etc/alertmanager/alertmanager.yml. Ниже приведен пример с настройкой получателей для Telegram, Slack и Email. Для Telegram потребуется создать бота через @BotFather и получить chat_id.
global:
smtp_smarthost: 'smtp.gmail.com:587'
smtp_from: 'alertmanager@yourdomain.com'
smtp_auth_username: 'your-email@gmail.com'
smtp_auth_password: 'your-app-password'
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'telegram-notifications'
receivers:
- name: 'telegram-notifications'
telegram_configs:
- api_url: 'https://api.telegram.org'
bot_token: 'YOUR_BOT_TOKEN'
chat_id: YOUR_CHAT_ID
parse_mode: 'HTML'
- name: 'slack-notifications'
slack_configs:
- api_url: 'https://hooks.slack.com/services/YOUR/WEBHOOK/URL'
channel: '#alerts'
title: '{{ .GroupLabels.alertname }}'
text: '{{ .CommonAnnotations.description }}'
- name: 'email-notifications'
email_configs:
- to: 'admin@yourdomain.com'
subject: '[Alert] {{ .GroupLabels.alertname }}'
html: '{{ .CommonAnnotations.description }}'
Важно: стандартные чаты Telegram по умолчанию не имеют сквозного шифрования. Для отправки конфиденциальных алертов используйте секретные чаты (Secret Chats). Если безопасность - абсолютный приоритет, рассмотрите альтернативы вроде Signal, где шифрование включено всегда. Запустите Alertmanager: sudo systemctl start alertmanager.
Создание и тестирование правил алертов в Prometheus
Правила алертов определяют условия, при которых Prometheus генерирует событие. Создайте файл /etc/prometheus/alert_rules.yml со следующим содержимым:
groups:
- name: node_alerts
rules:
- alert: HighCpuUsage
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 80
for: 2m
labels:
severity: warning
annotations:
description: 'CPU usage on {{ $labels.instance }} is {{ $value }}%'
- alert: HighMemoryUsage
expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100 > 85
for: 2m
labels:
severity: warning
annotations:
description: 'Memory usage on {{ $labels.instance }} is {{ $value }}%'
- alert: LowDiskSpace
expr: (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100 < 15
for: 5m
labels:
severity: critical
annotations:
description: 'Root filesystem on {{ $labels.instance }} has only {{ $value }}% free space'
Перезагрузите конфигурацию Prometheus: sudo systemctl reload prometheus. Проверьте, что правила загружены, на странице http://ваш_сервер:9090/rules. Для тестирования искусственно создайте нагрузку, например, командой stress-ng --cpu 2 --timeout 300s. Через 2 минуты в Alertmanager должен появиться алерт HighCpuUsage, а затем прийти уведомление в выбранный канал. Более глубокое погружение в тему алертинга, включая борьбу с шумом уведомлений, вы найдете в нашем руководстве: Alerting в IT-мониторинге: настройка умных уведомлений и борьба с шумом.
Визуализация данных: создание дашбордов в Grafana
Grafana 12.0 предоставляет мощный интерфейс для визуализации метрик из Prometheus. Установите ее, добавив официальный репозиторий.
sudo apt install -y grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
Откройте веб-интерфейс по адресу http://ваш_сервер:3000 (логин/пароль по умолчанию: admin/admin). Первым делом добавьте источник данных (Data Source). Выберите тип Prometheus, укажите URL http://localhost:9090 и нажмите Save & Test.
Импорт готового дашборда для мониторинга сервера
Самый быстрый способ получить информативную панель - импорт готового дашборда из официальной библиотеки. В Grafana перейдите в раздел Dashboards -> Import и введите ID: 1860 (Node Exporter Full). В качестве источника данных выберите только что созданный Prometheus.
Импортированный дашборд содержит несколько панелей:
- CPU: график загрузки по ядрам, режимам работы.
- Memory: использование RAM, свопа, кэша.
- Disk I/O: операции чтения/записи, latency.
- Network: входящий/исходящий трафик по интерфейсам.
Дашборд автоматически отобразит метрики с вашего сервера. Вы можете адаптировать его, изменив названия панелей или добавив новые графики.
Основы создания собственных графиков в Grafana
Чтобы создать простой график вручную, нажмите "Add panel" в любом дашборде. В редакторе запросов (Query) выберите источник данных Prometheus и введите выражение на PromQL. Например, для отображения доступной памяти:
node_memory_MemAvailable_bytes
Используйте функцию rate() для вычисления скорости изменения метрики за интервал, что полезно для сетевого трафика или операций диска:
rate(node_network_receive_bytes_total[2m])
Сохраните панель, задав понятное название. Этот базовый навык позволит вам в будущем расширять мониторинг под свои нужды. Для комплексного понимания всех этапов настройки, от CLI-утилит до продвинутых дашбордов, обратитесь к нашему исчерпывающему руководству: Системы мониторинга производительности 2026: от CLI-утилит до Prometheus и Grafana.
Финальная проверка и оптимизация системы
После настройки всех компонентов выполните комплексную проверку. Это гарантирует, что система будет реагировать на реальные инциденты.
Тестирование полного цикла мониторинга и оповещений
Смоделируйте критическую ситуацию для проверки всей цепочки. Например, заполните дисковое пространство:
dd if=/dev/zero of=/tmp/test_fill bs=1M count=1024
Подождите 5 минут (интервал, заданный в правиле LowDiskSpace). Затем последовательно проверьте:
- Prometheus Alerts: на странице
http://ваш_сервер:9090/alertsдолжен появиться алерт LowDiskSpace в состоянии Firing. - Alertmanager: на странице
http://ваш_сервер:9093во вкладке Alerts отобразится тот же алерт. - Канал уведомлений: в Telegram, Slack или на почту должно прийти сообщение с описанием проблемы.
Если уведомление не пришло, проверьте логи служб: sudo journalctl -u alertmanager -f. Частые ошибки - неверный bot_token в Telegram, заблокированный порт для SMTP или отсутствие интернет-соединения у сервера.
Дальнейшие шаги и рекомендации по развитию системы
Базовая система готова. Для повышения ее эффективности выполните следующие шаги:
- Расширение мониторинга: установите экспортеры для Docker (
cadvisor), веб-серверов (nginx_exporter), баз данных. Добавьте их вprometheus.ymlкак новые job. - Оптимизация алертов: настройте разные получатели для алертов разной критичности (warning -> Slack, critical -> Telegram + Email). Используйте аннотации для добавления ссылок на runbook или инструкции по устранению.
- Резервный канал: добавьте второй канал оповещений (например, Email как резерв для Telegram) для повышения надежности.
- Документирование: сохраните все конфигурационные файлы (
prometheus.yml,alertmanager.yml,alert_rules.yml) в систему контроля версий (Git). Это упростит восстановление и аудит изменений.
Помните принцип, актуальный для любых автоматизированных систем: четко прописанные правила (конфигурации) определяют поведение, но их реализация требует регулярной проверки. Обновляйте версии ПО и тестируйте правила при изменении инфраструктуры. Для взвешенного выбора между встроенным алертингом Grafana и Alertmanager изучите наше практическое сравнение: Grafana Alerting vs Prometheus Alertmanager 2026: практическое руководство по выбору системы алертинга.
Ваша система мониторинга теперь полностью функциональна. Она собирает ключевые метрики, визуализирует их в наглядных дашбордах и автоматически оповещает о проблемах. Это основа, которую вы можете масштабировать под растущую инфраструктуру.