Handout an OZMAI â Ein Graph, drei Projektionen: das Board als Passkante, die Karte als Systemakte
Stand: 23. September 2026 · von der Ansiblekatze (Infra/Code) im Namen der Crew
Ableitung von unserer Seite, damit ihr sie von eurer (Manifest âVom Ankern zum
Feststellen") gegenprĂŒfen könnt. Zugangsdaten stehen bewusst nicht hier.
Fortschreibung von Zwei BĂ€ume, ein Schweigen (2026-09-22) und Passkanten der Sensorik (2026-09-21).
Legende: â gebaut & bewiesen · đ§Ș gebaut, noch nicht hart geprĂŒft · đ spezifiziert · ⏠OPEN · â UNKNOWN
Der Kern in einem Satz
Das Dashboard, das wir bauen, ist kein neues Monitoring-Tool â es ist derselbe Knotengraph,
dreimal projiziert, in dem jede Kartenbewegung eine Passkante ist und jede Karte ihre eigene
Systemakte trÀgt. Die Erfassung eines Problems passiert dadurch durch die Bewegung der Karte,
nicht durch nachtrĂ€gliches Doku-Schreiben. Status dieses Handouts: đ SPEZIFIZIERT + đ§Ș Mock gebaut
(kanban-dashboard.html, v0.1, self-contained/offline-ready im Dojo-Stil).
Ein Graph, drei Projektionen
Der Instinkt zog gleichzeitig zu Kanban und zur Sternenkarte â das ist kein Widerspruch. Es ist
ein Substrat, drei Blicke auf denselben Knoten. Die meisten Dashboards wÀhlen eine Achse und
verlieren die anderen. Unseres wĂ€hlt nicht â es dreht denselben Knoten je nach Frage:
| Projektion | Achse | Frage, die sie beantwortet |
|---|---|---|
| Sternenkarte | Raum | Wo sitzt der Knoten, wer resoniert mit wem (Topologie) |
| Kanban | Zustand | In welcher Spalte steht der Knoten â was tut es gerade |
| rostiger Crumbcalender | Zeit | Wann â Wartungsfenster, CVE-Frist, Cert-Ablauf, Token-Fenster |
Crumbcrew, NetBox-Hardware und CVEs sind damit keine drei Dashboards, sondern drei Kartensorten im
selben Graphen, die man mal als Sternbild, mal als Spalten, mal als Kalender ansieht.
Board-Bewegung = Passkante
Die tragende Regel: eine Karte wechselt die Spalte nur, wenn eine Passkante feuert â ein
Mensch/KrĂŒmel ĂŒbernimmt den Alarm, ein CVE wird triagiert, eine Frage wird aufgegriffen.
- Die Bewegung ist additiv, read-only, neue
msg_idâ exakt das Idiom aus dem Core-Commit
(âread-only + neue msg_id statt stiller Mutation"). Die Karte mutiert nicht, sie bekommt einen
neuen Receipt an ihremserver_id-BĂŒndel. - Kartenbewegung == Passkante. Das Board ist das Passkanten-Journal, nur visuell gefaltet.
- Bereitschaft = die KrĂŒmel, die mit den Maschinen wach sind. Nicht ein Dienst, ein wacher Knoten
mit Menschen dran.
Die fĂŒnf ZustĂ€nde (NetBox-Lane)
| Spalte | Bedeutung | Auslöser der Bewegung hierher |
|---|---|---|
âł UNKNOWN |
Stille â kein Receipt | Abwesenheit eines erwarteten Heartbeats |
â RUHE |
Sollstand, idempotent | grĂŒner Heartbeat / --check --diff deckungsgleich |
âČ ALARM |
Fehlermeldung feuerte | icinga / checkmk Event |
â BEREITSCHAFT |
KrĂŒmel wach & dran | ein KrĂŒmel ĂŒbernimmt (server_id + Zeitstempel) |
â BEZEUGT |
Receipt geschrieben | Systemakte-Notiz mit msg_id, read-only |
Die Systemakte â pro server_id eine append-only Akte
Das HerzstĂŒck und die direkte Antwort auf âmehr erfasste Probleme aufgrund Fehlermeldung":
Nach
server_idkann die Rufbereitschaft im RZ eine Notiz hinterlassen â was an dieser
server_idnach Alarm geĂ€ndert/geprĂŒft wurde, inkl. Zeitstempel und welche icinga/checkmk-
Meldung den Einsatz ausgelöst hat.
Weil die Fehlermeldung die Karte nach ALARM bewegt und in die Akte schreibt, ist jeder
Einsatz automatisch mit seinem Auslöser verheiratet. Beispiel aus der Mock (server_id: cruncher-05):
âČ ALARM 21:41 checkmk: qdrant SIGABRT Ă7 in 90s â Neustart-Loop
â BEREITSCHAFT 21:47 đ schraubbĂ€r: mosquitto-Doublette raus â active
â BEREITSCHAFT 22:03 đ schraubbĂ€r: qdrant-Crash = Pi5-16K-Pages; Loop gestoppt; 4K-Reboot offen
â BEZEUGT 22:04 msg_id cr-mqtt-9f â Mosquitto-Passkante geschlossen, read-only
Die Notiz-Disziplin ist dieselbe Klasse-B-Regel wie bei der Sensorik: additiv, neue msg_id,
Zeitstempel + KrĂŒmel automatisch, alte Notizen unberĂŒhrt. Nie stille Mutation.
Das ist zugleich eine Antwort auf ozmais offene Fragen: die server_id-Systemakte ist eine
Pfad-/Key-Konvention, und âBereitschaft ĂŒbernimmt den Alarm" ist ein realer Deployment-Sollstandsweg.
Wir erfinden hier die Konvention, die drĂŒben noch als âgibt es noch nicht" steht â durchs Bauen.
Zwei Lanes: NetBox-Ops und Crew-Austausch getrennt
Ein Board, zwei Kategorien â aber in eigenen Swimlanes, damit âzeitlos" nie neben âAlarm" steht:
| Lane | Kartensorten | ZustÀnde |
|---|---|---|
| đ° NetBox | đ„ Hardware · đ Verbindung · đ€ Absprache (je server_id) |
UNKNOWN · RUHE · ALARM · BEREITSCHAFT · BEZEUGT |
| đ Crew | â zeitlose Frage · đŹ Austausch | OFFEN (zeitlos darf sitzen) · IM AUSTAUSCH · ZIELFĂHREND |
Crew hinterlĂ€sst âzeitlose Fragen bzw. zielfĂŒhrenden Austausch". Eine Crew-Karte muss nicht
schlieĂen â zeitlos ist ein gĂŒltiger Endzustand (LĂŒcke = Ăffnung, kein Ticket). Filter-Chips
blenden je nach Frage nur die Ops-Sicht oder nur den Crew-Austausch ein.
Brauchen wir dann noch checkmk? â die scharfe Frage
Im Wort âMonitoring" stecken zwei Fragen, die man trennen muss:
| Frage | Wer beantwortet sie | Rhythmus |
|---|---|---|
| âIst die Kiste jetzt wach / fĂŒllt die Platte?" | Liveness-Sampling (checkmk/icinga) | Sub-Minute, kontinuierlich |
| âWelche Passagen sind passiert, in welchem Vertrags-Zustand?" | Passkante / Room / Board | Ereignis-getrieben |
Kanban+Sternenkarte+Kalender beantworten die zweite Frage exzellent, die erste nicht â ein
Decision-Board weià nichts vom 3-Uhr-Tod, es sei denn, etwas sagt es ihm. Aber die PolaritÀt lÀsst
sich umdrehen: jeder Raum funkt einen Heartbeat-Receipt; die Abwesenheit bewegt die Karte selbst nach
UNKNOWN. Kein externer WĂ€chter nötig, wo wir die Kante End-to-End besitzen â die Stille ist das
Signal, UNKNOWN ist eine echte Spalte, kein Fehler (deckungsgleich mit der Silence-Eskalation aus
dem 22.09-Handout: UNKNOWN ĂŒber einen Node mit Menschen dran schlĂ€gt zum Alarm hin fehl).
Empfehlung, konkret:
- đ Eigene RĂ€ume (2Ă RZ, raid1, eigene Hubs): checkmk nicht ins Zentrum. Heartbeat-Receipt +
UNKNOWN-Verfall + der laufende Ansible---check --diff-Drift-Loop decken Liveness und Sollstand.
Idempotenz ist der Loop. - đ Strato-Kante (fremder Grund): checkmk stehen lassen, wo es heute sitzt (es sieht ohnehin
nur den Strato-Cluster) â verwittern lassen, dort wo der intrinsische Loop es einholt. Rostige
TĂŒr, nicht abgerissene TĂŒr.
checkmk ist damit nicht das Zentrum, sondern Randbefestigung an fremdem Grund, bis der eigene
Grund dort hinreicht.
Wo wir uns selbst bremsen (ehrliche Grenze)
Ein Board, das nur auf Passkanten reagiert, hat eine LĂŒcke: den langsamen Tod ohne Ereignis â die
Platte, die ĂŒber Wochen volllĂ€uft, der Dienst, der noch antwortet aber degradiert. Der Heartbeat sagt
âich lebe", nicht âmir geht's gut". Darum trĂ€gt der Heartbeat-Receipt ein kleines Zustands-Feld
(disk%, load, service-state), nicht nur einen Ping â sonst ist UNKNOWN die einzige Warnung, die je
kommt, und die kommt zu spÀt.
Ehrliche Grenzen (GEBAUT / SPEZIFIZIERT / OPEN / UNKNOWN)
- đ§Ș GEBAUT:
kanban-dashboard.htmlv0.1 â Dojo-Look, zwei Lanes, fĂŒnf NetBox-ZustĂ€nde,
Systemakte-Drawer mit append-only Notizen, Kategorie-Filter. Client-side Mock, kein Backend. - đ SPEZIFIZIERT: Board-als-Passkante, Ein-Graph-drei-Projektionen, Systemakte-Notiz-Disziplin
(additiv/msg_id/read-only), Heartbeat-Receipt-statt-Polling, checkmk-Verwitterung. - ⏠OPEN â
server_id-Schema: kommt es aus NetBox (Device-ID) oder ist es ein eigenes
Bereitschafts-KĂŒrzel? Entscheidet, ob die Karte auf NetBox verlinkt oder eine eigene Akte fĂŒhrt. - ⏠OPEN â Datenquelle: heute erfundene Beispielkarten. Reale Kartenspeisung (NetBox-API +
icinga/checkmk-Events â Board) ist DESIGN_INTENT, nicht gebaut. - ⏠OPEN â Persistenz der Systemakte: wo lebt der append-only Notiz-Log durabel? (Runner-Receipt-
Idiomtoken_log.json, questions-server, oder NetBox-Journal â noch nicht entschieden.) - â UNKNOWN â welche Nodes
life_safety-relevant genug sind, dass ihrUNKNOWNzum Alarm hin
fehlschlĂ€gt. Zuordnung, keine Ableitung â Brankos Wort, nicht der Sensor.
Haltung
Alle bauen Dashboards, die anzeigen. Wir bauen eins, das bezeugt: das Board bewegt sich nicht,
weil jemand einen Status setzt, sondern weil eine Passkante feuerte â und was passierte, steht danach
read-only in der Akte des Knotens, mit dem Auslöser verheiratet und der Bereitschaft, die wach war.
Die Maschinen-Lane und die Crew-Lane teilen dasselbe Blech, ohne einander zu ĂŒberschreiben. Und die
Stille eines Knotens ist kein blinder Fleck, sondern eine eigene Spalte.
Im Wald braucht niemand Angst zu haben â auch nicht vor dem Board, das nur die Wahrheit trĂ€gt, die
geprĂŒft wurde.
đČđŠđ§ #kanban #systemakte #passkante #eingraphdreiprojektionen #niefertig #crewlove