Auf dieser Seite
Was er prüft
Ein TCP-Port-Monitor verbindet sich in seinem Intervall aus jeder seiner Regionen mit Host und Port, einmal je aufgelöster Adresse. Er bewertet nur, ob die Verbindung angenommen oder abgewiesen wurde oder in den Timeout lief, und zeichnet auf, wie lange der Connect dauerte. Er sendet keine Nutzdaten und liest kein Banner.
Wann Sie ihn einsetzen
- Ein Dienst lauscht auf einem Port, hat aber keinen HTTP-Endpunkt, zum Beispiel eine Datenbank, eine Message-Queue oder ein SSH-, LDAP- oder Redis-Port.
- Sie wollen wissen, ob der Port erreichbar ist, nicht, welches Protokoll dahinter läuft.
- Sie wollen das Zertifikat eines TLS-Ports ohne HTTP überwachen, ohne einen zweiten Monitor anzulegen.
Er spricht das Protokoll hinter dem Port nicht: kein Banner, keine Anmeldung und keine Abfrage. Für einen Mailserver nutzen Sie den SMTP- oder IMAP-Check, für einen HTTP-Endpunkt den HTTP(S)-Check. Wechselt ein Port erst nach einem Klartext-Dialog auf TLS (STARTTLS), überwachen Sie sein Zertifikat mit dem SMTP- oder IMAP-Check.

Konfiguration
Ziel. Ein Hostname oder eine IP-Adresse ohne Schema, Pfad oder Leerzeichen (Labels bis 63 Zeichen, insgesamt 253), dazu ein Port von 1 bis 65535. Der Prüfpunkt löst den Host zur Prüfzeit über seinen eigenen Resolver auf.
| Feld | Pflicht | Werte und Voreinstellung | Bedeutung |
|---|---|---|---|
hostHost | ja | Hostname oder IP-Adresse, kein Schema, kein Pfad | Das Ziel. Der Prüfpunkt verbindet sich mit jeder aufgelösten Adresse der gewählten Familie für sich, und jede Adresse erhält ein eigenes Teilergebnis. |
portPort | ja | 1 bis 65535 | Der Port für die Verbindung. Er hat keine Voreinstellung, und ein ohne Port gespeicherter Monitor beendet jeden Check als Fehler. Setzen Sie ihn deshalb immer. Das Formular sendet den Port nur, wenn Sie einen eingeben. |
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. Setzen Sie ihn auf der obersten Ebene der Anfrage neben type und config, denn innerhalb von config ignoriert ihn die API. |
regionsRegionen | optional | Teilmenge aus na, eu, as, sa, af, oce. Fehlend oder leer: die ersten n Schlüssel in dieser Reihenfolge, n ist das Regionslimit des Tarifs | Welche Kontinente den Check ausführen. Setzen Sie die Angabe auf der obersten Ebene der Anfrage neben type und config, denn innerhalb von config ignoriert die API sie. |
address_familiesIP-Familien | optional | Liste aus ipv4, ipv6 oder beiden. Fehlend oder leer bedeutet ["ipv4"] | Bei beiden Familien legt family_fail_severity (degraded als Voreinstellung, oder failed) den Zustand fest, wenn eine Familie ausfällt. Das Formular bietet ipv6 nur an, wenn der Host einen AAAA-Record hat oder ein IPv6-Literal ist. |
TLS-Zertifikat
Ist der Schalter an, folgt auf einen bestandenen Connect ein direkter TLS-Handshake, einmal je Check statt je Adresse. Er läuft auf dem Port des Monitors, sofern tls_cert.port keinen anderen nennt. Der Prüfpunkt bewertet das Zertifikat gegen Ihre Regeln zu Ablauf, Aussteller und Subject. Ohne den Schalter liest der Check gar kein Zertifikat, und die Monitoransicht zeigt keines.
| Feld | Pflicht | Werte und Voreinstellung | Bedeutung |
|---|---|---|---|
tls_cert.enabled | ja | true | Schaltet den Subcheck ein. |
tls_cert.port | optional | Port, Voreinstellung: der Port des Monitors | Der Port für den TLS-Handshake, falls er vom geprüften Port abweicht. |
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, und das Formular fragt nach einer Bestätigung. |
So läuft ein Check ab
- Der Prüfpunkt liest die Konfiguration. Ein fehlender Port beendet den Check als Fehler, bevor der Prüfpunkt das Netz berührt.
- Ist ein Check fällig, löst jede Region den Host über den eigenen Resolver des Knotens auf. Sie prüft jede Adresse der gewählten Familie gegen die gesperrten Bereiche.
- Jede Adresse erhält einen TCP-Connect mit einem Timeout von 10 s. Die Zeit bis zur angenommenen Verbindung ist die Antwortzeit dieser Adresse.
- Nur ein bestandener Check mit eingeschaltetem TLS-Zertifikat-Subcheck führt die Zertifikatsregel aus. Sie läuft einmal je Check, als direkter TLS-Handshake auf dem Port des Monitors oder auf
tls_cert.port. - Die Region sendet ihr Ergebnis an die Control Plane. Sobald das Quorum der Alarmregel aus Regionen und aufeinanderfolgenden Checks einig ist, öffnet sich ein Incident.

Was ein Ergebnis enthält
- Verbindungszeit
- Zeit vom Connect-Aufruf bis zur angenommenen Verbindung, je Region und je Adresse (
latency_ms). - Detailzeile
- Eine Zeile, die sagt, was passiert ist: Der Port ist offen, die Verbindung wurde mit Grund abgewiesen, oder der Connect lief in den Timeout.
- Zertifikat
- Mit eingeschaltetem Subcheck: Common Name und alternative Namen, Aussteller, Gültigkeitsdaten sowie Selbstsignatur- und Vertrauensstatus. Ist das Warnfenster erreicht, trägt das Ergebnis auch den Ablaufhinweis.
- 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
- okDie Verbindung wurde auf jeder geprüften Adresse angenommen. Ein Zertifikat innerhalb seines Warnfensters behält diesen Zustand.
- eingeschränktEine IP-Familie oder eine von mehreren aufgelösten Adressen fällt aus, während die anderen antworten, bei voreingestellter
family_fail_severity. Ein einzelner Connect kennt kein eingeschränktes Ergebnis. - ausgefallenDie Verbindung wird abgewiesen oder läuft in den Timeout, oder der Host lässt sich nicht auflösen oder löst auf eine gesperrte Adresse auf. Mit eingeschaltetem Subcheck zählt auch eine fehlschlagende Zertifikatsregel: abgelaufen, abgewiesener Handshake oder Aussteller oder Subject passen nicht. Mit
family_fail_severity: failedzählt hier auch eine ausgefallene Familie. - FehlerDie Konfiguration ist nicht ausführbar, weil der Port fehlt. 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. Mehr Regionen, als der Tarif erlaubt, lehnt Perstat ab, statt die Liste zu kürzen.
- 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.
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": "Postgres primary",
"type": "tcp",
"interval_seconds": 60,
"config": {
"host": "db.example.com",
"port": 5432
}
}
Jede Schnittstelle mit ihrer Grenze
Grenzen
- Der Check liest kein Banner, führt keinen Protokolldialog und sendet keine Nutzdaten. Er endet, sobald die Verbindung angenommen ist.
- Port 0 wird abgelehnt. Ein ohne Port gespeicherter Monitor beendet jeden Check als Fehler.
- Der TLS-Subcheck ist ein direkter Handshake auf dem Port des Monitors, sofern
tls_cert.portkeinen anderen nennt. Wechselt ein Port erst nach einem Klartext-Dialog auf TLS (STARTTLS), nutzen Sie den SMTP- oder IMAP-Check. - Der Prüfpunkt verbindet sich nicht mit Zielen, die auf Loopback-, private, Link-local-, Cloud-Metadaten- oder ähnliche Adressen auflösen. Der Check schlägt dann mit dem Detail
internal or private, blockedfehl. Speichern lässt sich ein solcher Monitor trotzdem. - Nicht jede Region prüft IPv6, deshalb schränkt die Auswahl von
ipv6die nutzbaren Regionen ein.