Алертинг — компонент системы мониторинга, отвечающий за уведомление ответственных лиц при возникновении инцидентов или приближении к критическим порогам. Качественный алертинг: минимум ложных срабатываний, максимум actionable информации в уведомлении.
Prometheus Alertmanager
# prometheus/rules/alerts.yml
groups:
- name: server
rules:
- alert: HighCPU
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 90
for: 5m
labels:
severity: critical
annotations:
summary: "High CPU on {{ $labels.instance }}"
description: "CPU usage is {{ $value }}%"
- alert: DiskAlmostFull
expr: (node_filesystem_size_bytes - node_filesystem_free_bytes) / node_filesystem_size_bytes > 0.85
for: 10m
labels:
severity: warning
Каналы уведомлений
- Telegram — самый популярный канал для DevOps-команд в России. Мгновенная доставка.
- Email — для дневных отчётов и не срочных уведомлений.
- Slack/Teams — корпоративные мессенджеры.
- PagerDuty/OpsGenie — дежурства, эскалации, SLA.
- Webhooks — интеграция с любым сервисом.
Telegram-бот для алертов
# Простой алерт через curl
TOKEN="bot_token"
CHAT_ID="chat_id"
MESSAGE="CPU > 90% на webserver1"
curl -s -X POST https://api.telegram.org/bot${TOKEN}/sendMessage \
-d chat_id=${CHAT_ID} \
-d text="${MESSAGE}"
Лучшие практики
Алерт должен быть actionable (требовать действий). Избегать alert fatigue (привыкания к частым ложным срабатываниям). Дифференцировать severity: info/warning/critical. Включать runbook ссылку: «Что делать при этом алерте».
История
SNMP Traps — ранняя форма алертинга (1988). Nagios — первая популярная система мониторинга с алертингом (1999). Prometheus + Alertmanager — 2015. PagerDuty основана в 2009 году. Grafana Alerting (встроенный) появился в Grafana 8 (2021).
Связь с хостингом
Алертинг — обязательный компонент для production-хостинга. Базовые алерты для VDS: CPU > 90%, диск > 85%, недоступность HTTP/HTTPS, сбой процесса Nginx/MySQL. Связка Zabbix + Telegram или Telegraf + Prometheus + Alertmanager покрывает большинство сценариев.
На что обращать внимание при настройке алертинга
Эффективный алертинг для VPS: настройте приоритеты — P1 (немедленно, SMS/звонок), P2 (в рабочее время, Telegram), P3 (отчёт раз в день). Используйте hysteresis (выжидание) чтобы не получать алерт при кратковременных пиках. Для Zabbix настройте severity levels: Information, Warning, Average, High, Disaster. Алертинг на disk full должен срабатывать при 80% (предупреждение) и 90% (критично), а не при 100%.
Инструменты алертинга для хостинга
| Инструмент | Интеграция | Каналы уведомлений |
|---|---|---|
| Zabbix | агент, SNMP | Email, SMS, Telegram, PagerDuty |
| Prometheus Alertmanager | метрики | Email, Slack, Webhook |
| Grafana OnCall | любые datasource | Telegram, SMS, Mattermost |
| UptimeRobot | внешний HTTP | Email, SMS, Slack |
| Better Uptime | внешний HTTP/ping | Telegram, SMS, голосовой звонок |
Типичные ошибки настройки алертинга
- Alert fatigue: слишком много уведомлений — команда перестаёт реагировать. Используйте группировку и дедупликацию.
- Алерт только на симптом (CPU 90%), а не на причину — ищите коррелирующие метрики.
- Нет ответственного дежурного: алерт в общий Slack-чат — никто не реагирует.
- Отсутствие runbook: сотрудник получил алерт, но не знает что делать.