Der unsichtbare Ausfall
Webserver stürzen lautstark ab. Datenbanken werfen Fehler. API-Endpunkte liefern 500er. Aber Cronjobs? Die scheitern lautlos.
Ein Backup-Skript, das seit drei Wochen nicht mehr lief. Ein Abrechnungsjob, der unbemerkt Datensätze überspringt. Eine Datensynchronisation, die mit Fehlern endete – aber niemand hat hingeschaut. Das sind die Ausfälle, die keinen Alarm auslösen, bis irgendwann jemand den Schaden entdeckt.
Typische Fehlermuster bei Cronjobs
1. Der Job wurde nie ausgeführt
Der grundlegendste Ausfall: Der Cron-Daemon hat den Job gar nicht gestartet. Ursachen sind Server-Neustarts, falsch konfigurierte Zeitzonen oder Syntaxfehler in der Crontab.
2. Der Job lief, aber schlug fehl
Das Skript wurde ausgeführt, beendete sich aber mit einem Exit-Code ungleich Null. Vielleicht fehlte eine Abhängigkeit, eine Datenbankverbindung lief in einen Timeout, oder mitten in der Ausführung ging der Speicherplatz aus.
3. Der Job lief, dauerte aber zu lange
Ein nächtlicher Report, der normalerweise 5 Minuten braucht, läuft plötzlich 3 Stunden. Vielleicht wird er trotzdem fertig – aber er belegt Ressourcen und blockiert womöglich andere Jobs.
4. Der Job lief zu oft
Doppelte Crontab-Einträge oder überlappende Zeitpläne können dazu führen, dass Jobs gleichzeitig laufen – mit Race Conditions und Datenkorruption als Folge.
Die Heartbeat-Lösung
Die wirksamste Methode, um Cronjobs zu überwachen, ist das Heartbeat-Pattern:
- Legen Sie für jeden Cronjob einen eindeutigen Monitoring-Endpunkt (URL) an
- Hängen Sie an Ihr Cron-Skript einen
curl-Aufruf an - Wenn der Heartbeat innerhalb des erwarteten Intervalls ausbleibt, wird ein Alarm ausgelöst
# Beispiel-Crontab-Eintrag mit Heartbeat
0 2 * * * /usr/local/bin/backup.sh && curl -s https://hb.xitoring.com/your-id
Dieser Ansatz erkennt alle vier Fehlermuster:
- Nicht gelaufen: Kein Heartbeat empfangen
- Fehlgeschlagen: Das
&&sorgt dafür, dasscurlnur bei Erfolg gefeuert wird - Zu langsam: Erwartetes Intervall überschritten
- Zu oft: Mehrere Heartbeats in einem unerwarteten Zeitfenster
Mehr als nur Basis-Monitoring
Fortgeschrittenes Cronjob-Monitoring erfasst zusätzlich:
- Exit-Codes: Unterscheiden zwischen verschiedenen Fehlertypen
- Ausführungsdauer: Trendanalysen zeigen schleichende Performance-Verschlechterung
- Ausführungshistorie: Vollständiger Audit-Trail für Compliance und Debugging
Erste Schritte mit Xitoring
Das Heartbeat- und Cronjob-Monitoring von Xitoring liefert Ihnen pro Job eine eindeutige URL, konfigurierbare Intervalle mit Karenzzeit, Tracking der Ausführungsdauer und Reporting der Exit-Codes – ganz ohne Agent-Installation auf Ihrem Server.
