Sur cette page
Ce qu’il vérifie
Un monitor de port TCP se connecte à l’hôte et au port à son intervalle depuis chacune de ses régions, une fois par adresse résolue. Il juge seulement si la connexion a été acceptée, refusée ou a expiré, et il enregistre la durée de la connexion. Il n’envoie aucune donnée et ne lit aucune bannière.
À utiliser quand
- Un service écoute sur un port mais n’a pas d’endpoint HTTP, par exemple une base de données, une file de messages ou un port SSH, LDAP ou Redis.
- La question porte sur la joignabilité du port, pas sur le protocole qui se trouve derrière.
- Le certificat d’un port TLS sans HTTP doit être surveillé sans second monitor.
Il ne parle pas le protocole derrière le port : ni bannière, ni connexion à un compte, ni requête. Pour un serveur mail, utilisez le check SMTP ou IMAP, et pour un endpoint HTTP, le check HTTP(S). Pour un port qui ne passe en TLS qu’après un dialogue en clair (STARTTLS), utilisez le check SMTP ou IMAP pour surveiller son certificat.

Configuration
Cible. Un nom d’hôte ou une adresse IP sans schéma, chemin ni espace (étiquettes de 63 caractères au plus, 253 au total), plus un port de 1 à 65535. La sonde résout l’hôte par son propre résolveur au moment du check.
| Champ | Requis | Valeurs et défaut | Signification |
|---|---|---|---|
hostHôte | oui | Nom d’hôte ou adresse IP, sans schéma ni chemin | La cible. La sonde se connecte séparément à chaque adresse résolue de la famille choisie, et chaque adresse reçoit son propre sous-résultat. |
portPort | oui | 1 à 65535 | Le port à contacter. Il n’a pas de valeur par défaut, et un monitor enregistré sans port termine chaque check en erreur : renseignez-le toujours. Le formulaire n’envoie le port que si vous en saisissez un. |
interval_secondsIntervalle de check | facultatif | Secondes, défaut 300, maximum 24 h, minimum fixé par l’offre | La fréquence à laquelle chaque région exécute le check. Une valeur inférieure au minimum de l’offre est relevée à ce minimum, et non rejetée. Placez-le au premier niveau de la requête, à côté de type et config, car l’API l’ignore dans config. |
regionsRégions | facultatif | Sous-ensemble de na, eu, as, sa, af, oce. Absent ou vide : les n premières clés dans cet ordre, n étant la limite de régions de l’offre | Les continents qui exécutent le check. Placez-le au premier niveau de la requête, à côté de type et config, car l’API l’ignore dans config. |
address_familiesFamilles IP | facultatif | Liste de ipv4, ipv6 ou des deux. Absent ou vide vaut ["ipv4"] | Avec les deux familles, family_fail_severity (degraded par défaut, ou failed) fixe l’état quand une famille échoue. Le formulaire ne propose ipv6 que si l’hôte a un enregistrement AAAA ou est un littéral IPv6. |
Certificat TLS
Avec l’interrupteur activé, une connexion réussie est suivie d’un handshake TLS direct par check, et non par adresse, sur le port du monitor, sauf si tls_cert.port en désigne un autre. La sonde juge le certificat selon vos règles d’expiration, d’émetteur et de sujet. Sans l’interrupteur, le check ne lit aucun certificat et la vue du monitor n’en affiche aucun.
| Champ | Requis | Valeurs et défaut | Signification |
|---|---|---|---|
tls_cert.enabled | oui | true | Active le sous-check. |
tls_cert.port | facultatif | Port, défaut : le port du monitor | Le port du handshake TLS, s’il diffère du port vérifié. |
tls_cert.warn_days | facultatif | Jours, défaut 14 | Sous cette durée de vie restante, le check porte un avertissement de certificat, et les propriétaires et administrateurs reçoivent chaque heure un e-mail et une notification dans l’app. L’avertissement ne change jamais l’état, mais un certificat expiré fait échouer le check. |
tls_cert.issuer_regex | facultatif | Expression régulière | L’émetteur doit correspondre, par exemple Let's Encrypt. |
tls_cert.subject_regex | facultatif | Expression régulière | Le common name du sujet doit correspondre. |
tls_cert.allow_self_signed | facultatif | false (défaut) ou true | Saute les contrôles de confiance, de nom d’hôte et de date dans le handshake. Réservez-le aux services internes dotés de leur propre CA. L’expiration et les assertions regex s’appliquent toujours, et le formulaire vous demande de confirmer. |
Déroulement d’un check
- La sonde lit la configuration. Un port manquant termine le check en erreur avant tout accès réseau.
- Quand un check arrive à échéance, chaque région résout l’hôte par le résolveur du nœud. Elle confronte chaque adresse de la famille choisie aux plages bloquées.
- Chaque adresse reçoit une tentative de connexion TCP avec un délai de 10 s. Le temps jusqu’à la connexion acceptée est le temps de réponse de cette adresse.
- Seul un check réussi, avec le sous-check de certificat TLS actif, exécute la politique de certificat. Elle s’exécute une fois par check, par un handshake TLS direct sur le port du monitor ou sur
tls_cert.port. - La région envoie son résultat au plan de contrôle. Dès que le quorum de régions et de checks consécutifs de la politique d’alerte est atteint, un incident s’ouvre.

Ce que contient un résultat
- Temps de connexion
- Le temps entre l’appel de connexion et la connexion acceptée, par région et par adresse (
latency_ms). - Ligne de détail
- Une ligne qui dit ce qui s’est passé : le port est ouvert, la connexion a été refusée avec la raison, ou la connexion a expiré.
- Certificat
- Avec le sous-check activé : le common name et les noms alternatifs, l’émetteur, les dates de validité, et les statuts auto-signé et de confiance. Une fois la fenêtre d’avertissement atteinte, le résultat porte aussi l’avertissement d’expiration.
- Région, famille, adresse
- Chaque résultat porte la région qui l’a mesuré, et un sous-résultat par famille IP et par adresse.
États et gravité
- okLa connexion a été acceptée sur chaque adresse vérifiée. Un certificat dans sa fenêtre d’avertissement conserve cet état.
- dégradéUne famille IP, ou l’une de plusieurs adresses résolues, échoue pendant que les autres répondent, avec la valeur par défaut de
family_fail_severity. Une connexion isolée n’a pas d’issue dégradée. - en panneLa connexion est refusée ou expire, ou bien l’hôte ne se résout pas ou se résout en adresse bloquée. Avec le sous-check activé, une politique de certificat en échec compte aussi : certificat expiré, handshake rejeté, émetteur ou sujet différent. Avec
family_fail_severity: failed, l’échec d’une seule famille compte ici également. - erreurLa configuration ne peut pas s’exécuter parce que le port manque. Cet état compte comme une panne de gravité critique.
Confirmé par quorum : par défaut, 2 régions doivent signaler l’échec avant l’ouverture d’un incident. La règle par défaut de l’organisation exige 2 régions et 2 checks consécutifs. Un monitor peut porter sa propre règle, avec un nombre ou un pourcentage, des checks consécutifs et une durée minimale.
Offres et limites
- Intervalle minimal
- 300 s en Free, 60 s en Pulse, 30 s en Sentinel, 15 s en Command et 10 s en Enterprise. Le formulaire web propose 30 s, 1 min, 5 min, 15 min et 1 h. Les intervalles de 15 s et 10 s ne sont accessibles que par MCP.
- Régions
- 2 sur 6 en Free, 3 sur 6 en Pulse et les 6 à partir de Sentinel. Une liste qui dépasse la limite de régions de l’offre est rejetée, et non tronquée.
- Monitors
- 10 en Free, 50 en Pulse, 150 en Sentinel, 500 en Command et un quota sur mesure en Enterprise. Onze types de sonde partagent ce quota, tandis que les agents hôtes et les heartbeats ont le leur.
Depuis le pipeline ou un agent
La même config fonctionne dans l’étape de déploiement, dans un client MCP comme Claude Code et dans le formulaire ci-dessus. create_monitor exige une clé API valable pour toute l’organisation. Si vous omettez regions, l’offre applique sa valeur par défaut.
{
"name": "Postgres primary",
"type": "tcp",
"interval_seconds": 60,
"config": {
"host": "db.example.com",
"port": 5432
}
}
Chaque interface, avec sa limite
Limites
- Le check ne lit aucune bannière, ne mène aucun dialogue protocolaire et n’envoie aucune donnée. Il se termine dès que la connexion est acceptée.
- Le port 0 est rejeté. Un monitor enregistré sans port termine chaque check en erreur.
- Le sous-check TLS est un handshake direct sur le port du monitor, sauf si
tls_cert.porten désigne un autre. Pour un port qui ne passe en TLS qu’après un dialogue en clair (STARTTLS), utilisez le check SMTP ou IMAP. - La sonde ne se connecte pas aux cibles qui se résolvent en adresses de boucle locale, privées, link-local, de métadonnées cloud ou similaires. Le check échoue alors avec le détail
internal or private, blocked. Rien n’empêche toutefois d’enregistrer un tel monitor. - Toutes les régions ne sondent pas en IPv6 : choisir
ipv6restreint donc les régions utilisables.