Zum Inhalt springen
labkompass

Logbuch#docker#monitoring#control-center

Container down oder nur HTTP kaputt? Phase 5 kam vor Phase 4

Von Niclas Hennrich · veröffentlicht · geschehen am


BuildIm Einsatz

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.