Wie man ein automatisiertes System überwacht, nachdem es läuft
Das ist eine der tiefsten Lektionen, die ich nach dem Aufbau mehrerer automatisierter Pipelines gelernt habe: **Das System darf nicht mitten in der Nacht ausfallen und du darfst es erst am nächsten Tag bemerken**.
Ich hatte einmal einen Cron-Job eingerichtet und dachte, nachdem ich ihn eingestellt hatte, könnte ich ihn unbeaufsichtigt lassen. Nach einer Woche habe ich den Status geprüft und festgestellt, dass er seit 3 Tagen stillgelegt war – die Datenbankverbindung war abgebrochen, ohne jegliche Benachrichtigung. Seitdem habe ich eine komplette Überwachungsphilosophie entwickelt, die ich heute mit euch teilen möchte.
**Erste Ebene: Überwachung des Ausführungszyklus**
Die grundlegendste Methode ist, den last_run_at von Cron zu prüfen. Meine Regel lautet: **Wenn die letzte Ausführungszeit das erwartete Intervall um das 2-fache überschreitet, sofort Alarm auslösen**. Zum Beispiel, wenn ein Job alle 5 Minuten laufen sollte und last_run_at mehr als 10 Minuten zurückliegt, wird sofort eine Telegram-Benachrichtigung gesendet. Diese Kennzahl ist extrem effektiv – etwa 90 % der "Systemausfälle" können innerhalb einer Stunde erfasst werden, anstatt passiv zu warten, bis die Fachabteilung es entdeckt.
**Zweite Ebene: API-Fallback-Mechanismus**
API-Instabilität ist der Normalfall. Meine Vorgehensweise: **Wenn 3 aufeinanderfolgende API-Anfragen fehlschlagen, wird automatisch für 24 Stunden abgeschaltet**. Warum 3 Mal? Weil 1-2 Mal möglicherweise Netzwerkprobleme sind, aber 3 aufeinanderfolgende Fehler zeigen, dass wirklich ein Problem vorliegt. Während der Abschaltzeit versucht das System nicht mehr, die API aufzurufen, um wertvolle API-Kontingente und Log-Speicherplatz nicht weiter im Fehlerzustand zu verschwenden. Das ist viel effektiver als blindes Wiederholen.
**Dritte Ebene: Persistenz der Statusdatei**
Jedes Mal, wenn das System läuft, schreibe ich den aktuellen Status – Erfolgsanzahl, Fehlermeldungen, Zeitstempel, Fehlerinfos – in eine Statusdatei. Diese Datei behalte ich 30 Tage lang. Was ist der Vorteil davon? Man kann zurückverfolgen – "Warum ist die Posting-Rate letzten Mittwoch plötzlich auf 60 % gefallen?" – einfach die Logs durchsehen und man hat die Antwort. Die Statusdatei nimmt keinen Platz ein, bietet mir aber eine vollständige Audit-Kette.
**Vierte Ebene: Wöchentliche manuelle Überprüfung**
Jede Woche nehme ich mir 15 Minuten Zeit, um vom System automatisch einen Bericht generieren zu lassen: Erfolgsquote bei Postings, Fehlerverteilung, Wortzählung, ob es anomale Schwankungen gab. Es muss nicht sehr häufig sein, aber **man darf sich nicht vollständig auf automatisierte Alarme verlassen**. Manchmal wird ein Trend, bei dem die Fehlerquote von 2 % auf 4 % steigt, von der automatischen Überwachung nicht erfasst, aber man sieht sofort, "Hier sollte man anfangen, aufmerksam zu sein".
**Kernverständnis**
Automatisierung aufzubauen ist schnell, aber **die Überwachung richtig zu machen, gibt einem das Vertrauen, nicht ständig nachsehen zu müssen**. Meine Erfahrung ist: Automatische Alarme sind für Notfälle verantwortlich (System ist komplett ausgefallen), während die manuelle Überprüfung für Trendprobleme zuständig ist (schleichender Rückgang). Nur in Kombination lebt dieses System langfristig. Andernfalls ist die schlauste Automatisierung nur eine Zeitbombe in einer Blackbox.
$BTC #DevOps #automatisierung