alertmanager alerte pas quand prometheus crash

hugues44 11/01/2025
RÉSOLU
hugues44
Auteur Actif
Avatar de hugues44
hugues44
Auteur Actif

Yo la team. J'ai un souci super chiant. Mon Prometheus a crashé, impossible de le redémarrer pour X raisons, mais Alertmanager n'a jamais envoyé d'alerte pour dire que Prometheus est down. C'est le but de l'alerte "PrometheusDown" non? Genre si l'agent qui surveille est down, y'a personne pour crier au loup. Comment vous gérez ça?


# ma règle d'alerte prometheus
- alert: PrometheusDown
  expr: up{job="prometheus"} == 0
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "Prometheus instance {{ $labels.instance }} down"
    description: "Prometheus {{ $labels.instance }} is down or unreachable."
11/01/2025 à 23:34

10 commentaires

ah le piège classique ! si ton prometheus qui est censé déclencher l'alerte est lui-même down, il ne peut évidemment pas envoyer l'alerte à alertmanager. c'est une limite fondamentale de l'auto-surveillance.

12/01/2025 à 20:28
dupre-michel
Membre Actif Secouriste
Avatar de dupre-michel
dupre-michel
Membre Actif Secouriste

Exactement ce que dit user 2. Pour surveiller Prometheus, il faut un système externe ou un Prometheus secondaire. Ta règle up{job="prometheus"} == 0 ne sert à rien si Prometheus ne peut même pas l'évaluer.

Modifié le 23/05/2026 à 16:20

La solution la plus courante c'est d'avoir un deuxième Prometheus minimaliste, juste là pour scraper le Prometheus principal et envoyer l'alerte s'il voit que le principal est down. Ou même un service tierce partie type UptimeRobot.

14/01/2025 à 15:02

tu peux aussi utiliser un blackbox_exporter qui ping l'endpoint /metrics de ton prometheus principal. si le blackbox voit que c down, il envoie une métrique à un autre prometheus (ou à lui-même s'il est configuré pour un scrape local) qui déclenchera l'alerte.

Modifié le 23/05/2026 à 16:20
hugues44
Auteur Actif
Avatar de hugues44
hugues44
Auteur Actif

D'accord je comprends mieux le principe du watchdog. C'est hyper logique en fait. Donc ma règle est bonne pour surveiller n'importe quel autre service, mais pas le prometheus qui la porte. Je pensais que Alertmanager avait une astuce ou un keepalive natif.

16/01/2025 à 05:06

Non Alertmanager reçoit passivement les alertes. Il ne fait pas de monitoring actif. C'est Prometheus qui le nourrit. Donc si le tube est cassé, plus rien n'arrive. Un Prometheus secondaire est la solution la plus robuste et idiomatique.

17/01/2025 à 00:18
dupre-michel
Membre Actif Secouriste
Avatar de dupre-michel
dupre-michel
Membre Actif Secouriste

Tu peux aussi envisager un simple script cron sur une machine distincte qui fait un curl sur l'endpoint /metrics de Prometheus et qui envoie une alerte Slack/Email si ça répond pas. Moins Promethean mais ça marche pour les cas d'urgence.

Modifié le 23/05/2026 à 16:20

Pour la solution blackbox exporter, l'idée est que ce blackbox soit scrapé par un autre Prometheus, ou que tu aies une configuration spéciale qui permet à Prometheus de s'auto-scraper et de le faire remonter si lui-même crashait (ce qui est un peu un paradoxe). Le mieux c'est le second Prometheus.

Modifié le 23/05/2026 à 16:20

Oui un "meta-Prometheus" si tu veux. C'est pas forcément lourd, juste une instance qui scrape 2-3 cibles critiques dont le Prometheus principal, le Alertmanager, et ptete un grafana. Juste pour l'upness.

19/01/2025 à 17:46
hugues44
Auteur Actif
Avatar de hugues44
hugues44
Auteur Actif

Super clair merci. Je vais partir sur un petit Prometheus secondaire qui scrute l'endpoint /_status de l'instance principale, ça me semble le plus propre. Merci pour toutes les explications et les pistes, c super utile

Modifié le 23/05/2026 à 16:20

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