Monitoring & alerting¶
Stack technique : monitoring. Ici : qui surveille quoi, et par quel canal l'alerte arrive.
Trois canaux d'alerte (redondants)¶
1) Interne HA : health-alerter / raid-monitor ── webhook ──▶ Home Assistant (notifs)
2) Interne e-mail : Gatus ── SMTP mailu ──▶ e-mail (indépendant de HA)
3) Externe : Healthchecks.io ── e-mail externe ──▶ (indépendant du NUC ET de mailu)
Détail¶
| Source | Surveille | Déclencheur | Canal |
|---|---|---|---|
| Prometheus + Grafana | métriques (hôte, conteneurs, GPU) | dashboards / règles | visualisation |
| Loki + Promtail | logs conteneurs | recherche Grafana | — |
| Gatus | up/down : HA, MQTT/EMQX, bases, Grafana, Jellyfin, mailu… | service down | e-mail via mailu |
| health-alerter | events Docker unhealthy |
conteneur unhealthy | webhook HA |
| autoheal | conteneurs unhealthy |
unhealthy | redémarre le conteneur |
| raid-monitor | RAID md0 (/proc/mdstat) |
DEGRADED/MISSING/MISMATCH | webhook HA |
| Healthchecks.io | NUC (inconditionnel), HA, Z2M (si répondent) | ping manqué (grâce ~5-10 min) | e-mail externe |
Healthchecks.io (dead-man's switch)¶
Conteneur healthchecks-ping (ping toutes les 120 s). Si le NUC tombe (courant/réseau/crash), le
ping NUC s'arrête → Healthchecks.io alerte. HA et Z2M ne sont pingés que s'ils répondent → leur
silence est détecté. URLs dans compose/monitoring/.env (HC_NUC_URL, HC_HA_URL, HC_Z2M_URL).
Pourquoi 3 canaux ?¶
Chaque canal couvre l'angle mort des autres : si HA tombe, l'e-mail Gatus passe ; si mailu tombe, Healthchecks passe ; si le NUC entier tombe, seul Healthchecks (externe) alerte.