Wer bewacht den Wächter
Die Überwachung lief auf genau der Maschine, die regelmäßig ausfällt. Der Umzug auf zwei ausgemusterte Bürorechner kostete null Franken — und brachte drei Fehler ans Licht, die niemand gemeldet hätte.
Ein Überwachungssystem hat eine unangenehme Eigenschaft: Es kann seinen eigenen Tod nicht melden. Wenn es auf derselben Maschine läuft wie das, was es überwacht, verschwinden beide gemeinsam — und zurück bleibt Stille, die aussieht wie Ruhe.
Genau so war es hier aufgestellt. Der gesamte Überwachungsstapel des Vereins — Zeitreihen, Alarme, Statusseite, Fehlersammlung — lief auf der KI-Workstation. Also auf der Maschine, die von allen unseren am unzuverlässigsten ist. Im Juli stand ihre Zeitreihen-Datenbank neunzehn Tage still, ohne dass ein einziger Alarm kam: Die Statusseite lieferte brav „0 von 0 online“, und weil niemand etwas meldete, hielt man die Stille für Ruhe.
Was verlagert wurde
An einem Tag im August ist der Stapel umgezogen — auf zwei Bürorechner von 2015 und 2016, die seit Wochen im Haus standen und für die wir schon einmal 750 bis 1050 Franken einplanen wollten, bevor auffiel, dass es sie längst gibt.
| vorher | nachher | |
|---|---|---|
| Überwachungsdienste auf der KI-Workstation | 17 | 4 |
| Zeitreihen, Alarme, Statusseite, Fehlersammlung | KI-Workstation | Bürorechner „G2-B“ |
| Wächter über den Hauptserver | niemand | Bürorechner „G2-A“ |
| Geocoder (44 GB Index) | KI-Workstation | G2-B |
Auf der Workstation bleiben nur noch vier Dienste — und die messen sie selbst. Ihre Zahlen schickt sie jetzt aktiv hinüber, statt abgefragt zu werden: Aus dem virtualisierten Linux heraus ist die eigene Netzwerkadresse nämlich nicht erreichbar, ein bekanntes Ärgernis. Wer nicht abgeholt werden kann, liefert eben selbst.
Die Produktionsdatenbank lag auf einer verdächtigen Platte
Beim Nachmessen fiel etwas auf, das mit der Überwachung nichts zu tun hatte: Die Hauptdatenbank — 64 einzelne Datenbanken, gut drei Gigabyte — schrieb auf eine externe USB-Platte. Auf genau die Platte, die im Juli einen einzelnen Dateizugriff verschluckt und damit den ganzen Server acht Stunden lahmgelegt hatte. Und auf ein Modell, für das der Hersteller 2023 einen Datenverlust-Fehler einräumen musste.
Der Umzug auf die interne SSD dauerte zwei Minuten Ausfall. Kopiert wurden 29 355 Dateien, 4 449 621 604 Bytes — Quelle und Ziel byte-identisch geprüft, bevor umgeschaltet wurde. Das Original blieb als Rückweg liegen.
Ein Nebeneffekt, der uns gefällt: Vorher lagen Daten und Sicherungen auf derselben Platte. Jetzt liegen die Daten intern, die Sicherungen auf der USB-Platte und eine verschlüsselte Kopie auf einer dritten Maschine. Drei Träger statt zwei — ohne dass jemand etwas dafür kaufen musste.
Drei Fehler, die niemand gemeldet hätte
Das Unangenehmste an dem Tag waren nicht die Umzüge, sondern was dabei auffiel.
Die Selbstheilung war wirkungslos. Ein Wachhund prüft alle fünf Minuten, ob Container laufen, und startet fehlende neu. Beim Testen zeigte sich: Er startete gar nichts mehr. Eine Hilfsfunktion überschrieb versehentlich die Laufvariable der Schleife, die sie aufrief — danach wurde jeder Container gegen denselben falschen Namen geprüft und übersprungen. Ins Protokoll schrieb er dabei beruhigend „Alle Container laufen“. Wie lange das so war, lässt sich nicht mehr feststellen.
Der neue Stapel überlebte den ersten Neustart nicht. Als die Netzwerkkabel getauscht wurden, startete der Bürorechner neu. Von fünfzehn Diensten kam einer wieder hoch — die Autostart-Integration fehlte. Zwei Stunden lang war die frisch umgezogene Überwachung tot, und niemand meldete es, weil die Alarme über genau diesen Stapel laufen. Dahinter lag noch eine zweite Falle: Der Autostart-Dienst startet nur Container mit einer bestimmten Neustart-Regel, und vierzehn der fünfzehn hatten die andere. Hätten wir nur den Dienst eingeschaltet, wäre beim nächsten Neustart wieder nur einer hochgekommen.
Eine unserer eigenen Prüfungen war zu schwach. Die neue Wächter-Ebene fragte, ob die Messwerte der KI-Workstation existieren — nicht, ob sie frisch sind. Zeitreihen verschwinden aber nicht, wenn nichts mehr ankommt; sie stehen einfach still. Der Zustrom war über eine Stunde unterbrochen, und die Prüfung meldete durchgehend „in Ordnung“. Sie fragt jetzt nach dem Alter des jüngsten Werts.
Alle drei sind behoben und im Betriebsprotokoll festgehalten — mit der Ursache, nicht nur mit der Lösung. Der Wächter auf dem ersten Bürorechner schaut inzwischen auch auf den zweiten: vier Ebenen für den Hauptserver, fünf für den Überwachungsrechner.
Das Netzwerk: dreimal dieselbe Überraschung
Zwei der drei Bürorechner hingen mit 100 Mbit am Netz statt mit 1000 — bei Hardware, die Gigabit kann, an einem Switch, der Gigabit kann. Die Fehlerzähler standen auf null, der Link war sauber ausgehandelt. Genau das ist der Hinweis: Ein beschädigtes Kabel produziert Fehler. Ein Kabel, das schlicht kein Gigabit kann — weil nur zwei statt vier Adernpaare aufgelegt sind — handelt fehlerfrei die kleinere Geschwindigkeit aus.
Drei Kabel getauscht, dreimal die Verzehnfachung. Der unmittelbare Nutzen war messbar: Der 44-Gigabyte-Index des Geocoders wanderte mit 115 Megabyte pro Sekunde in knapp sieben Minuten hinüber. Über die alte Leitung wären es rund zwölf gewesen — eine Stunde.
Was das gekostet hat
Nichts. Die drei Rechner standen im Haus. Der Acht-Port-Switch, für den 28 Franken vorgesehen waren, fand sich eine Etage höher. Die Kabel lagen in der Schublade. Was fehlte, war nicht Material, sondern das Zusammentragen.
Das ist keine Sparsamkeits-Anekdote, sondern die praktische Seite eines unserer Grundsätze: Langlebigkeit heißt zuerst, das Vorhandene zu kennen. Ein Gerät, von dem man nicht weiß, dass man es hat, ist so gut wie nicht vorhanden — und ein Einkaufszettel, der vor der Bestandsaufnahme geschrieben wird, ist Verschwendung mit Beleg.
Was wir daraus mitnehmen
Ein Messgerät, das nichts anzeigt, wird für ein ruhiges Messgerät gehalten. Das gilt für die Statusseite mit „0 von 0 online“ genauso wie für einen Wachhund, der „alles läuft“ ins Protokoll schreibt, während er nichts prüft, und für eine Abfrage, die die Existenz einer Zahl mit ihrer Aktualität verwechselt.
Der einzige Schutz dagegen ist unbequem: Man muss prüfen, ob die Prüfung prüft. Wir haben an diesem Tag jede neue Ebene absichtlich scheitern lassen, bevor wir ihr geglaubt haben — einen Container hart abgeschossen, einen Ausfall vorgetäuscht, den Alarmweg bis zur zugestellten Nachricht verfolgt. Drei der Fehler oben wurden genau dadurch gefunden.
Was Wer bewacht den Wächter für den Verein verkörpert
-
EigenbetriebEigene Infrastruktur, quelloffener Stack.
-
LanglebigkeitBewährte Stacks, gute Doku.
-
AchtsamkeitKeine Engagement-Tricks.
-
UnabhängigkeitSchweizer Verein, keine Investoren.
Was offen ist
- Der Wächter auf dem ersten Bürorechner wird selbst nur durch ein tägliches Lebenszeichen abgesichert. Bleibt es aus, merkt man es — aber frühestens am nächsten Tag.
- Der dritte Rechner, auf dem das Agentenlabor läuft, wird von niemandem überwacht. Beim Neustart während der Kabelarbeiten kam er sauber hoch — das war Glück, nicht Kontrolle.
- Die Metriken der Dienste selbst (nicht nur ihrer Außenhaut) sind weiterhin unerreichbar, weil sie bewusst nur auf dem lokalen Netzwerkgerät lauschen. Der saubere Weg wäre ein Agent, der sie von innen abholt und weiterschickt.
- Ein API-Zugang und ein Tunnel-Schlüssel sind während der Arbeit in Sitzungsprotokolle geraten und müssen gewechselt werden. Beim Tunnel ist die Ursache bekannt und behoben — auf der neuen Maschine steht der Schlüssel in einer geschützten Datei statt in der Kommandozeile.
Weitere Infrastruktur dieser Art
Selbst betriebener Dienst — Container auf Vereins-Hardware, statt SaaS-Vertrag.
-
ForgejoEigenes Git-Hosting für alle Vereins-Repos — Quellcode, Issues, Pull-Requests.
-
VerdaccioEigene npm-Registry für die @mana/*-Pakete der Plattform.
-
StalwartEigener Mail-Server für transaktionale Emails und Vereins-Korrespondenz — SMTP, IMAP, JMAP.
-
Souveräne EntwicklungWir können unsere Apps inzwischen mit offenen Terminal-Werkzeugen und eigenen oder offenen Modellen bauen — nicht mehr nur mit Claude Code und Anthropic.
-
MinIOS3-kompatibler Object-Storage für alle Vereins-Dateien — Buckets pro App, Signed URLs mit Ablauf.
-
PostgresEine Postgres-Datenbank pro Service — schema-isoliert, mit Drizzle-Migrationen, keine geteilten Tabellen.
Wer bewacht den Wächter ist ein Baustein der Vereins-Infrastruktur — eine von drei Schichten unter den Plattform-Services und Apps.