Auf dieser Seite
Was er prüft
Ein HTTP(S)-Monitor ruft die URL in seinem Intervall aus jeder seiner Regionen ab. Er prüft den Statuscode und, falls gesetzt, ein Stichwort oder einen regulären Ausdruck im Body, und er zeichnet die Antwortzeit auf. Optionale Subchecks für das Zertifikat, die Security-Header und die DNS-Hygiene laufen im selben Monitor. Fällt ein Host aus, öffnet das deshalb einen Incident statt vier.
Wann Sie ihn einsetzen
- Ein Dienst hat einen HTTP-Endpunkt, der antwortet, wenn der Dienst gesund ist: ein Health-Pfad, eine Startseite oder eine API-Route.
- Sie wollen den Inhalt der Antwort prüfen, nicht nur die Erreichbarkeit: einen Statuscode, eine Zeichenkette im Body oder ein Muster.
- Sie wollen das Zertifikat, die Security-Header sowie SPF, DMARC und CAA der Domain im selben Monitor prüfen statt in 3 zusätzlichen Monitoren.
Er spielt keinen Klickpfad im Browser durch, meldet sich nirgends an und folgt höchstens 5 Weiterleitungen. Für einen Port ohne HTTP nutzen Sie den TCP-Port-Check. Für ein Zertifikat, das einen eigenen Incident verdient, nutzen Sie den TLS-Zertifikat-Check.

Konfiguration
Ziel. Eine vollständige URL mit Schema (https:// oder http://). Der Prüfpunkt löst die URL und jeden Weiterleitungssprung vor dem Abruf auf und prüft sie. Loopback-, private, Link-local- und Cloud-Metadaten-Adressen weist er ab, deshalb lässt sich der Monitor nicht auf ein internes Netz richten.
| Feld | Pflicht | Werte und Voreinstellung | Bedeutung |
|---|---|---|---|
urlURL | ja | Vollständige URL mit Schema | Die Adresse, die der Prüfpunkt abruft. Er folgt bis zu 5 Weiterleitungssprüngen, und jeder Sprung durchläuft dieselbe Zielprüfung. |
expected_statusErwarteter Status | optional | Exakter Statuscode, Voreinstellung: jeder 2xx | Die Antwort muss genau diesen Statuscode tragen. Lassen Sie das Feld leer, um jeden 2xx zu akzeptieren. |
keywordBody enthält (Text) | optional | Zeichenkette | Der Antwort-Body muss diesen Text enthalten. Groß- und Kleinschreibung zählen. Alle Bedingungen sind mit UND verknüpft. |
expected_regexBody entspricht Regex | optional | Regulärer Ausdruck | Der Antwort-Body muss diesem Muster entsprechen. |
method | optional | HTTP-Methode, Voreinstellung GET | Die Anfragemethode, gesetzt über API oder MCP. Das Formular sendet immer GET. |
headers | optional | Zuordnung von Header-Name zu Wert | Anfrage-Header, die der Prüfpunkt mitsendet, zum Beispiel Accept, gesetzt über API oder MCP. Host wird ignoriert, und einer Weiterleitung folgen die Header nur innerhalb desselben Origins. |
interval_secondsPrüfintervall | optional | Sekunden, Voreinstellung 300, höchstens 24 h, Minimum je nach Tarif | Wie oft jede Region den Check ausführt. Einen Wert unter der Untergrenze des Tarifs hebt Perstat auf die Untergrenze an, statt ihn abzulehnen. |
regionsRegionen | optional | Teilmenge aus na, eu, as, sa, af, oce. Voreinstellung: die Regionen des Tarifs | Welche Kontinente den Check ausführen. Ohne Angabe wählt der Tarif seine Voreinstellung. |
address_familiesIP-Familien | optional | ["ipv4"] (Voreinstellung) oder ["ipv4", "ipv6"] | Der Prüfpunkt prüft jede aufgelöste Adresse jeder gewählten Familie für sich. Bei beiden Familien legt family_fail_severity (degraded als Voreinstellung, oder failed) den Zustand fest, wenn eine Familie ausfällt. |
TLS-Zertifikat
Bei einer https-URL bewertet derselbe Monitor das ausgelieferte Zertifikat: den Handshake, die Kette, den Aussteller und das Subject. Das Formular schaltet diesen Subcheck für jede https-URL ein.
| Feld | Pflicht | Werte und Voreinstellung | Bedeutung |
|---|---|---|---|
tls_cert.enabled | ja | true | Schaltet den Subcheck ein. |
tls_cert.port | optional | Port, Voreinstellung: der Port der URL oder 443 | Der Port für den TLS-Handshake. |
tls_cert.warn_days | optional | Tage, Voreinstellung 14 | Unterhalb dieser Restlaufzeit trägt der Check einen Zertifikatshinweis, und Eigentümer und Admins erhalten stündlich eine E-Mail und einen In-App-Hinweis. Der Hinweis ändert den Zustand nie, ein abgelaufenes Zertifikat lässt den Check aber fehlschlagen. |
tls_cert.issuer_regex | optional | Regulärer Ausdruck | Der Aussteller muss passen, zum Beispiel Let's Encrypt. |
tls_cert.subject_regex | optional | Regulärer Ausdruck | Der Common Name des Subjects muss passen. |
tls_cert.allow_self_signed | optional | false (Voreinstellung) oder true | Überspringt im Handshake die Prüfung von Vertrauenskette, Hostname und Gültigkeitszeitraum. Nutzen Sie das nur für interne Dienste mit eigener CA. Ablauf und Regex-Bedingungen gelten weiter. |
Security-Header
Der Prüfpunkt sendet eine zweite Anfrage und prüft deren Antwort auf die ausgewählten Header. Es zählt nur, ob sie vorhanden sind. Ein fehlender Header ist ein Befund zur Konfiguration, kein Ausfall, deshalb ist die voreingestellte Schwere eingeschränkt.
| Feld | Pflicht | Werte und Voreinstellung | Bedeutung |
|---|---|---|---|
security_headers.enabled | ja | true | Schaltet den Subcheck ein. |
security_headers.headers | ja | Einer oder mehrere aus strict-transport-security, content-security-policy, x-content-type-options, x-frame-options oder referrer-policy | Die Header, die vorhanden sein müssen. |
security_headers.missing_severity | optional | degraded (Voreinstellung) oder failed | Was ein fehlender Header mit dem Zustand des Monitors macht. |
DNS-Hygiene
Der Prüfpunkt liest SPF, DMARC und CAA der Domain als Konfiguration. Diese Records entscheiden, ob die Mail der Domain zugestellt wird und wer Zertifikate für sie ausstellen darf. Der Befund steht beim Ergebnis und ändert den Zustand des Monitors nie.
| Feld | Pflicht | Werte und Voreinstellung | Bedeutung |
|---|---|---|---|
dns_hygiene.enabled | ja | true | Schaltet den Subcheck ein. |
dns_hygiene.domain | optional | Domain, Voreinstellung: der Host der URL | Die Domain, deren Records der Prüfpunkt liest. |
So läuft ein Check ab
- Ist ein Check fällig, kompiliert jede Region zuerst den regulären Ausdruck. Ein ungültiger Ausdruck beendet den Check als Fehler. Jeder Check läuft nach 10 s in den Timeout.
- Der Knoten löst den Host über seinen eigenen Resolver auf und prüft jede Adresse der gewählten Familie gegen die gesperrten Bereiche. Danach erhält jede Adresse eine eigene Anfrage, deren Verbindung fest an diese Adresse gebunden ist.
- Der Prüfpunkt folgt Weiterleitungen selbst, höchstens 5 Sprünge. Jeden Sprung löst er vor dem Abruf erneut auf und prüft ihn.
- Der Prüfpunkt bewertet zuerst den Statuscode, dann Stichwort und Regex. Den Body liest er nur, wenn eines von beiden gesetzt ist, und alle Bedingungen sind mit UND verknüpft.
- Nur ein bestandener https-Check mit eingeschaltetem TLS-Zertifikat-Subcheck führt die Zertifikatsregel aus, einmal je Check. Ein bestandener oder eingeschränkter Check hängt die Header-Bewertung und den DNS-Hygiene-Befund als eigene Teilergebnisse an.
- Die Region sendet ihr Ergebnis an die Control Plane. Die Alarmregel entscheidet, ob ein fehlgeschlagenes Ergebnis einen Incident öffnet, sobald das Quorum einig ist. Ein eingeschränktes Ergebnis bleibt aus der Incident-Bewertung heraus.

Was ein Ergebnis enthält
- Statuscode
- Der endgültige Status nach den Weiterleitungen, bewertet gegen
expected_status. - Antwortzeit
- Zeit bis zur Antwort, einschließlich Body, wenn er gelesen wird, je Region und je Adresse (
latency_ms). - Detailzeile
- Eine Zeile, die sagt, was passiert ist, zum Beispiel
HTTP 200,keyword not foundoderregex did not match. Sie nennt auch einen unerwarteten Status oder den Transportfehler. - Ursachenschicht
- Ob ein Fehler beim DNS des Ziels lag (Name nicht gefunden) oder, nach erfolgreicher Auflösung, beim Ziel selbst. Jede andere Ursache meldet Perstat als unbekannt.
- Zertifikat
- Common Name und alternative Namen, Aussteller, Gültigkeitsdaten mit verbleibenden Tagen und Vertrauensstatus.
- Security-Header
- Welche der angeforderten Header vorhanden waren und welche fehlten.
- DNS-Hygiene
- Die Befunde zu SPF, DMARC und CAA, zum Beispiel eine DMARC-Policy none oder ein fehlender CAA-Record.
- Region, Familie, Adresse
- Jedes Ergebnis trägt die Region, die es gemessen hat, und ein Teilergebnis je IP-Familie und je Adresse.
Zustände und Schwere
- okDer Status passt und jede Bedingung trifft zu. Ein Zertifikat innerhalb seines Warnfensters behält diesen Zustand.
- eingeschränktEin Security-Header fehlt bei der voreingestellten Schwere, oder eine IP-Familie fällt aus, während die andere antwortet.
- ausgefallenDie Anfrage schlägt fehl, läuft in den Timeout oder wird blockiert, oder der Status oder eine Bedingung passt nicht. Eine fehlschlagende Zertifikatsregel (abgelaufen, abgewiesener Handshake, Aussteller oder Subject passen nicht) und ein fehlender Header mit Schwere
failedzählen ebenfalls. - FehlerDie Konfiguration ist nicht ausführbar, zum Beispiel wegen einer ungültigen Regex. Das zählt als Ausfall mit Schwere critical.
Per Quorum bestätigt: Standardmäßig müssen 2 Regionen den Fehler melden, bevor Perstat einen Incident öffnet. Die Voreinstellung der Organisation verlangt 2 Regionen und 2 aufeinanderfolgende Checks. Ein Monitor kann eine eigene Regel tragen, mit Anzahl oder Prozent, aufeinanderfolgenden Checks und einer Mindestdauer.
Tarife und Grenzen
- Kürzestes Intervall
- 300 s in Free, 60 s in Pulse, 30 s in Sentinel, 15 s in Command und 10 s in Enterprise. Das Webformular bietet 30 s, 1 min, 5 min, 15 min und 1 h. Die Untergrenzen von 15 s und 10 s erreichen Sie nur über MCP.
- Regionen
- 2 von 6 in Free, 3 von 6 in Pulse und alle 6 ab Sentinel.
- Monitore
- 10 in Free, 50 in Pulse, 150 in Sentinel, 500 in Command und ein individuelles Kontingent in Enterprise. Die elf regionalen Checktypen teilen sich dieses Kontingent, Host-Agenten und Heartbeats haben ein eigenes. Ein Paket mit 50 weiteren Monitoren kostet 39 €.
Aus der Pipeline oder von einem Agenten
Dieselbe config gilt im Deploy-Schritt, in einem MCP-Client wie Claude Code und im Formular oben. create_monitor braucht einen API-Schlüssel für die ganze Organisation. Wenn Sie regions weglassen, wählt der Tarif seine Voreinstellung.
{
"name": "Order API",
"type": "http",
"interval_seconds": 60,
"config": {
"url": "https://orders.example.com/health",
"expected_status": 200,
"keyword": "ok",
"tls_cert": { "enabled": true, "warn_days": 21 },
"security_headers": {
"enabled": true,
"headers": ["strict-transport-security", "content-security-policy"],
"missing_severity": "degraded"
},
"dns_hygiene": { "enabled": true }
}
}
Jede Schnittstelle mit ihrer Grenze
Grenzen
- Der Prüfpunkt spielt keinen Klickpfad im Browser durch, führt kein JavaScript aus und folgt keinem Anmeldeablauf. Er sendet keinen Anfrage-Body und keine Cookies.
- Methode und Anfrage-Header setzen Sie über API oder MCP, nicht im Formular.
- Der Prüfpunkt folgt höchstens 5 Weiterleitungssprüngen, eine längere Kette lässt den Check fehlschlagen.
- Die Bewertung der Security-Header prüft das Vorhandensein, nicht die Werte.
- Der Prüfpunkt weist Ziele auf privaten, Loopback-, Link-local- und Cloud-Metadaten-Adressen ab.
- Nicht jede Region prüft IPv6, deshalb schränkt die Auswahl von
ipv6die nutzbaren Regionen ein.