#prometheus-alertmanager #prometheus-operator #alertmanager
Вопрос:
Как указано в названии, у меня проблема с alertmanager от оператора prometheus. Я пытаюсь отфильтровать некоторые предупреждения с помощью маршрутов, но, похоже, это не принимается во внимание.
Когда я использую приемник по умолчанию, все, кажется, работает нормально, но если я попытаюсь отфильтровать приемник по умолчанию, который ничего не делает, а затем маршрут, он не входит в маршрут, и я не получаю никаких ошибок.
Секрет, которым я пользуюсь:
route:
group_wait: 30s
group_interval: 5m
repeat_interval: 4h
group_by: [cluster]
receiver: 'default'
routes:
- match:
alertname: !Watchdog
receiver: 'slack-devops'
continue: true
templates: ['/etc/alertmanager/config/*.tmpl']
receivers:
- name: 'default'
- name: 'slack-devops'
slack_configs:
- channel: "tmp-test-srv-alerting"
С этой конфигурацией он помещает все в маршрут по умолчанию, и они идут по маршрутам, я даже не получаю ошибки. У кого-нибудь есть идея о том, как это сделать?
Комментарии:
1. Что вы подразумеваете под этим разделом «имя оповещения: !Сторожевой пес»? Ты имел в виду все, кроме Сторожевого пса ?
2. Да, это то, что я пытался сделать, я нашел пример, используя это письмо, но, похоже, это не работает…
3. Похоже, вопрос должен быть «как использовать отрицательные совпадения»?
4. Возможно, без сообщения об ошибке было трудно оценить, где произошла ошибка.
5. Ошибки быть не должно. Им просто злоупотребляют
Ответ №1:
Попробуйте использовать «сопоставители» вместо «совпадения», которое поддерживает отрицательное сопоставление: Вместо
# ❌ This is invalid
route:
- match:
alertname: !WatchDog
# ✅ This is correct
route:
- matchers:
- alertname!=Watchdog
Документы: https://prometheus.io/docs/alerting/latest/configuration/#matcher