Check de port TCP

Un monitor confirme qu’un port accepte les connexions, pour les services sans HTTP comme une base de données, un broker de messages ou un port SSH ou LDAP. Sur un port TLS, le même monitor peut aussi vérifier le certificat.

Tous les types de checks tcp

La vue du monitor d’un check de port TCP avec l’uptime, le temps de réponse moyen, le P95 et le nombre de checks. Elle montre aussi le panneau du certificat, le quorum d’alerte et le graphique des temps de réponse par région.
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.

Le formulaire de monitor avec le type Port TCP : l’hôte, le port et l’interrupteur du sous-check de certificat TLS, avec sa fenêtre d’avertissement et les règles d’émetteur et de sujet.
Le formulaire de port TCP avec l’hôte, le port et l’interrupteur du certificat TLS. Interface réelle du produit, données d’exemple.

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.

ChampRequisValeurs et défautSignification
hostHôteouiNom d’hôte ou adresse IP, sans schéma ni cheminLa 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.
portPortoui1 à 65535Le 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 checkfacultatifSecondes, défaut 300, maximum 24 h, minimum fixé par l’offreLa 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égionsfacultatifSous-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’offreLes 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 IPfacultatifListe 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.

ChampRequisValeurs et défautSignification
tls_cert.enabledouitrueActive le sous-check.
tls_cert.portfacultatifPort, défaut : le port du monitorLe port du handshake TLS, s’il diffère du port vérifié.
tls_cert.warn_daysfacultatifJours, défaut 14Sous 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_regexfacultatifExpression régulièreL’émetteur doit correspondre, par exemple Let's Encrypt.
tls_cert.subject_regexfacultatifExpression régulièreLe common name du sujet doit correspondre.
tls_cert.allow_self_signedfacultatiffalse (défaut) ou trueSaute 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

  1. La sonde lit la configuration. Un port manquant termine le check en erreur avant tout accès réseau.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
La vue du monitor d’un check de port TCP avec l’uptime, le temps de réponse moyen, le P95 et le nombre de checks. Elle montre aussi le panneau du certificat, le quorum d’alerte et le graphique des temps de réponse par région.
La vue du monitor avec l’uptime, le temps de réponse moyen et le P95, ainsi que le panneau du certificat et le temps de réponse par région. Interface réelle du produit, données d’exemple.

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.

Comparer toutes les limites

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.port en 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 ipv6 restreint donc les régions utilisables.

Tous les types de checks