Was ist Heartbeat-Monitoring und wie unterscheidet es sich von Uptime-Monitoring?
Herkömmliches Uptime-Monitoring arbeitet nach dem Pull-Prinzip: Ein Monitoring-Server fragt regelmäßig Ihre Website ab und prüft, ob eine Antwort kommt. Das funktioniert für Webserver, APIs und öffentlich erreichbare Dienste. Aber Cron Jobs, Hintergrundprozesse und interne Tasks sind von außen nicht erreichbar. Sie haben keine URL, die man abfragen könnte.
Heartbeat-Monitoring dreht das Prinzip um: Es arbeitet nach dem Push-Prinzip. Am Ende eines Cron Jobs sendet der Prozess einen HTTP-Request (Ping) an eine vordefinierte URL beim Monitoring-Dienst. Der Monitoring-Dienst erwartet diesen Ping in einem definierten Intervall. Bleibt der Ping aus, wird ein Alert ausgelöst. So wird nicht die Erreichbarkeit geprüft, sondern die Ausführung.
Pull (Uptime-Monitoring): Monitoring fragt den Dienst ab. Geeignet für Websites, APIs, öffentliche Endpunkte. Push (Heartbeat-Monitoring): Der Prozess meldet sich beim Monitoring. Geeignet für Cron Jobs, Backups, Batch-Verarbeitung, interne Prozesse.
Warum Cron Jobs besonders überwachungsbedürftig sind
Cron Jobs haben mehrere Eigenschaften, die sie besonders anfällig für unbemerkte Ausfälle machen. Sie laufen zu definierten Zeiten automatisch ab, oft nachts oder am Wochenende, wenn niemand zuschaut. Wenn ein Cron Job fehlschlägt, schreibt er bestenfalls einen Fehler ins Log, das niemand liest. Die Ausgabe geht an eine lokale Mailbox, die nicht konfiguriert ist.
Typische Ausfallursachen
- Festplatte voll: Ein Backup-Script schlägt fehl, weil kein Speicherplatz mehr verfügbar ist. Das Backup fehlt, aber niemand bemerkt es, bis eine Wiederherstellung benötigt wird
- Abhängigkeit nicht verfügbar: Ein Datenimport-Job kann die Quelldatenbank nicht erreichen, weil sich die Zugangsdaten geändert haben oder der Server neu gestartet wurde
- Timeout: Ein Report-Generator-Job läuft länger als erwartet und wird vom Cron-Daemon abgebrochen, bevor er das Ergebnis speichern kann
- Berechtigungsfehler: Nach einem Server-Update haben sich Dateiberechtigungen geändert. Das Script kann nicht mehr auf die benötigten Verzeichnisse zugreifen
- Crontab gelöscht: Bei einem Server-Update oder einer Migration wird die Crontab versehentlich gelöscht. Die Jobs laufen einfach nicht mehr, ohne Fehlermeldung
- Umgebungsvariablen fehlen: Cron führt Jobs in einer minimalen Shell-Umgebung aus. Umgebungsvariablen, die in der normalen Shell verfügbar sind, fehlen im Cron-Kontext
Heartbeat-Monitoring in der Praxis: Schritt für Schritt
Schritt 1: Heartbeat-Endpunkt erstellen
In XICTRAQ erstellen Sie einen Heartbeat-Monitor mit einem eindeutigen Namen (z. B. DB-Backup-Nightly) und definieren das erwartete Intervall. XICTRAQ generiert eine eindeutige URL, an die Ihr Cron Job den Ping sendet. Optional können Sie eine Grace Period festlegen: eine Toleranzzeit, bevor ein ausgebliebener Ping als Ausfall gewertet wird.
Schritt 2: Cron Job anpassen
Am Ende Ihres Cron-Job-Scripts fügen Sie einen HTTP-Request hinzu, der den erfolgreichen Abschluss meldet. Die einfachste Methode ist ein curl-Befehl: curl -fsS --retry 3 https://api.xictraq.com/api/heartbeat/abc123/ping. Das -f Flag sorgt dafür, dass curl bei einem HTTP-Fehler einen Exit-Code ungleich Null zurückgibt. --retry 3 wiederholt den Ping bei Netzwerkproblemen bis zu drei Mal.
Schritt 3: Erfolg und Fehler unterscheiden
Fortgeschrittenes Heartbeat-Monitoring unterscheidet zwischen Erfolg, Fehler und Timeout. Statt nur einen Ping bei Erfolg zu senden, können Sie den Exit-Code des Scripts mitsenden. XICTRAQ wertet diesen aus und kann zwischen einem fehlgeschlagenen Job (Exit-Code ungleich Null) und einem ausgebliebenen Job (kein Ping empfangen) unterscheiden.
Ein Beispiel: Ihr Backup-Script läuft, aber das Backup schlägt fehl. Ohne Exit-Code-Übermittlung meldet der Ping trotzdem Erfolg. Mit Exit-Code erkennt XICTRAQ, dass der Job zwar gelaufen ist, aber fehlgeschlagen hat, und sendet einen entsprechenden Alert.
Welche Prozesse sollten per Heartbeat überwacht werden?
Grundsätzlich sollte jeder automatisierte Prozess überwacht werden, dessen Ausfall nicht sofort sichtbar ist. Die folgenden Kategorien sind besonders kritisch.
| Prozess | Typisches Intervall | Folge bei Ausfall | Priorität |
|---|---|---|---|
| Datenbank-Backups | Täglich / stündlich | Datenverlust bei Crash | Kritisch |
| E-Mail-Queue-Verarbeitung | Alle 5-15 Minuten | E-Mails werden nicht versendet | Kritisch |
| SSL-Zertifikats-Erneuerung | Wöchentlich / täglich | Abgelaufenes Zertifikat, Website-Ausfall | Kritisch |
| Datenimporte / Synchronisierung | Stündlich / täglich | Veraltete Daten, Inkonsistenzen | Hoch |
| Log-Rotation | Täglich | Festplatte läuft voll | Hoch |
| Report-Generierung | Täglich / wöchentlich | Fehlende Reports, verspätete Entscheidungen | Mittel |
| Cache-Bereinigung | Stündlich / täglich | Veraltete Inhalte, Speicherprobleme | Mittel |
| Sitemap-Generierung | Täglich | Veraltete Sitemap, SEO-Probleme | Mittel |
Grace Periods und Alert-Konfiguration
Nicht jeder verspätete Ping ist ein Problem. Cron Jobs können aus verschiedenen Gründen etwas länger dauern als üblich: höhere Datenmenge, langsamere Datenbankabfragen oder kurzzeitige Netzwerkprobleme. Die Grace Period definiert, wie lange nach dem erwarteten Ping-Zeitpunkt gewartet wird, bevor ein Alert ausgelöst wird.
Die richtige Grace Period hängt vom Prozess ab. Ein Backup-Job, der normalerweise 10 Minuten dauert, kann bei großer Datenmenge auch 30 Minuten benötigen. Eine Grace Period von 20 Minuten über dem normalen Intervall verhindert Fehlalarme, erkennt aber echte Ausfälle noch rechtzeitig. XICTRAQ ermöglicht die individuelle Konfiguration der Grace Period pro Heartbeat-Monitor.
Mehrstufige Alerts
- Warnung (Grace Period überschritten): Der Ping ist verspätet, aber noch innerhalb einer erweiterten Toleranz. E-Mail an das Team
- Kritisch (Ping ausgeblieben): Kein Ping innerhalb des Intervalls plus Grace Period. E-Mail + Webhook + optional SMS
- Wiederherstellung: Wenn der nächste Ping eintrifft, wird automatisch eine Entwarnung gesendet
- Wiederholter Ausfall: Mehrere aufeinanderfolgende Misses eskalieren den Alert an zusätzliche Empfänger
Integration in bestehende Workflows
Shell-Scripts
Für Shell-basierte Cron Jobs ist die Integration am einfachsten. Ein curl- oder wget-Befehl am Ende des Scripts genügt. Wichtig: Platzieren Sie den Ping nach der Erfolgslogik, nicht pauschal am Ende. Wenn das Script fehlschlägt, soll kein Erfolgs-Ping gesendet werden.
Python, Node.js und andere Sprachen
In Anwendungscode verwenden Sie die HTTP-Bibliothek der jeweiligen Sprache. In Python: requests.get('https://api.xictraq.com/api/heartbeat/abc123/ping'). In Node.js: fetch('https://api.xictraq.com/api/heartbeat/abc123/ping'). Wrappen Sie den Ping in einen try-catch-Block, damit ein Netzwerkfehler beim Ping nicht den gesamten Job zum Absturz bringt.
Kubernetes CronJobs
In Kubernetes-Umgebungen werden Cron Jobs als CronJob-Ressourcen definiert. Der Heartbeat-Ping wird als letzter Schritt im Container-Entrypoint oder als Sidecar-Container konfiguriert. Kubernetes bietet zwar eigene Job-Monitoring-Mechanismen, aber Heartbeat-Monitoring ergänzt diese um eine externe Perspektive, die auch Kubernetes-eigene Probleme (Scheduler-Ausfall, Node-Draining) erkennt.
Heartbeat-Monitoring für Backups: Die wichtigste Anwendung
Backups sind die wichtigste Anwendung für Heartbeat-Monitoring. Ein Backup, das nicht erstellt wurde, ist wertlos, und Sie erfahren davon erst, wenn Sie es brauchen. Das ist der denkbar schlechteste Zeitpunkt. Laut einer Veeam-Studie haben 58 Prozent der Unternehmen schon einmal erlebt, dass ein benötigtes Backup fehlte oder unvollständig war (Veeam Data Protection Trends Report).
Heartbeat-Monitoring für Backups sollte nicht nur die Ausführung prüfen, sondern auch den Erfolg. Senden Sie zusätzlich zum Ping die Backup-Größe und -Dauer als Parameter mit. XICTRAQ kann dann auch anomale Backups erkennen: ein Backup, das plötzlich nur noch 10 % der üblichen Größe hat, deutet auf ein Problem hin, auch wenn der Job selbst erfolgreich abgeschlossen hat.
Stille Ausfälle erkennen: Reale Szenarien
Der Let's-Encrypt-Renew-Job schlägt seit zwei Wochen fehl, weil sich die DNS-Konfiguration geändert hat. Ohne Heartbeat-Monitoring fällt das erst auf, wenn das Zertifikat abläuft und die Website nicht mehr erreichbar ist.
Die Festplatte des Backup-Servers ist voll. Das Backup-Script scheitert jede Nacht, aber niemand liest das Cron-Log. Erst bei einem Datenverlust wird der fehlende Backup bemerkt.
Der Prozess, der die E-Mail-Warteschlange verarbeitet, ist abgestürzt. Kundenbenachrichtigungen, Auftragsbestätigungen und Passwort-Resets werden nicht versendet. Support-Anfragen häufen sich.
Ein nächtlicher Import-Job scheitert an geänderten API-Zugangsdaten. Die Produktdaten im Shop sind veraltet, aber die Website zeigt keine Fehlermeldung.
Heartbeat-Monitoring und Uptime-Monitoring kombinieren
Heartbeat-Monitoring ersetzt kein Uptime-Monitoring, sondern ergänzt es. Uptime-Monitoring prüft die Erreichbarkeit Ihrer Website und API-Endpunkte. Heartbeat-Monitoring prüft die Ausführung interner Prozesse. Zusammen ergeben sie ein vollständiges Bild der Systemgesundheit.
XICTRAQ integriert beide Monitoring-Typen in ein einziges Dashboard. Sie sehen auf einen Blick: Ist die Website erreichbar? Laufen alle Cron Jobs? Sind die Security Headers korrekt? Ist das SSL-Zertifikat gültig? Gibt es DNS-Anomalien? Ist die DSGVO-Compliance gegeben?
Best Practices für Heartbeat-Monitoring
- Jeder kritische Job bekommt einen eigenen Heartbeat: Fassen Sie nicht mehrere Jobs in einen Ping zusammen. Wenn einer von drei Jobs fehlschlägt, wissen Sie sonst nicht, welcher
- Ping nur bei Erfolg senden: Der Heartbeat-Ping sollte nur nach erfolgreicher Ausführung gesendet werden, nicht pauschal am Script-Ende
- Exit-Codes mitsenden: Übermitteln Sie den Exit-Code oder ein Statusfeld, damit das Monitoring zwischen Erfolg und Fehler unterscheiden kann
- Grace Periods individuell konfigurieren: Ein 5-Minuten-Job braucht eine andere Grace Period als ein 2-Stunden-Import
- Netzwerkfehler beim Ping abfangen: Ein fehlgeschlagener Ping-Request darf nicht den gesamten Job als fehlgeschlagen markieren. Nutzen Sie Retry-Logik
- Alerting-Ketten definieren: Wer wird bei einem Cron-Job-Ausfall zuerst benachrichtigt? Wer eskaliert nach 30 Minuten ohne Reaktion?
XICTRAQ: Heartbeat-Monitoring als Teil der Gesamtlösung
Heartbeat-Monitoring ist bei XICTRAQ nahtlos in die bestehende Monitoring-Infrastruktur integriert. Cron-Job-Ausfälle erscheinen im selben Dashboard wie Website-Ausfälle, Performance-Probleme und Security-Findings.
- Einheitliches Dashboard: Uptime-Monitoring, Heartbeat-Monitoring und Security-Scans auf einen Blick
- Flexible Intervalle: Von minütlich bis wöchentlich, mit individueller Grace Period pro Monitor
- Mehrere Benachrichtigungskanäle: E-Mail, Webhook, Slack-Integration für jeden Heartbeat-Monitor einzeln konfigurierbar
- Historische Daten: Vollständige Ping-Historie mit Zeitstempel, Dauer und Status für Fehleranalyse und Trendauswertung
- Reporting: Heartbeat-Status in den regulären Monitoring-Reports enthalten
Starten Sie jetzt mit einer kostenlosen Demo und sehen Sie, wie XICTRAQ Ihre Cron Jobs überwacht. Oder registrieren Sie sich direkt, um stille Ausfälle zuverlässig zu erkennen, bevor sie Schaden anrichten.
Was ist der Unterschied zwischen Heartbeat-Monitoring und Uptime-Monitoring?
Was passiert, wenn der Heartbeat-Ping nicht zugestellt werden kann?
Kann ich den Exit-Code meines Cron Jobs mitsenden?
Wie viele Heartbeat-Monitore kann ich einrichten?
Funktioniert Heartbeat-Monitoring auch für Docker-Container und Kubernetes?
Was ist eine sinnvolle Grace Period?
Dieser Artikel basiert auf Daten von: Data Protection Trends (Veeam).