Ответ
В моей практике основным стеком для мониторинга и алертинга был Prometheus + Alertmanager + Grafana.
1. Prometheus: Собирал метрики через pull-модель. Писал правила алертов на PromQL.
# prometheus.rules.yml
groups:
- name: node_alerts
rules:
- alert: InstanceDown
expr: up{job="node-exporter"} == 0
for: 2m
labels:
severity: critical
team: devops
annotations:
summary: "Instance {{ $labels.instance }} is down"
description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 2 minutes."
2. Alertmanager: Группировал, подавлял дубли (inhibition) и маршрутизировал алерты на каналы: Slack, Email, PagerDuty, Telegram (через webhook). Настраивал разные маршруты для severity: critical и warning.
3. Grafana: Использовал не только для дашбордов, но и для алертов на основе визуализаций, что удобно для сложных, не-PromQL сценариев.
Для логов: Использовал Loki (как легковесную альтернативу ELK) или Elastic Stack. Алёртинг по логам настраивал через Grafana Loki Ruler (аналогично Prometheus) или ElastAlert для Elasticsearch.
В облаке (AWS): Активно использовал CloudWatch Alarms для метрик AWS-сервисов (RDS, DynamoDB, Lambda) и отправлял их в SNS для интеграции с тем же Slack/Email.