Logbuch#docker#monitoring#control-center
Container down oder nur HTTP kaputt? Phase 5 kam vor Phase 4
Von Niclas Hennrich · veröffentlicht · geschehen am
Selbst gebaut und in Betrieb genommen. Gehört zum Vorhaben Homelab Control Center.
Kurz zur Einordnung: Das Control Center ist mein selbst gebautes Mini-NOC fürs Homelab — Prometheus sammelt, eine eigene Web-App zeigt. Phase 4 sollte die Firewall anbinden, aber die API-Zugangsdaten dafür waren noch nicht eingerichtet. Also habe ich Phase 5 vorgezogen: die Docker-Sicht.
Was dazugekommen ist: cAdvisor läuft jetzt im Compose-Stack, mit read-only-Mounts, und Prometheus holt sich dort Zustand, CPU und RAM je Container ab. Damit sieht das Dashboard zum ersten Mal in die Dienste hinein statt nur von außen auf ihre HTTP-Antwort.
Das eigentliche Stück Arbeit war die Status-Engine V2. Bisher war ein
roter Dienst einfach rot. Jetzt gibt es stabile Reason-Codes und eine
Priorisierung nach Ursache: Ist der Container gar nicht da, ist das die Root
Cause, und der kaputte HTTP-Check dahinter ein Folgefehler — nicht zwei
gleichwertige Alarme. Den eigenen Status offline habe ich abgeschafft; das
ist jetzt critical mit dem Code host_unreachable. Dazu eine
Service-Detail-API und Detail-Seiten im Frontend.
Die Lektion aus Phase 3 galt wieder: Fehlender Wert ist kein Fehler.
cAdvisor liefert keine Restart-Zähler, und ein Container ohne definierten
Healthcheck meldet -1 — das ist „nicht konfiguriert", kein Befund. Ebenso
ein Container ohne Memory-Limit. Wer daraus Warnungen macht, hat ein
Dashboard aus Dauerrauschen.
Stand nach dem Umbau: Container-Zustand und Healthchecks live im Dashboard, 56 Tests grün. Phase 4 folgte kurz darauf, als die Zugangsdaten da waren.