Prometheus alerts manager pas d'alerts qui partent pour mes instances down

Posté par desousa-michele le 04/06/2024
RÉSOLU

desousa-michele

Membre depuis le 25/08/2022

yo la team j'ai un souci avec prometheus et alertmanager. j'ai des règles d'alerting pour des instances EC2 qui tombent genre instance_state_terminated ou instance_state_stopped mais je reçois aucune notification quand une instance est down. pourtant les métriques prometheus montrent bien l'état

# exemple de règle d'alerte dans prometheus
- alert: InstanceDown
  expr: aws_ec2_instance_state == 0 # 0 pour terminated, 1 for pending, 16 for running
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "EC2 instance {{ $labels.instance_id }} is down"
    description: "EC2 instance {{ $labels.instance_id }} in region {{ $labels.region }} is in state {{ $labels.state }}"

mon alertmanager est configuré avec des receivers slack et email mais rien ne part

Commentaires

margot93

Membre depuis le 10/05/2024

hello. première chose à vérifier c'est si prometheus envoie bien les alertes à alertmanager. va dans l'interface UI de prometheus et regarde la section "Alerts". est-ce que tu vois ton alerte "InstanceDown" en état "FIRING" ? si oui le souci est côté alertmanager

sdidier

Membre depuis le 09/05/2024

si l'alerte n'apparaît pas en FIRING dans prometheus même après 5m (ton for: 5m) c'est que ta métrique aws_ec2_instance_state n'est peut-être pas scrapeée correctement ou que l'expression est fausse. regarde les targets de ton exporter EC2 pour voir s'il y a des erreurs de scrape

andre52

Membre depuis le 08/05/2024

et si elle est FIRING dans prometheus mais que rien ne sort d'alertmanager c'est souvent un souci de routing dans la config d'alertmanager. t'as bien un route qui match tous les labels de ton alerte et qui pointe vers ton receiver slack/email ? n'oublie pas le group_by et le repeat_interval

desousa-michele

Membre depuis le 25/08/2022

ok l'alerte apparaît bien en FIRING dans prometheus après 5min donc le problème est bien alertmanager. j'ai bien un route par défaut qui envoie tout mais j'ai des sous-routes plus spécifiques. ptete un conflit ?

margot93

Membre depuis le 10/05/2024

oui possible. alertmanager prend le premier route qui matche. si tu as un route catch-all plus haut que ton route spécifique qui utilise d'autres labels ou qui a un continue: true ça peut ne pas aboutir au bon receiver. vérifie l'ordre de tes routes et les matchers

desousa-michele

Membre depuis le 25/08/2022

vous avez tapé dans le mille ! j'avais un route générique au-dessus de mon route critical qui interceptait tout et n'avait pas de receiver configuré. j'ai réorganisé ça et les alerts tombent enfin. merci énormément

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire