Webhook-Kanal

Webhook-Benachrichtigungskanal

Mit dem Webhook-Kanal sendet LoadFocus einen HTTP POST mit JSON-Body an eine beliebige URL, sobald sich der Status einer überwachten Prüfung ändert. Es ist der flexibelste Kanal: alles, was eingehende JSON-Webhooks akzeptiert — PagerDuty Events API, Opsgenie, Zapier, n8n, Make oder Ihr eigener Dienst — kann LoadFocus-Benachrichtigungen empfangen.

Webhook-Kanal anlegen

  1. Öffnen Sie die Alert-Settings und klicken Sie auf + New Alert Channel.
  2. Wählen Sie Webhook.
  3. Vergeben Sie einen Namen (erscheint in der Kanalliste) und fügen Sie die HTTPS-URL ein, die den POST erhalten soll.
  4. Klicken Sie auf Save Configuration, aktivieren Sie den Kanal an einer Prüfung und wählen Sie über die Routing-Schalter, welche Ereignisse er erhalten soll.

Wann LoadFocus Ihren Webhook aufruft

LoadFocus sendet bei folgenden Ereignissen einen POST an Ihre URL:

Ereignisevent-WertWann es ausgelöst wird
Check fehlgeschlagencheck.failedEine Prüfung wechselt in den Fehlerzustand (Assertion, Fehler oder Timeout).
Check erholtcheck.recoveredEine zuvor fehlgeschlagene Prüfung ist wieder erfolgreich.
Check degradiertcheck.degradedDie Antwortzeit überschreitet den Degraded-Schwellwert, ohne fehlzuschlagen.
SSL-Ablaufssl.expiry14, 7 und 3 Tage vor Ablauf eines überwachten HTTPS-Zertifikats sowie am Ablauftag.
TesttestSie klicken die Schaltfläche Test neben dem Kanal.

Welche dieser Ereignisse einen Kanal erreichen, steuern die Schalter Fail / Recover / Degraded / SSL unter dem Kanal auf der Bearbeitungsseite der Prüfung. Standardmäßig sind alle aktiviert.

Payload

Der POST-Body ist application/json:

{
"source": "loadfocus",
"event": "check.failed",
"check": {
"id": "75be9e45e858177eea4a18bbdc765472",
"name": "Designerbox",
"url": "https://designerbox.ai"
},
"status": "failed",
"location": "us-east-1",
"timestamp": "2026-06-07T12:00:00.000Z"
}

Feldreferenz:

  • source — immer loadfocus. Damit erkennen Sie den Absender.
  • event — eines von check.failed, check.recovered, check.degraded, ssl.expiry, test.
  • check.id / check.name / check.url — der Monitor, der die Benachrichtigung ausgelöst hat.
  • status — der Prüfstatus zum Sendezeitpunkt (failed, passed, degraded oder null bei SSL/test).
  • location — die AWS-Region, aus der die Prüfung lief.
  • timestamp — ISO-8601-UTC-Zeit des Ereignisses.

SSL-Ablauf-Ereignisse ergänzen ein details-Objekt:

{
"source": "loadfocus",
"event": "ssl.expiry",
"check": { "id": "...", "name": "...", "url": "https://..." },
"status": null,
"location": null,
"timestamp": "2026-06-07T12:00:00.000Z",
"details": { "daysRemaining": 7, "validTo": "Aug 29 23:59:59 2026 GMT" }
}

Sicherheit und Voraussetzungen

  • Nur HTTPS. Webhook-URLs müssen mit https:// beginnen. Reine http-URLs werden abgelehnt.
  • Private Adressen werden blockiert. Zum Schutz vor Server-Side Request Forgery löst LoadFocus Ihren Hostnamen auf und ruft keine privaten, Loopback-, Link-local- oder CGNAT-Adressen auf (z. B. 10.0.0.0/8, 127.0.0.1, 169.254.0.0/16, 192.168.0.0/16). Ihr Endpunkt muss öffentlich erreichbar sein.
  • Keine Weiterleitungen. LoadFocus folgt bei Webhook-Aufrufen keinen HTTP-Redirects — geben Sie die finale URL an.
  • Timeout. Jeder Aufruf läuft nach 10 Sekunden ab. Es gibt keinen automatischen Retry, Ihr Empfänger sollte die Payload schnell annehmen und einreihen.
  • Funktion prüfen. Senden Sie mit Test ein test-Ereignis, bevor Sie sich auf den Kanal verlassen. Ein kostenloser Dienst wie webhook.site eignet sich, um die genaue Payload zu prüfen.

Integrationsbeispiele

  • PagerDuty — richten Sie den Kanal auf Ihre Events-API-v2-Integrations-URL und routen Sie nur check.failed dorthin (Recover/Degraded/SSL-Schalter aus), damit bei Fehlern Incidents geöffnet werden.
  • Opsgenie — nutzen Sie eine Inbound-API-Integration; mappen Sie check.failed auf Alert-Create und check.recovered auf Alert-Close.
  • Zapier / Make / n8n — starten Sie einen Workflow über einen "Catch Hook"-Trigger und verzweigen Sie auf dem event-Feld.
  • Eigener Dienst — nehmen Sie den POST an, prüfen Sie source === "loadfocus" und reagieren Sie auf event.

Verwandt