Cron-Jobs scheitern stillschweigend. Ein Backup-Skript stoppt nach einem Serverumzug, eine Passwortrotation unterbricht den nächtlichen Import oder eine volle Festplatte führt dazu, dass der Rechnungsjob um 3 Uhr morgens abstürzt. Da nichts ausfällt, bleibt ein normaler Verfügbarkeitsmonitor grün und Sie erfahren es erst Wochen später, wenn Sie das Backup benötigen oder ein Kunde fragt, wo sich seine Rechnung befindet. Die Herzschlagüberwachung schließt diese Lücke. Diese Anleitung zeigt, wie es funktioniert und wie Sie es in wenigen Minuten kostenlos einrichten.
Was ist Herzschlagüberwachung?
Ein regelmäßiger Uptime-Monitor überprüft Ihre Website von außen. Ein Heartbeat-Monitor funktioniert umgekehrt: Ihr geplanter Job wird eingecheckt. Sie erhalten eine eindeutige URL und Ihr Job ruft diese jedes Mal auf, wenn er abgeschlossen ist. Wenn der Anruf nicht rechtzeitig eintrifft, weiß der Monitor, dass etwas schief gelaufen ist, und alarmiert Sie.
Damit wird jede Art von stillem Versagen auf einmal erfasst:
- Der Job wurde nie begonnen. Der
crontab-Eintrag ging verloren, der Server wurde ohne den Scheduler neu gestartet oder der Container wurde ersetzt. - Der Job ist abgestürzt. Ein Fehler hat das Skript gestoppt, bevor es das Ende erreicht hat.
- Der Job hängt. Es wurde gestartet, bleibt aber in einer gesperrten Datenbank oder einer langsamen API hängen und wird nie beendet.
- Der ganze Server ist weg. Kein Server, kein Ping, sodass Sie davon erfahren, auch wenn niemand anderes zuschaut.
Welche geplanten Aufgaben sollten Sie überwachen?
Beginnen Sie mit den Jobs, die Sie am meisten kosten, wenn sie aufhören, ohne dass es jemand merkt:
- Backups von Datenbanken und Dateien. Ein Backup, das Sie nie überprüfen, ist ein Backup, das Sie möglicherweise nicht haben.
- Abrechnungs- und Rechnungsskripte, Abonnementverlängerungen und Zahlungsabgleich.
- Datenimporte und Synchronisierungen zwischen Ihrem Shop, Ihrem CRM, Ihrem Lager oder einem Lieferanten-Feed.
- E-Mail-Warteschlangen und Newsletter, die von einem geplanten Mitarbeiter gesendet werden.
- Zertifikatserneuerungsjobs wie automatische SSL-Erneuerungen und Bereinigungsjobs, die verhindern, dass die Festplatte voll wird.
- Der WordPress- oder Anwendungs- cron, der geplante Beiträge veröffentlicht und Wartungsaufgaben ausführt.
Der kostenlose Plan umfasst 5 Heartbeat-Monitore, was ausreicht, um die kritischen Aufgaben eines typischen Kleinunternehmens oder einer Handvoll Kundenstandorte abzudecken.
So richten Sie eine kostenlose cron Job-Überwachung ein
1. Erstellen Sie ein kostenloses Konto
Melden Sie sich mit Ihrer E-Mail-Adresse bei My Site Alerts an. Es gibt keine Kreditkarte und keinen Testzeitraum.
2. Erstellen Sie einen Herzschlag
Öffnen Sie Heartbeats in Ihrem Dashboard und wählen Sie Heartbeat erstellen. Geben Sie ihm einen eindeutigen Namen, z. B. „Nächtliche Datenbanksicherung“, damit Sie in einer Warnung genau erfahren, was fehlgeschlagen ist.
3. Legen Sie den erwarteten Zeitplan und eine Kulanzfrist fest
Geben Sie unter Erwarten Sie alle einen Herzschlag ein, wie oft der Job ausgeführt wird: alle 15 Minuten, jede Stunde, einmal am Tag. Stellen Sie dann die Kulanzfrist ungefähr so ein, wie lange die Ausführung des Jobs dauert, zuzüglich einer Sicherheitsmarge. Ein Backup, das um 2:00 Uhr ausgeführt wird und normalerweise 20 Minuten dauert, benötigt eine Schonzeit von etwa 30 bis 40 Minuten, sodass eine langsame Nacht keinen Fehlalarm auslöst.
4. Kopieren Sie Ihre Heartbeat-URL
Jeder Heartbeat hat seine eigene geheime URL. Ihr Job sendet bei jeder Ausführung eine GET- oder POST-Anfrage an ihn. Sie können die URL auch einmal in Ihrem Browser öffnen, um sie zu testen: Der Heartbeat sollte auf „Up“ wechseln.
5. Wählen Sie aus, wohin Benachrichtigungen gesendet werden sollen
E-Mail funktioniert sofort. Sie können Benachrichtigungen auch an Slack, Discord, Telegram, Microsoft Teams oder Ihren eigenen Webhook senden, damit ein verpasster Lauf die Stelle erreicht, an der Sie tatsächlich suchen.
So pingen Sie den Herzschlag Ihres Jobs
Linux- crontab
Fügen Sie die Anfrage nach Ihrem Befehl hinzu, verbunden mit &&, damit der Ping nur gesendet wird, wenn der Job erfolgreich ist:
0 2 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 https://mysitealerts.com/webhook-heartbeat/YOUR-CODE Die Option -m 10 verhindert, dass Curl hängen bleibt, wenn das Netzwerk langsam ist, und --retry 3 deckt einen kurzen Verbindungsabsturz ab. Wenn Ihr Server über wget anstelle von curl verfügt, führt wget -q -O /dev/null gefolgt von der URL denselben Zweck aus.
In einem Skript
Setzen Sie den Ping in die letzte Zeile des Skripts, nachdem die eigentliche Arbeit erledigt ist. Fügen Sie in einem Shell-Skript oben set -e hinzu, damit jeder fehlgeschlagene Befehl das Skript stoppt, bevor es den Ping erreicht. Stellen Sie in Python, PHP oder Node.js als letzten Schritt des Jobs eine einfache HTTP-Anfrage an die Heartbeat-URL.
Hosting von Bedienfeldern
Fügen Sie beim Shared Hosting denselben Curl-Befehl am Ende des cron -Jobs in Ihrem Control Panel hinzu. In den meisten Bedienfeldern können Sie eine vollständige Befehlszeile einfügen, sodass das gleiche && Muster auch dort funktioniert.
WordPress- cron
WordPress führt geplante Aufgaben nur aus, wenn jemand die Website besucht. Für eine zuverlässige Planung deaktivieren Sie den integrierten Trigger, rufen Sie wp-cron.php von einem echten Server- cron Job aus auf und fügen Sie den Heartbeat-Ping in derselben Zeile hinzu. Jetzt wissen Sie, dass der Zeitplan ausgelöst und abgeschlossen wird.
Häufige Fehler, die zu Fehlalarmen (oder verpassten Alarmen) führen
- Ping beim Start des Jobs. Das beweist nur, dass der Job begonnen hat. Ping am Ende, nachdem die Arbeit erfolgreich war.
- Eine zu kurze Schonfrist. Jobs werden langsamer, wenn die Datenmenge wächst. Überprüfen Sie die Kulanzfrist alle paar Monate.
- Zeitzonen ignorieren. Wenn die Serveruhr und Ihr Zeitplan nicht übereinstimmen, kann es sein, dass ein täglicher Job eine Stunde zu spät kommt. Stellen Sie das erwartete Intervall ein, keine Uhrzeit, und lassen Sie den Timer beim ersten Lauf starten.
- Zu oft pingen. Heartbeats sind für Jobs konzipiert, die höchstens einmal pro Minute ausgeführt werden. Zusätzliche Pings innerhalb derselben Minute werden ignoriert.
- Einen Herzschlag zwischen Jobs teilen. Jeder Job benötigt eine eigene URL, andernfalls verbirgt ein fehlerfreier Job einen anderen, der gestoppt wurde.
- Vergessen, während der Wartung eine Pause einzulegen. Unterbrechen Sie den Heartbeat, während Sie einen Server migrieren, damit im Verlauf nur echte Vorfälle angezeigt werden.
Heartbeats funktionieren neben Verfügbarkeitsprüfungen am besten
Heartbeats informieren Sie über die Arbeit hinter Ihrer Website. Verfügbarkeitsprüfungen zeigen Ihnen, dass Besucher es erreichen können. Zusammen decken sie beide Hälften ab. Wenn Sie noch keine Website-Prüfungen eingerichtet haben, befolgen Sie unsere Anleitung zur kostenlosen Überwachung der Website-Verfügbarkeit und fügen Sie vor Ort SSL- und Domain-Ablaufüberwachung hinzu. Sie können jedes Zertifikat jetzt mit dem SSL-Checker überprüfen.
Es dauert etwa fünf Minuten, Ihren wichtigsten Job zu schützen. Erstellen Sie Ihr kostenloses Konto, fügen Sie einen Heartbeat für Ihr Backup hinzu und lassen Sie uns die Überwachung übernehmen, damit Sie es nicht tun müssen.
Häufig gestellte Fragen
Was ist der Unterschied zwischen cron Überwachung und Verfügbarkeitsüberwachung?
Die Betriebszeitüberwachung überprüft eine URL von außen, um zu sehen, ob Ihre Website antwortet. Die Cron- oder Heartbeat-Überwachung wartet darauf, dass Ihr geplanter Job eingecheckt wird, und benachrichtigt Sie, wenn er nicht rechtzeitig eintrifft.
Ist die Herzfrequenzüberwachung wirklich kostenlos?
Ja. Der kostenlose Plan umfasst 5 Heartbeat-Monitore mit E-Mail-, Slack, Discord, Telegram, Microsoft Teams und Webhook-Benachrichtigungen. Es gibt keine Kreditkarte und keine Testversion, die abläuft.
Muss ich einen Agenten auf meinem Server installieren?
Nein. Ihr Job muss nur eine HTTP-Anfrage an seine Heartbeat-URL stellen, zum Beispiel mit Curl oder Wget, die auf fast jedem Server verfügbar sind.
Wie lang sollte die Nachfrist sein?
Stellen Sie die normale Laufzeit des Jobs zuzüglich einer Sicherheitsspanne ein. Eine Arbeit, die normalerweise 10 Minuten dauert, ist durch eine Kulanzfrist von 15 bis 20 Minuten gut erledigt.
Kann ich Jobs überwachen, die einmal am Tag oder einmal in der Woche ausgeführt werden?
Ja. Legen Sie das erwartete Intervall entsprechend dem Zeitplan des Auftrags fest, z. B. 1 Tag oder 7 Tage, und Sie werden benachrichtigt, wenn eine Ausführung verpasst wird.