Auf dieser Seite
Was er prüft
Ein DNS-Monitor löst in jedem Intervall aus jeder seiner Regionen einen Record-Typ für einen Namen auf. In der Voreinstellung antwortet der eigene Resolver des Prüfpunkts, deshalb sieht der Check die Zone als Ganzes. Einen in der Konfiguration benannten Nameserver fragt der Prüfpunkt direkt, ohne Cache dazwischen. Das zeigt, wenn ein Server einer Gruppe ausfällt oder anders antwortet. Perstat bewertet die Antwort gegen Ihre Bedingungen und validiert sie, wenn sie besteht, gegen DNSSEC. Sie lässt sich außerdem mit der letzten Antwortmenge eines anderen Monitors der Organisation vergleichen. So lassen 2 Namen, die übereinstimmen müssen, den Check fehlschlagen, sobald sie voneinander abweichen.
Wann Sie ihn einsetzen
- Ein Name muss weiter auf eine bekannte Adresse, einen Mail-Exchanger oder einen Alias auflösen, etwa den Webhost, den MX-Record oder einen CNAME zu einem Anbieter.
- Jeder Server einer Nameserver-Gruppe muss antworten, und zwar gleich. Legen Sie einen Monitor je Server an, jeden mit
serverauf diesen Server gesetzt. - Zwei Namen müssen übereinstimmen, zum Beispiel der Apex und
wwwoder derselbe Record in 2 Zonen. Ein Querverweis auf den Schwester-Monitor macht aus einer Abweichung einen fehlgeschlagenen Check.
Er vergleicht einen Record-Typ eines Namens. Für NS- und SOA-Konsistenz über die autoritativen Server, den Ablauf der Registrierung und den DNSSEC-Zustand einer ganzen Domain nutzen Sie den Domain-Check. Für SPF, DMARC und CAA als Konfigurationsstand nutzen Sie den DNS-Hygiene-Check, und ob der Dienst hinter der Adresse antwortet, prüft der HTTP(S)- oder TCP-Port-Check.

Konfiguration
Ziel. Das Konfigurationsfeld name enthält den abzufragenden Namen, das Formular nennt es Domain. Beim Speichern prüft Perstat nur das Format und löst den Namen nicht auf. Erlaubt sind ein Hostname ohne Schema, Pfad oder Leerzeichen, ein IP-Literal oder ein einzelnes Label, mit Labels bis 63 Zeichen und insgesamt 253.
| Feld | Pflicht | Werte und Voreinstellung | Bedeutung |
|---|---|---|---|
nameDomain | ja | Hostname, ein einzelnes Label geht auch | Der Name, dessen Records der Prüfpunkt abfragt. |
record_typeRecord | optional | A (Voreinstellung), AAAA, MX, TXT, CNAME, NS | Der abzufragende Record-Typ. Das Formular sendet immer einen, eine API-Anfrage ohne Typ fragt A ab. |
expectedAntwort enthält (Text) | optional | Zeichenkette | Mindestens ein Record der Antwort muss diesen Text enthalten. Mehrere Bedingungen sind mit UND verknüpft. |
expected_regexAntwort entspricht Regex | optional | Regulärer Ausdruck | Mindestens ein Record der Antwort muss diesem Muster entsprechen. Ein ungültiges Muster beendet den Check als Fehler. |
expected_allErwartete Werte (alle enthalten) | optional | Liste von Zeichenketten, im Formular ein Wert je Zeile | Jeder gelistete Wert muss in mindestens einem Record der Antwort enthalten sein. Nutzen Sie das Feld, wenn die ganze Menge zählt, zum Beispiel die NS-Records einer Zone. |
serverNameserver (optional) | optional | Hostname oder IP. Voreinstellung: der eigene Resolver des Prüfpunkts | Der Nameserver, den der Prüfpunkt direkt fragt, ohne Cache dazwischen. Ohne Angabe antwortet der eigene Resolver des Prüfpunkts, der die Zone als Ganzes sieht. |
cross_refQuerverweis-Monitor | optional | {"monitor": "<monitor id>", "mode": "identical"}. Modus identical (Voreinstellung), subset oder overlap | Vergleicht diese Antwortmenge mit der letzten Antwortmenge eines anderen Monitors der Organisation. Modus identical verlangt gleiche Mengen, subset verlangt, dass jeder Wert hier in der anderen Menge liegt, und overlap verlangt mindestens einen gemeinsamen Wert. |
interval_secondsPrüfintervall | optional | Voreinstellung 300 s. Bereich: Minimum des Tarifs bis 24 h | Wie oft jede Region den Check ausführt. Einen Wert außerhalb des Bereichs hebt Perstat auf das Minimum des Tarifs an oder begrenzt ihn auf 24 h, 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. |
So läuft ein Check ab
- Ist ein Check fällig, kompiliert jede Region zuerst den regulären Ausdruck und bestimmt den Record-Typ. Ein ungültiges Muster oder ein nicht unterstützter Typ beendet den Check als Fehler, bevor eine Abfrage hinausgeht.
- Der Prüfpunkt wählt den Resolver: den eigenen Mess-Resolver des Knotens oder den in
serverbenannten Nameserver. Dessen Hostname löst der Knoten über seinen Resolver auf und prüft ihn gegen die gesperrten Bereiche, darunter Loopback-, private, Link-local- und Cloud-Metadaten-Adressen. - Die Abfrage läuft mit Zeitmessung, und die Abfragezeit ist die Latenz des Checks. Das feste Limit des Monitors von 10 s wendet die DNS-Engine nicht auf die Abfrage selbst an, und der Knoten bricht jeden Lauf nach 120 s ab.
- Eine leere Antwort lässt den Check fehlschlagen. Andernfalls sind
expected,expected_regexundexpected_allmit UND verknüpft. - Auf eine bestandene Antwort folgt die DNSSEC-Prüfung auf DS, DNSKEY und RRSIG-Ablauf. Eine BOGUS-Kette oder eine abgelaufene Signatur lässt den Check fehlschlagen, jedes andere Ergebnis lässt das Resultat, wie es ist.
- Die Control Plane wendet den Querverweis an, wenn sie ein bestandenes Ergebnis mit nicht leerer Antwortmenge aufzeichnet. Ein unbekannter Modus wirkt wie
identical, und eine Abweichung lässt den Check mit Schwere critical fehlschlagen. Ein fehlgeschlagenes Urteil geht dann in die Incident-Bewertung ein, und die Alarmregel (Regionen und aufeinanderfolgende Checks) entscheidet, wann sich ein Incident öffnet.

Was ein Ergebnis enthält
- Antwort
- Die Detailzeile listet die Records der Antwort, durch Kommas getrennt. Bei einem benannten Nameserver folgt die antwortende Adresse als
(via IP). - Abfragezeit
- Die Zeit der Abfrage je Region ist die Latenz des Ergebnisses.
- Antwortmenge
- Die Control Plane behält die normalisierte Antwortmenge jedes bestandenen Checks: in Kleinschreibung, sortiert und ohne Duplikate. Ein Querverweis vergleicht diese Menge. Über die API ist sie nicht Teil des Check-Ergebnisses.
- Ursachenschicht
- Perstat ordnet einen Fehler beim Ziel der Schicht
target_dnszu. Die Incident-Nachweise zeigen sie, deshalb gilt ein fehlender Record nicht als Netzfehler. - Region
- Jedes Ergebnis trägt die Region, die es gemessen hat. Es gibt keine Teilergebnisse je IP-Familie oder Adresse.
Zustände und Schwere
- okDie Antwort enthält mindestens einen Record, und jede Bedingung passt. DNSSEC ist nicht BOGUS, keine Signatur ist abgelaufen, und der Querverweis stimmt überein, wo er gesetzt ist.
- ausgefallenDie Antwort enthält keine Records, eine Bedingung passt nicht, oder der Querverweis weicht ab. Der Check schlägt auch bei einer BOGUS-Kette in DNSSEC oder einem abgelaufenen RRSIG fehl. Ein Abfragefehler außer NXDOMAIN oder ein benannter Nameserver, der sich nicht auflösen lässt, zählt ebenfalls.
- FehlerDer Name existiert nicht (NXDOMAIN), die Regex ist ungültig, der Record-Typ wird nicht unterstützt, oder der benannte Nameserver liegt auf einer privaten oder internen Adresse. 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 Engine liefert für diesen Typ keinen eingeschränkten Zustand, nur bestanden, fehlgeschlagen oder Fehler. Die Voreinstellung der Organisation verlangt 2 Regionen und 2 aufeinanderfolgende Checks. Ein Monitor kann eine eigene Regel tragen (Anzahl oder Prozent, aufeinanderfolgende Checks und Mindestdauer).
Tarife und Grenzen
- Kürzestes Intervall
- Free erlaubt 300 s, Pulse 60 s und Sentinel 30 s. Command erlaubt 15 s und Enterprise 10 s, beide nur über MCP. Das Webformular bietet 30 s, 1 min, 5 min, 15 min und 1 h.
- Regionen
- Free nutzt 2 von 6 Regionen und Pulse 3 von 6. Alle 6 stehen ab Sentinel bereit.
- Monitore
- Free enthält 10 regionale Monitore, Pulse 50, Sentinel 150 und Command 500. Die Kontingente in Enterprise sind individuell. Die 11 regionalen Checktypen teilen sich dieses Kontingent.
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": "Apex A record",
"type": "dns",
"interval_seconds": 60,
"config": {
"name": "example.com",
"record_type": "A",
"expected": "203.0.113.10"
}
}
Jede Schnittstelle mit ihrer Grenze
Grenzen
- Ein Record-Typ je Monitor. Ein Name mit A- und AAAA-Record braucht 2 Monitore.
- Es gibt keinen Vergleich von SOA, Serial oder Delegation über die autoritativen Server. Das übernimmt der Domain-Check.
- TXT-Records vergleicht der Check als Text, er parst sie nicht.
- Zeigt
serverauf eine Anycast-Adresse, erreicht jede Region ihre nächstgelegene Instanz. Die Detailzeile zeigt die tatsächlich gefragte Adresse. - Dieser Typ kennt keine
address_familiesund liefert keine Teilergebnisse je Adresse. Er sendet eine Abfrage je Region, über den Resolver des Knotens oder den benannten Nameserver. - Ein Name, der nicht existiert (NXDOMAIN), ist ein Fehler, keine fehlgeschlagene Bedingung. Beides öffnet einen Incident, sobald das Quorum einig ist.
- Der Querverweis braucht einen Monitor derselben Organisation mit mindestens einer aufgezeichneten Antwortmenge: einen DNS-Monitor oder einen Domain-Monitor mit seiner NS-Menge. Ein Ziel ohne Antwortmenge lässt den Querverweis inaktiv, das Ergebnis bleibt also wie gemessen. API und MCP nehmen nur die öffentliche ID des Monitors, das Formular bietet eine Auswahl mit jedem Monitor des Projekts.