Sur cette page
Ce qu’il vérifie
Un monitor DNS résout un type d’enregistrement pour un nom depuis chacune de ses régions, à chaque intervalle. Par défaut, c’est le résolveur de la sonde qui répond : le check voit donc la zone dans son ensemble. Un serveur de noms désigné dans la config est interrogé directement, sans cache intermédiaire, ce qui révèle quand un serveur d’un groupe tombe ou répond autrement. La réponse est jugée selon vos assertions puis, si elle passe, validée par DNSSEC. Elle peut aussi être confrontée au dernier ensemble de réponses d’un autre monitor de l’organisation : 2 noms qui doivent concorder font alors échouer le check dès qu’ils divergent.
À utiliser quand
- Un nom doit continuer à se résoudre vers une adresse, un serveur de mail ou un alias connus, comme l’hôte web, l’enregistrement MX ou un CNAME vers un prestataire.
- Chaque serveur d’un groupe de serveurs de noms doit répondre, et répondre la même chose. Créez un monitor par serveur, chacun avec
serverréglé sur ce serveur. - Deux noms doivent concorder, par exemple l’apex et
www, ou le même enregistrement dans 2 zones. Une référence croisée vers le monitor frère transforme une divergence en check en échec.
Il compare un type d’enregistrement d’un nom. Pour la cohérence NS et SOA entre les serveurs faisant autorité, l’expiration du domaine et l’état DNSSEC d’un domaine entier, utilisez le check de domaine. Utilisez le check d’hygiène DNS pour SPF, DMARC et CAA comme posture, et le check HTTP(S) ou TCP pour savoir si le service derrière l’adresse répond.

Configuration
Cible. Le champ de config name contient le nom à interroger, et le formulaire l’appelle Domaine. Lors de la sauvegarde du monitor, seul le format est vérifié et le nom n’est pas résolu. Il accepte un nom d’hôte sans schéma, chemin ni espace, un littéral IP ou une étiquette seule, avec des étiquettes de 63 caractères au plus et 253 au total.
| Champ | Requis | Valeurs et défaut | Signification |
|---|---|---|---|
nameDomaine | oui | Nom d’hôte, étiquette seule acceptée | Le nom dont les enregistrements sont interrogés. |
record_typeEnregistrement | facultatif | A (défaut), AAAA, MX, TXT, CNAME, NS | Le type d’enregistrement à interroger. Le formulaire en envoie toujours un, et une requête API sans ce champ interroge A. |
expectedLa réponse contient (texte) | facultatif | Chaîne | Au moins un enregistrement de la réponse doit contenir ce texte. Plusieurs assertions se combinent par ET. |
expected_regexLa réponse correspond à la regex | facultatif | Expression régulière | Au moins un enregistrement de la réponse doit correspondre à ce motif. Un motif invalide termine le check en erreur. |
expected_allValeurs attendues (toutes présentes) | facultatif | Liste de chaînes, une par ligne dans le formulaire | Chaque valeur listée doit figurer dans au moins un enregistrement de la réponse. Utilisez-le quand c’est l’ensemble qui compte, par exemple les enregistrements NS d’une zone. |
serverServeur de noms (facultatif) | facultatif | Nom d’hôte ou IP. Défaut : le résolveur de la sonde | Le serveur de noms à interroger directement, sans cache intermédiaire. Vide, c’est le résolveur de la sonde qui répond, et il voit la zone dans son ensemble. |
cross_refMonitor de référence croisée | facultatif | {"monitor": "<monitor id>", "mode": "identical"}. Mode identical (défaut), subset ou overlap | Compare cet ensemble de réponses au dernier ensemble de réponses d’un autre monitor de l’organisation. Le mode identical exige des ensembles égaux, subset exige que chaque valeur d’ici figure dans l’autre ensemble, et overlap exige au moins une valeur commune. |
interval_secondsIntervalle de check | facultatif | Défaut 300 s. Plage : minimum de l’offre à 24 h | La fréquence à laquelle chaque région exécute le check. Une valeur hors de la plage est relevée au minimum de l’offre ou plafonnée à 24 h, et non rejetée. |
regionsRégions | facultatif | Sous-ensemble de na, eu, as, sa, af, oce. Défaut : les régions de l’offre | Les continents qui exécutent le check. Si vous l’omettez, l’offre applique son jeu par défaut. |
Déroulement d’un check
- Chaque région dont l’intervalle est échu compile d’abord l’expression régulière et résout le type d’enregistrement. Un motif invalide ou un type non pris en charge termine le check en erreur avant l’envoi de toute requête.
- Le résolveur est choisi : le résolveur de mesure du nœud, ou le serveur de noms désigné dans
server. Le nom d’hôte de ce serveur est résolu par le résolveur du nœud puis confronté aux plages bloquées, qui comprennent les adresses de boucle locale, privées, link-local et de métadonnées cloud. - La requête s’exécute et est chronométrée, et le temps de résolution devient la latence du check. Le moteur DNS n’applique pas à la requête elle-même la limite fixe de 10 s du monitor, et le nœud arrête toute exécution après 120 s.
- Une réponse vide fait échouer le check. Sinon,
expected,expected_regexetexpected_allse combinent par ET. - Une réponse qui passe est suivie du contrôle DNSSEC sur DS, DNSKEY et l’expiration RRSIG. Une chaîne bogus ou une signature expirée fait échouer le check, et toute autre issue laisse le résultat tel quel.
- Le plan de contrôle applique la référence croisée quand il enregistre un résultat réussi avec un ensemble de réponses non vide. Un mode inconnu agit comme
identical, et une divergence fait échouer le check avec la gravité critique. Un verdict en échec entre alors dans l’évaluation des incidents, et la politique d’alerte (régions et checks consécutifs) décide de l’ouverture d’un incident.

Ce que contient un résultat
- Réponse
- La ligne de détail liste les enregistrements de la réponse, séparés par des virgules. Avec un serveur de noms désigné, l’adresse qui a répondu suit sous la forme
(via IP). - Temps de résolution
- Le temps de la requête par région est la latence du résultat.
- Ensemble de réponses
- Le plan de contrôle conserve l’ensemble de réponses normalisé de chaque check réussi : en minuscules, trié et dédoublonné. Une référence croisée compare cet ensemble. Il ne fait pas partie du résultat du check exposé par l’API.
- Couche de cause
- Un échec à la cible est attribué à la couche
target_dns. Les preuves de l’incident l’affichent, si bien qu’un enregistrement manquant n’est pas classé comme un défaut réseau. - Région
- Chaque résultat porte la région qui l’a mesuré. Il n’y a pas de sous-résultat par famille IP ni par adresse.
États et gravité
- okLa réponse contient au moins un enregistrement et chaque assertion correspond. DNSSEC n’est pas bogus, aucune signature n’a expiré, et la référence croisée, si elle est définie, concorde.
- en panneLa réponse ne contient aucun enregistrement, une assertion ne correspond pas, ou la référence croisée diverge. Le check échoue aussi sur une chaîne DNSSEC bogus ou un RRSIG expiré. Une erreur de résolution autre que NXDOMAIN, ou un serveur de noms désigné impossible à résoudre, le fait également échouer.
- erreurLe nom n’existe pas (NXDOMAIN), la regex est invalide, le type d’enregistrement n’est pas pris en charge, ou le serveur de noms désigné se trouve sur une adresse privée ou interne. 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. Le moteur ne renvoie pas d’état dégradé pour ce type, seulement réussi, en échec ou en erreur. 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 (nombre ou pourcentage, checks consécutifs et durée minimale).
Offres et limites
- Intervalle minimal
- Free permet 300 s, Pulse 60 s et Sentinel 30 s. Command permet 15 s et Enterprise 10 s, les deux uniquement par MCP. Le formulaire web propose 30 s, 1 min, 5 min, 15 min et 1 h.
- Régions
- Free utilise 2 régions sur 6 et Pulse 3 sur 6. Les 6 sont disponibles à partir de Sentinel.
- Monitors
- Free inclut 10 monitors de sonde, Pulse 50, Sentinel 150 et Command 500. Les quotas Enterprise sont sur mesure. Les 11 types de sonde partagent ce quota.
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": "Apex A record",
"type": "dns",
"interval_seconds": 60,
"config": {
"name": "example.com",
"record_type": "A",
"expected": "203.0.113.10"
}
}
Chaque interface, avec sa limite
Limites
- Un type d’enregistrement par monitor. Un nom avec un enregistrement A et un AAAA demande 2 monitors.
- Aucune comparaison de SOA, de numéro de série ni de délégation entre les serveurs faisant autorité. Le check de domaine s’en charge.
- Les enregistrements TXT sont comparés comme du texte, sans être analysés.
- Avec
serverpointé sur une adresse anycast, chaque région atteint l’instance la plus proche. La ligne de détail indique l’adresse réellement interrogée. - Ce type ne prend pas d’
address_familieset ne renvoie pas de sous-résultats par adresse. Il exécute une requête par région, par le résolveur du nœud ou le serveur de noms désigné. - Un nom qui n’existe pas (NXDOMAIN) est une erreur, pas une assertion en échec. Les deux ouvrent un incident une fois le quorum atteint.
- La référence croisée exige un monitor de la même organisation avec au moins un ensemble de réponses enregistré : un monitor DNS, ou un monitor de domaine avec son jeu NS. Une cible sans ensemble de réponses laisse la référence croisée inactive, et le résultat reste tel que mesuré. L’API et MCP n’acceptent que l’identifiant public du monitor, et le formulaire propose un sélecteur avec tous les monitors du projet.