Больше применимо к стеку VM (привет чату @VictoriaMetrics_ru1 ✌🏼)
Полезные ссылки, которыми часто пользуюсь.
1) https://prometheus.io/webtools/alerting/routing-tree-editor/
Проверка алёртов и рутов.
- вставил конфигурацию Алертменеджер (!!!БЕЗ КРЕДОВ РЕСИВЕРОВ!!!)
- он отрисовал дерево всех ресиверов
- вставил интересующий тебя лейбл для рутов с матч/матчерс
- понял в какой/какие ресиверы пойдет (или нет) твой Алерт по роуту
То есть прям визуально можно понять туда или не туда пойдёт алёрт.
Актуально при большом количестве ресиверов, при первом ресивере null и при большом количестве routes.
2) https://samber.github.io/awesome-prometheus-alerts/rules
Огромный список алёртов по многим областям - базы данных, кубернетис, ингрессы и так далее.
Актуально для тех, кто не знает с чего начать.
3) https://github.com/monitoring-mixins/website/tree/master/assets
Тоже самое, что и второе, но примеров заметно больше.
4) https://github.com/prometheus/alertmanager
В самом алёртменеджере есть утилита
amtool, в CICD можно запилить валидацию конфигурации.Актуально не для всех флоу. Скорее всего не будет работать для терраформа с хелмом и гитопса.
5) https://promlabs.com/promql-cheat-sheet/
Куча трюков и подсказок. Обычный cheat sheet.
Часто отсюда ворую, когда идеи заканчиваются.
6) https://github.com/prymitive/karma
Для тех, кого бесит ущербный интерфейс алёртменеджера родом из 2001 года с птушным дизайном клоунов дизайнеров.
Я на самом деле поел два не критикал бага, прям на 100% не рекомендовал бы, но визуально он, конечно же, красив, чертяга.
7) https://chaostoolkit.org/
Хаос-
Напрямую не связан с алертменеджером, но я при его помощи тестирую все алёрты, разламывая к херам кластера тестовые.
Ок, ссылками разобрались.
Типичные траблшутинги.
1) "а чего у меня сообщение не уходит в телеграм с алёртом"
- есть ли из кластера доступ до апи телеги? (от ноды до интернетов телеги)
kubectl run telegram-test --image=curlimages/curl --restart=Never --rm -i --tty -- \
curl --max-time 10 --connect-timeout 10 https://api.telegram.org
- правильный ли токен? (можно и локально)
нечто типа
curl -s "https://api.telegram.org/bot<ваш_токен>/getMe"
- создаётся ли сам алёрт на алёрт менеджере (локально, попросите ИИ сгенерить от вашего алерта вам джейсон для вас по аналогии). У алертменеджера 2 версии апи, смотрите какая версия у вас и под неё спрашивайте нейронку запрос.
curl -X POST https://*********/api/v1/alerts \
-H "Content-Type: application/json" \
-d '[
{
"labels": {
...
},
"annotations": {
...
},
"startsAt": "'"$(date -u +"%Y-%m-%dT%H:%M:%SZ")"'",
"endsAt": "'"$(date -u -d "+3 minutes" +"%Y-%m-%dT%H:%M:%SZ")"'"
}
]'
- если всё выше проверено, всё ок, то смотреть нет ли у тебя
Если есть, то уходи от идеи нескольких и пихай всё в один.
Он при мерже какую-то ересь делает и оно перестаёт работать.
На момент марта 2025 года я строго НЕ рекомендую использовать несколько их.
Только один. пилите всё в одном.
Чекаем, если больше 2, то у меня плохие новости(на момент написания материала)
kubectl get VMAlertmanagerConfig -A |wc -l
- проверяем руты - в тот ли ресивер(ы) идёт ваш алёрт?
Первая ссылка с деревом, вставляем конфиг, лейблы и чекаем.
- чего в логах алёртменеджера?
- ну и сам конфиг ресивера хоть верный?
https://prometheus.io/docs/alerting/latest/configuration/#telegram_config
#alertmanager