Ein Heartbeat-Monitor überwacht einen Cron-Job, ein Backup-Skript oder einen geplanten Task, indem er darauf wartet, dass sich dieser meldet — gedacht für alle, die wissen müssen, wenn ein Hintergrundjob stillschweigend aufhört zu laufen.
Übersicht
- Die meisten Monitore greifen aktiv auf etwas zu, um es zu prüfen; ein Heartbeat-Monitor funktioniert umgekehrt — Ihr Job ruft InfraNest jedes Mal auf, wenn er fertig ist.
- Wenn der Aufruf nicht rechtzeitig eintrifft, benachrichtigt InfraNest Sie.
- Dies ist die beste Methode, um einen Job zu erkennen, der aufhört zu laufen, ohne einen offensichtlichen Fehler auszulösen.
Einen Monitor einrichten
- Gehen Sie zu Monitoring und wählen Sie Add a monitor.
- Wählen Sie Heartbeat / Cron monitor als Typ.
- Geben Sie ihm einen Monitorname, den Sie in einer Benachrichtigung wiedererkennen — „Nächtliches Datenbank-Backup“ ist besser als „Job 1“.
- Stellen Sie das Prüfintervall darauf ein, wie oft der Job laufen soll.
- Legen Sie eine Karenzzeit (Sekunden) fest — zusätzliche Zeit, die erlaubt ist, bevor der Job als verspätet gilt. Ein Backup, das normalerweise vier Minuten dauert, gelegentlich aber acht, benötigt eine Karenzzeit, die deutlich länger als diese Überschreitung ist.
- Wählen Sie Monitor erstellen.
Für diesen Typ geben Sie keine URL ein — InfraNest erstellt beim Speichern automatisch eine für Sie.
Ihren Job zum Melden bringen
- Öffnen Sie den Monitor und suchen Sie die Ping-URL sowie einen fertigen Einzeiler zum Einfügen.
- Fügen Sie diese Zeile an das Ende Ihres Skripts oder Cron-Jobs ein, sodass sie nur ausgeführt wird, wenn der Job tatsächlich erfolgreich war:
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 https://your-infranest-url/api/heartbeat/your-uuid
Das && ist entscheidend: Es bedeutet, dass die Meldung nur erfolgt, wenn das Backup selbst erfolgreich beendet wurde. Ein fehlgeschlagener Job bleibt dann stumm, und genau diese Stille löst den Alarm aus.
- Verwenden Sie Kopieren, statt die URL erneut einzutippen — die darin enthaltene Kennung ist eindeutig für diesen Monitor.
Was als Nächstes passiert
- Jede Meldung markiert den Monitor als Aktiv und speichert den Zeitpunkt als Letzter Ping.
- Ein brandneuer Monitor bleibt ausstehend, bis sein erstes Zeitfenster verstrichen ist, sodass Sie Zeit haben, die Meldung einzurichten, ohne dafür benachrichtigt zu werden.
- Wenn innerhalb des Prüfintervalls plus der Karenzzeit (Sekunden) nichts eintrifft, wechselt der Monitor auf Inaktiv und eröffnet einen Vorfall, sodass Ihre üblichen Benachrichtigungskanäle ausgelöst werden.
- Die nächste Meldung löst den Vorfall auf und informiert Sie, dass alles wieder funktioniert — Sie müssen ihn nicht manuell schließen.
NoteMonitor pausieren kann bei einem Heartbeat-Monitor gefahrlos verwendet werden: Die Ping-URL antwortet weiterhin normal, sodass ein Job, der sie noch aufruft, keine Fehler meldet. InfraNest hört einfach auf zu überwachen, bis Sie Monitor fortsetzen wählen.
TipBehandeln Sie die Ping-URL wie ein Geheimnis. Wer sie kennt, kann Ihren Job als fehlerfrei melden — was einen echten Ausfall verbergen würde.
Fehlerbehebung
- Noch kein Heartbeat empfangen beim Monitor bedeutet, dass InfraNest überhaupt nichts vom Job gehört hat. Führen Sie die curl-Zeile manuell auf derselben Maschine aus: Wird der Monitor dadurch grün, liegt das Problem in Ihrem Skript, nicht hier.
- Wenn die Maschine keinen ausgehenden Internetzugang hat, kann die Meldung nicht ankommen — erlauben Sie ausgehendes HTTPS zu InfraNest.
- Ein Monitor, der jede Nacht zur gleichen Zeit Alarm schlägt, hat meist eine Karenzzeit (Sekunden), die kürzer ist als die tatsächliche maximale Laufzeit des Jobs.
War dieser Artikel hilfreich?