Heartbeat: Cronjobs, Backups und Skripte überwachen
Ein Heartbeat dreht die Überwachung um: Nicht wir rufen etwas ab, sondern Ihr Job meldet sich bei uns, wenn er gelaufen ist. Bleibt die Meldung aus, oder meldet der Job einen Fehler, bekommen Sie einen Alarm. So fällt ein stilles Backup, ein hängender Cronjob oder ein abgestürztes Skript auf, bevor es jemand vermisst.
Einrichten
Unter Heartbeat auf „Hinzufügen“ klicken, einen Namen vergeben (z. B. „Nacht-Backup“) und das Intervall wählen, in dem der Job normalerweise läuft. Die Karenzzeit ist die Zeit, die wir darüber hinaus warten, bevor der Alarm kommt.
Der Monitor hat eine eigene Adresse mit einem geheimen Token. Der Job ruft sie am Ende jedes Laufs auf. Fertige Beispiele für curl, PHP, Python und Node.js zeigt der Knopf „Einbinden“.
Über die Glocke wählen Sie, wer wie benachrichtigt wird (E-Mail, Slack, Teams, SMS …).
Erfolg, Fehler und Beendigungscode
Es gibt drei gleichwertige Wege, einen Fehler zu melden. Ohne Angabe gilt jeder Aufruf als erfolgreich.
| Aufruf | Bedeutung |
|---|---|
…/heartbeat/TOKEN | Job lief erfolgreich |
…/heartbeat/TOKEN/fail | Job ist fehlgeschlagen |
…/heartbeat/TOKEN?status=fail | Job ist fehlgeschlagen (gleich wie /fail) |
…/heartbeat/TOKEN?code=0 | Beendigungscode 0 = alles gut |
…/heartbeat/TOKEN?code=2 | jeder Code ungleich 0 = Fehler (wie bei Shell-Skripten üblich) |
Am bequemsten ist der Beendigungscode im Cronjob: Er übernimmt automatisch das Ergebnis Ihres Skripts, ohne dass Sie selbst prüfen müssen.
/pfad/zum/backup.sh; curl -fsS -m 10 --retry 3 "https://…/api/monitoring/heartbeat/TOKEN?code=$?" > /dev/null
Eine Meldung mitschicken
Zusätzlich kann der Job eine kurze Meldung mitgeben, zum Beispiel was er getan hat („Backup 2,3 GB“) oder warum er scheiterte („Datenbank nicht erreichbar“). Die Meldung ist unabhängig vom Ergebnis: Sie funktioniert bei erfolgreichen und bei fehlgeschlagenen Läufen und ist immer optional.
- Als Parameter in der Adresse:
?msg=Backup%202,3%20GB(Sonderzeichen müssen URL-kodiert sein; mit curl erledigt das--data-urlencode). - Als Formularfeld
msg(curl -d/--data-urlencode "msg=…") oder als reiner Text im Körper einer POST-Anfrage. - Höchstens 300 Zeichen; Längeres wird abgeschnitten, Zeilenumbrüche werden zu Leerzeichen.
- Verbinden lässt sich alles:
…/heartbeat/TOKEN?code=1&msg=Datenbank%20nicht%20erreichbar
# erfolgreich, mit Meldung
curl -fsS -m 10 --data-urlencode "msg=Backup fertig: 2,3 GB" "https://…/api/monitoring/heartbeat/TOKEN"
# fehlgeschlagen, mit Grund
curl -fsS -m 10 --data-urlencode "msg=Datenbank nicht erreichbar" "https://…/api/monitoring/heartbeat/TOKEN/fail"
Wo Sie die Meldungen sehen
- Auf der Detailseite des Monitors im Meldungsprotokoll: Zeit, Ergebnis (OK/Fehler) und Ihre Meldung zu jedem Aufruf (30 Tage lang).
- Im Alarm, wenn der Job einen Fehler meldet: „Job meldet einen Fehler: Ihre Meldung“. So erfahren Sie den Grund direkt in der Mail oder im Chat.
Wann gibt es einen Alarm?
- Job meldet einen Fehler (
/fail,status=failoder ein Code ungleich 0). - Meldung bleibt aus: seit der letzten Meldung ist mehr Zeit vergangen als Intervall plus Karenzzeit.
- Beim nächsten erfolgreichen Aufruf folgt eine Entwarnung.
Häufige Fragen
Kann jeder die Adresse aufrufen? Wer den Token kennt, kann Meldungen senden. Behandeln Sie die Adresse wie ein Passwort; im Monitor lässt sie sich jederzeit ersetzen, indem Sie den Monitor neu anlegen. Falsche Token werden mit 404 abgewiesen, außerdem gilt ein Limit pro Minute.
Muss der Aufruf GET oder POST sein? Beides funktioniert.
Was, wenn mein Server die Adresse nicht erreicht? Dann bleibt die Meldung aus und Sie bekommen nach Intervall plus Karenzzeit den Alarm „Meldung ausgeblieben“. Der Job selbst sollte durch einen fehlgeschlagenen Aufruf nicht abbrechen (-m 10 begrenzt die Wartezeit).
Wie viele Heartbeats darf ich anlegen? Jeder Monitor zählt wie eine überwachte Website in Ihr Paket-Kontingent. Die Technik ist ab Monitor Basic enthalten.
Die vollständige Schnittstelle steht in der API-Referenz unter „Heartbeat melden“.