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.
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.
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.
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.
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.
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.
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.
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.
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.
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
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
hugues44
Membre depuis le 15/12/2019actif
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?