Alertmanager и маршрутизация
Урок про Alertmanager — компонент, превращающий firing-алерты в осмысленные уведомления нужным людям.
Alertmanager — отдельный сервис, который принимает алерты от Prometheus, группирует, подавляет дубликаты и маршрутизирует их получателям.
Prometheus умеет лишь определить, что алерт firing. Куда его отправить, как не разбудить всю команду из-за одного инцидента и как сгруппировать связанные алерты — это работа Alertmanager.
Зачем нужен отдельный сервис
Разделение ответственности: Prometheus решает «есть ли проблема», Alertmanager — «кому и как об этом сообщить». Один Alertmanager обслуживает несколько Prometheus-серверов и даёт единые правила доставки.
[Prometheus] --firing--> [Alertmanager] --> Slack / Email / PagerDutyМаршрутизация: route и receivers
Конфиг описывает дерево route и список receivers. Алерт спускается по дереву, и первый подходящий маршрут определяет получателя. Критичные алерты можно слать в PagerDuty, остальные — в Slack.
route:
receiver: "slack-default"
group_by: ["alertname", "job"]
group_wait: 30s
group_interval: 5m
repeat_interval: 4h
routes:
- match:
severity: "critical"
receiver: "pagerduty"
receivers:
- name: "slack-default"
slack_configs:
- channel: "#alerts"
- name: "pagerduty"
pagerduty_configs:
- routing_key: "<ключ>"Группировка и тишина
- Группировка (
group_by) объединяет похожие алерты в одно уведомление — например, все упавшие инстансы одного job. - Silence временно глушит алерты по фильтру лейблов: удобно на время планового обслуживания.
- Inhibition подавляет одни алерты при наличии других: если упал весь дата-центр, не нужны сотни «сервис недоступен».
Как работает под капотом
Получив firing-алерт, Alertmanager помещает его в группу по group_by и ждёт group_wait, собирая родственные алерты в одно сообщение. Дальше работает repeat_interval — как часто повторять напоминание, пока проблема не решена. Перед отправкой применяются silences и inhibition-правила. Так из потока сырых алертов получается аккуратный поток уведомлений.
Частые ошибки
- Не настроить группировку. Падение 50 инстансов превратится в 50 сообщений вместо одного.
- Слишком короткий
repeat_interval. Команду засыплет повторами одного и того же алерта. - Забыть про silence на деплой. Плановые работы поднимут лавину ложных алертов.
Итог
- Alertmanager группирует, подавляет и маршрутизирует firing-алерты.
- route + receivers определяют, куда уходит каждый алерт.
- Silence глушит алерты на обслуживание, inhibition подавляет производные.