Capacité

Supervision Active de Santé

Ne vous contentez pas du 200 OK — vérifiez que les services fonctionnent réellement au niveau du protocole, de la session et du contenu.

La Supervision Active de Santé de TR7 vérifie non seulement si un port backend est ouvert, mais si le service fait réellement le travail qu'il est censé faire. Onze types de protocoles — TCP, UDP, HTTP, HTTPS, PING, DNS, FTP, FTPS, LDAP, LDAPS et Oracle — sont gérés sous un seul modèle de contrôle de santé. Pour les contrôles HTTP et HTTPS, TR7 ne s'arrête pas au code de statut ; le contenu du corps de la réponse peut également être validé. En mode basique, une correspondance de texte est effectuée ; en mode JSONata, des conditions significatives sont interrogées à l'intérieur de la réponse JSON. Pour les scénarios TCP, UDP, FTP et Oracle, des flux multi-étapes sont définis pour simuler le comportement réel des utilisateurs ou des systèmes. Les contrôles de santé s'exécutent sur une infrastructure de contrôle de santé dédiée et ne bloquent pas le flux proxy principal. L'intervalle, le timeout, le seuil de succès requis, le seuil d'échec requis et le comportement d'attente négative sont tous configurables pour correspondre à la sensibilité de chaque service. Résultat : TR7 va au-delà du contrôle ordinaire « le service a répondu » et ne place dans la rotation active que les backends validés au niveau du protocole, du contenu, de la session et des dépendances.

11
Types de protocoles pris en charge — de TCP à Oracle dans une seule configuration
0,5 s
Intervalle minimum de sonde — plage configurable jusqu'à 3 600 secondes
JSONata
Langage de requête pour la validation de contenu JSON au niveau sémantique

200 OK montre généralement qu'un service a répondu — pas qu'il est en bonne santé.

Un contrôle de santé typique envoie une requête à un endpoint, voit une réponse 200 et marque le service comme sain. Dans les applications modernes, ce n'est pas suffisant. La page d'accueil de l'application peut répondre pendant que la connexion à la base de données est lente, que la couche de cache est défaillante, qu'une dépendance en aval est tombée ou que le flux de connexion a cessé de fonctionner. Si l'équilibreur de charge ne peut pas voir cette différence, il continue de router le trafic vers des backends qui répondent mais ne peuvent pas faire de travail réel.

Les contrôles en une seule étape sont encore plus insuffisants pour les protocoles basés sur les sessions. Pour FTP, LDAP, Oracle ou les protocoles TCP personnalisés, avoir le port ouvert ne signifie pas que le service est sain. Un vrai contrôle de santé doit se connecter, envoyer une commande, recevoir la réponse attendue, se déconnecter si nécessaire et valider le contenu de la réponse. Sinon, le service semble accessible pendant que les opérations utilisateur réelles échouent.

La validation de contenu devient fragile lorsqu'elle se limite à la correspondance de texte brut. Une API peut toujours retourner le mot « OK » pendant que l'état des dépendances, la métrique de latence ou la règle métier à l'intérieur du JSON est en échec. Lorsqu'un contrôle de santé ne peut pas interroger la signification de la réponse, les dégradations au niveau applicatif sont détectées tardivement.

La bonne approche est d'aborder les contrôles de santé avec la profondeur de protocole, des scénarios multi-étapes, des requêtes de contenu et des seuils rise/fall configurables. Les opérations de sonde doivent s'exécuter isolées du flux de trafic principal afin que les contrôles de santé lents ou bloqués ne retardent pas le trafic utilisateur.

La Supervision Active de Santé de TR7 délivre ce modèle : elle surveille 11 protocoles depuis une seule configuration, exécute des scénarios multi-étapes, valide la signification du contenu avec JSONata et ne maintient dans la rotation que les cibles véritablement saines.

Notre approche

TR7 transforme la vérification de santé d'un contrôle à protocole unique en un système de décision multi-protocole, basé sur des scénarios et à validation de contenu.

Un seul modèle de configuration couvre 11 types de protocoles

Les contrôles TCP, UDP, HTTP, HTTPS, PING, DNS, FTP, FTPS, LDAP, LDAPS et Oracle sont tous gérés depuis le même objet de contrôle de santé. Selon le checkType sélectionné, seuls les champs pertinents sont affichés, de sorte que les opérateurs ne sont pas surchargés de paramètres non pertinents.

Les scénarios multi-étapes simulent le comportement réel des protocoles

Pour les contrôles TCP, UDP et Oracle, des flux de contrôle ordonnés sont construits en utilisant des étapes send, expect, regex et wait. Si une étape échoue, la sonde est marquée comme échouée et l'état de santé du backend est mis à jour en conséquence.

JSONata valide le corps de la réponse au niveau sémantique

Pour les contrôles HTTP et HTTPS, des requêtes JSONata sont utilisées pour lire l'état réel à l'intérieur d'une réponse JSON. Un backend n'est pas considéré comme sain simplement pour avoir retourné 200 — des champs tels que l'état des dépendances, le score, la latence ou l'état métier peuvent également être vérifiés.

Les seuils rise et fall filtrent le comportement instable

Le nombre de réponses échouées consécutives requis pour marquer un backend comme non sain et le nombre de réponses réussies consécutives requises pour le remettre dans la rotation sont configurés indépendamment. Cela empêche les fluctuations réseau transitoires de faire continuellement entrer et sortir les backends de la rotation.

Capacités

La Supervision Active de Santé rend différents types de services définissables, testables et gérables avec des seuils opérationnels — le tout depuis le même éditeur.

11 types de protocoles gérés depuis un seul écran de contrôle de santé

TR7 prend en charge les contrôles de santé TCP, UDP, HTTP, HTTPS, PING, DNS, FTP, FTPS, LDAP, LDAPS et Oracle. Les opérateurs n'ont pas besoin d'outils séparés pour une base de données Oracle, un annuaire LDAP, un serveur DNS, un référentiel FTPS ou une API HTTP. Les champs pertinents apparaissent en fonction du type de protocole sélectionné ; les champs non pertinents sont masqués. Ce modèle rend la vérification de santé à travers des backends hétérogènes standardisée et maintenable.

Le langage de scénario TCP prend en charge les contrôles de bannière, de commande et de regex

Pour les contrôles TCP, des étapes sendText, expectText, expectRegex et wait peuvent être exécutées en séquence. Les bannières SMTP, les requêtes de capacité IMAP, les échanges Redis PING/PONG, les réponses MQTT et les messages de protocole TCP personnalisés sont tous testables avec ce modèle. Au lieu de simplement ouvrir une connexion, un vrai dialogue de protocole est exécuté. Si une étape ne produit pas le résultat attendu, le backend est marqué comme non sain.

Les scénarios UDP fonctionnent avec des payloads texte, hex et base64

Pour les contrôles UDP, des étapes send, wait, expectText et expectRegex sont disponibles. Les données à envoyer peuvent être définies en format texte, hex ou base64, offrant de la flexibilité pour les sondes de protocoles binaires. Pour les services UDP tels que DNS, NTP, RADIUS, SIP et similaires, la réponse de protocole attendue est validée — pas seulement si le port est ouvert. Cela rend les services UDP activement et significativement surveillables.

Les contrôles HTTP et HTTPS sont configurés comme de vraies requêtes client

Les contrôles de santé HTTP/HTTPS prennent en charge la méthode, l'URI, une liste de headers personnalisés, le corps de la requête et l'hôte virtuel. Un endpoint API peut être sondé avec un header Authorization, un corps JSON ou un header Host personnalisé. Les codes de statut acceptables n'ont pas à être une seule valeur — 200, 204 ou 304 peuvent tous être considérés comme sains. Cette conception rapproche la vérification de santé de l'utilisation applicative réelle.

Les requêtes JSONata valident la signification réelle d'une réponse de service

Lorsque contentCheckMode est défini à jsonata, le corps de la réponse est évalué en JSON et l'expression JSONata est exécutée. L'état du service, le résultat de dépendance, la latence de base de données ou une métrique métier peuvent tous être vérifiés dans une seule expression. Si l'expression produit un résultat vrai, le backend est sain ; un résultat faux le marque comme défaillant. Les erreurs JSONata sont journalisées afin qu'une expression incorrecte ou une structure de réponse inattendue devienne visible.

Le contrôle de contenu basique fournit une validation rapide et simple de marqueur

Pour les scénarios simples qui ne nécessitent pas JSONata, contentQuery effectue une recherche de texte à l'intérieur du corps de la réponse. Des chaînes marqueurs telles que « Welcome », « UP » ou « Service Ready » — ou du texte spécifique à l'application — peuvent être vérifiées rapidement. Ce mode offre une solution à faible complexité pour les endpoints de santé simples ou les applications legacy. Les opérateurs choisissent entre le contrôle basique et JSONata en fonction du scénario.

Les tests de bind LDAP et LDAPS mesurent la santé de l'authentification

Les contrôles LDAP/LDAPS peuvent tester non seulement l'accès au port mais l'opération de bind réelle. Un bind effectué avec un nom d'utilisateur et un mot de passe valide le service d'annuaire au niveau de l'authentification. Même si le port est ouvert, un backend peut être marqué comme non sain si la queue de bind, l'autorisation ou le service a un problème. Cela fournit une visibilité critique particulièrement pour les flux AAM et d'accès en entreprise.

Les contrôles Oracle valident les commandes SQL et les nombres de lignes attendus

Les contrôles de santé Oracle prennent en charge les détails de connexion, le nom d'utilisateur, le mot de passe et les étapes de scénario. Le SQL est exécuté via executeCmd et le texte attendu ou le nombre minimum de lignes est vérifié. Au lieu d'un simple test de connexion, l'accès réel aux données et les métriques métier peuvent être interrogés. Cette approche rend la question de la disponibilité de la base de données significative du point de vue applicatif.

Profondeur opérationnelle

Les contrôles de santé opèrent conjointement avec l'intervalle, le timeout, le seuil, la composition des scénarios, l'identité des instances et les contrôles spécialisés internes au système.

01

Configuration de l'intervalle et du timeout

testInterval est configurable de 0,5 à 3 600 secondes ; la valeur par défaut est 1 seconde. timeout est configurable de 0,01 à 3 600 secondes. Un timeout agressif permet un failover plus rapide mais peut augmenter le risque de faux positifs et doit être ajusté au comportement du service.

02

Seuils rise et fall

requiredFailure est par défaut à 2 ; requiredSuccess est par défaut à 3. Ces seuils déterminent la rapidité avec laquelle un service est retiré de la rotation et la prudence avec laquelle il est remis. Les deux côtés du seuil sont gérés indépendamment pour filtrer les fluctuations transitoires.

03

Composition de conditions multi-étapes

Un seul contrôle de santé peut combiner plusieurs contrôles atomiques en utilisant une logique AND/OR. Cela signifie que non seulement un seul résultat de sonde mais plusieurs dépendances ou étapes de protocole peuvent être évaluées ensemble. La santé complexe des services est modélisée de manière plus réaliste.

04

État d'instance par cible

Le même contrôle de santé maintient un état séparé pour chaque backend. L'ID d'instance du contrôle de santé est différencié par contrôle et par cible. Cela signifie que même lorsque le même profil de contrôle est appliqué à plusieurs cibles, l'historique de santé de chaque cible est suivi indépendamment.

05

Mode d'attente négative

Le paramètre negate inverse la logique de succès normale. Ce mode est utilisé lorsqu'une URL spécifique est censée être inaccessible, qu'une réponse spécifique est censée ne pas être retournée, ou qu'un chemin de service est censé rester inaccessible. Une réponse réussie est traitée comme un échec ; une réponse échouée est traitée comme un succès.

06

Contrôles spécialisés internes au système

Les contrôles de santé internes au système tels que les moniteurs de passerelle et les contrôles de connexion IP de cluster peuvent être générés automatiquement. Ces contrôles sont utilisés pour surveiller non seulement les backends applicatifs mais aussi la connectivité et l'accessibilité en amont autour de TR7. Le modèle peut être étendu avec des types de contrôle supplémentaires tels que les contrôles de datacenter côté GTM.

Quand l'utiliser

Mesure de la vraie santé d'un service de panier e-commerce

Une équipe e-commerce peut utiliser un contrôle HTTP avec JSONata pour vérifier non seulement que le service de panier retourne 200 mais aussi que la latence de base de données et les métriques de disponibilité sont dans les limites. Un backend lent ou dégradé par des dépendances est automatiquement retiré de la rotation.

Contrôles fonctionnels sur un cluster Oracle bancaire

Les équipes bancaires peuvent utiliser les contrôles Oracle pour aller au-delà de l'ouverture d'une connexion et exécuter réellement des requêtes SQL. Si le nombre de lignes attendu ou le résultat de la requête n'est pas satisfait, le backend est marqué comme non sain et le trafic est dirigé vers des cibles sûres.

Validation de bind LDAPS sur un portail gouvernemental

Les applications gouvernementales peuvent vérifier qu'un service d'annuaire fonctionne non seulement au niveau du port mais via une opération de bind réelle. Si le port est ouvert mais que l'authentification échoue, le système traite cela comme un problème de santé.

Vraies requêtes d'enregistrement sur une ferme DNS télécom

Les équipes télécom peuvent exécuter de vraies requêtes d'enregistrement pour un domaine critique en utilisant un contrôle DNS. Avoir le port DNS ouvert n'est pas suffisant — le résolveur doit produire la réponse attendue pour être considéré comme sain.

Questions fréquentes

Quels protocoles sont couverts par la supervision active de santé ?
TR7 prend en charge 11 types de protocoles : TCP, UDP, HTTP, HTTPS, PING, DNS, FTP, FTPS, LDAP, LDAPS et Oracle. Tous les types sont gérés depuis un seul modèle de configuration de contrôle de santé ; seuls les champs pertinents au protocole sélectionné sont affichés.
Comment fonctionne la validation de contenu JSONata ?
Lorsque contentCheckMode est défini à jsonata, le corps de la réponse HTTP ou HTTPS est évalué en JSON et l'expression JSONata définie est exécutée. Si l'expression produit un résultat vrai, le backend est sain ; un résultat faux le marque comme défaillant. Les erreurs sont journalisées pour faciliter le diagnostic.
Comment les contrôles de santé affectent-ils le flux de trafic principal ?
Les contrôles de santé s'exécutent sur une infrastructure séparée et ne bloquent pas le flux proxy principal. Les sondes lentes ou ayant expiré ne retardent pas le trafic utilisateur ; l'état de santé de chaque backend est évalué indépendamment.
Que font les seuils rise et fall ?
requiredFailure définit le nombre de réponses échouées consécutives requis avant qu'un backend soit marqué comme non sain (par défaut 2). requiredSuccess définit le nombre de réponses réussies consécutives requis avant qu'il soit remis dans la rotation (par défaut 3). Les deux seuils sont configurés indépendamment, réduisant l'instabilité causée par des fluctuations réseau transitoires.
Un contrôle LDAP teste-t-il uniquement l'accès au port ?
Non. Les contrôles LDAP et LDAPS peuvent également exécuter une vraie opération de bind lorsque ldapAuth est activé. Même si le port est ouvert, un backend est marqué comme non sain si le bind échoue — par exemple en raison d'un problème d'identifiants ou d'une surcharge de la queue.
Quand le mode d'attente négative est-il utilisé ?
Le paramètre negate : true est utilisé lorsqu'une URL spécifique est censée être inaccessible, qu'une réponse spécifique est censée ne pas être retournée, ou qu'un chemin de service est censé rester fermé. Une réponse qui compterait normalement comme un succès est traitée comme un échec dans ce mode, et vice versa.

Vérifiez que vos backends sont véritablement sains

Basez vos décisions de trafic sur des données de santé fiables à travers 11 protocoles, des scénarios multi-étapes et la validation de contenu JSONata. Laissez-nous vous présenter une mise en place en direct sur vos propres services.