Vous pouvez créer un moniteur de services pour définir les paramètres de contrôle de santé pour un type de trafic réseau particulier. Lorsque vous associez un moniteur de services à un pool, les membres du pool sont surveillés en fonction des paramètres du moniteur de services.

Les types de moniteurs suivants sont pris en charge : ICMP, TCP, UDP, HTTP, HTTPS, DNS, MSSQL et LDAP.

Procédure

  1. Connectez-vous à vSphere Web Client.
  2. Cliquez sur Mise en réseau et sécurité (Networking & Security) > Dispositifs NSX Edge (NSX Edges).
  3. Double-cliquez sur une instance de NSX Edge.
  4. Cliquez sur Gérer (Manage) > Équilibrage de charge (Load Balancer) > Surveillance des services (Service Monitoring).
  5. Cliquez sur Ajouter (Add).
  6. Entrez un Nom (Name) pour le moniteur de services.
    Intervalle, Délai d'expiration et Nombre maximal de tentatives sont des paramètres courants pour tout type de vérification de l'intégrité.
  7. Entrez l'Intervalle (Interval) (en secondes) auquel un serveur doit être testé.
    L'intervalle est la durée en secondes après laquelle le moniteur envoie des demandes au serveur principal.
  8. Entrez la valeur Délai d'expiration (Timeout). Dans toute vérification de l'intégrité, la valeur du délai d'expiration correspond au laps de temps maximal, exprimé en secondes, au cours duquel une réponse du serveur doit être reçue.
  9. Entrez la valeur du Nombre maximal de tentatives (Max Retries). Cette valeur correspond au nombre de fois où le serveur est testé avant qu'il ne soit déclaré inactif.

    Par exemple, si Intervalle (Interval) est défini sur 5 secondes, Délai d'expiration (Timeout) sur 15 secondes et Nombre maximal de tentatives (Max Retries) sur 3, cela signifie que l'équilibrage de charge NSX sonde le serveur principal toutes les 5 secondes. Ainsi, à chaque interrogation, si la réponse attendue est reçue du serveur sous 15 secondes, la vérification de l'intégrité est OK. Dans le cas contraire, le résultat est CRITIQUE. Si les trois récents résultats de vérification de l'intégrité sont tous INACTIFS, le serveur est marqué comme INACTIF.

  10. Dans le menu déroulant Type, sélectionnez comment envoyer la demande de vérification de l'intégrité au serveur. Les types de moniteurs suivants sont pris en charge : ICMP, TCP, UDP, HTTP, HTTPS, DNS, MSSQL et LDAP. Trois moniteurs prédéfinis sont intégrés au système : default_tcp_monitor, default_http_monitor et default_https_monitor.
  11. Si vous sélectionnez ICMP comme type de moniteur, aucun autre paramètre n'est applicable. Ne renseignez pas les autres paramètres.
  12. Si vous sélectionnez TCP comme type de moniteur, trois paramètres supplémentaires sont disponibles : Envoyer, Recevoir et Extensions.
    1. Envoyer (Send) (facultatif) : la chaîne est envoyée au serveur principal après l'établissement d'une connexion. La longueur de chaîne autorisée maximale est de 256 caractères.
    2. Recevoir (Receive) (facultatif) : entrez la chaîne à rechercher. La chaîne peut être un en-tête ou être située dans le corps de la réponse. Le serveur est considéré comme actif lorsque la chaîne reçue correspond à cette définition.
    3. Extension : entrez des paramètres de moniteur avancés sous la forme de paires clé=valeur dans la section Extension.
      Un exemple d'extension, avertissement=10, indique que si un serveur ne répond pas dans les 10 secondes, l'état est défini comme un avertissement.

      Tous les éléments d'extension doivent être séparés par un caractère de retour chariot.

      Tableau 1. Extensions du protocole TCP
      Extension de moniteur Description
      escape Pour utiliser \n, \r, \t, ou \ dans une chaîne send ou quit. Doit se trouver avant l'option send ou quit. Par défaut : rien n'est ajouté à send, \r\n est ajouté à la fin de quit.
      all Toutes les chaînes attendues doivent s'exécuter dans la réponse du serveur. La valeur par défaut est n'importe laquelle.
      quit=CHAÎNE Chaîne à envoyer au serveur pour initier une nouvelle fermeture de la connexion.
      refuse=ok|warn|crit Pour accepter les refus du TCP avec des états ok, warn ou crit. La valeur par défaut est crit.
      mismatch=ok|warn|crit Pour accepter les discordances de chaînes attendues avec des états ok, warn ou crit. La valeur par défaut est warn.
      jail Pour masquer la sortie du socket TCP.
      maxbytes=ENTIER Pour fermer la connexion une fois de plus que le nombre d'octets spécifié reçu.
      delay=ENTIER Secondes à attendre entre l'envoi d'une chaîne et l'interrogation d'une réponse.
      certificate=ENTIER[,ENTIER] Nombre minimum de jours de validité d'un certificat. La première valeur est le nombre de jours d'un avertissement et la seconde valeur est critique (si non spécifiée - 0).
      warning=DOUBLE Délai de réponse en secondes avant de définir un état d'avertissement.
      critical=DOUBLE Délai de réponse en secondes avant de définir un état critique.
  13. Si vous sélectionnez le type de moniteur HTTP ou HTTPS, procédez comme indiqué ci-dessous :
    1. Attendu (Expected) (facultatif) : entrez la chaîne que le moniteur doit retrouver dans la ligne d'état de la réponse HTTP dans la section Attendu. Il s'agit d'une liste séparée par des virgules.
      Par exemple, 200,301,302,401.
    2. Méthode (Method) (facultatif) : sélectionnez la méthode de détection de l'état du serveur dans le menu déroulant : GET, OPTIONS ou POST.
    3. URL (facultatif) : saisissez l'URL pour GET ou POST (« / » par défaut).
    4. Si vous sélectionnez la méthode POST, entrez les données à envoyer dans la section Gras (Bold).
    5. Entrez la chaîne à rechercher dans le contenu de la réponse dans la section Recevoir (Receive). La chaîne peut être un en-tête ou être située dans le corps de la réponse.
      Si la chaîne dans la section Attendu n'est pas trouvée, le moniteur n'essaie pas de correspondre au contenu Recevoir.

      Exemple de format JSON : Valider la réponse contient "{"Healthy":true}": receive={\"Healthy\":true}

    6. Extension : entrez des paramètres de moniteur avancés sous la forme de paires clé=valeur dans la section Extension.
      Un exemple d'extension, avertissement=10, indique que si un serveur ne répond pas dans les 10 secondes, l'état est défini comme un avertissement.
      Tous les éléments d'extension doivent être séparés par un caractère de retour chariot.
      Note : Pour eregi, regex et ereg, si la chaîne contient { } et “, vous devez ajouter un caractère \ avant d'analyser la chaîne pour le format JSON. Exemple de format JSON : Valider la réponse contient "{"Healthy":true}": eregi="\{\"Healthy\":true\}".
      Tableau 2. Extensions du protocole HTTP/HTTPS
      Extension de moniteur Description
      no-body Pour ne pas attendre de corps de document : cesser la lecture après les en-têtes. Notez que cela entraîne malgré tout une demande HTTP GET ou POST, et pas une demande HEAD.
      ssl-version=3

      Forcez l'établissement de liaison SSL à l'aide de sslv3.

      sslv3 et tlsv1 sont désactivés dans l'option de vérification de l'intégrité par défaut.

      ssl-version=10 Forcez l'établissement de liaison SSL à l'aide de tls 1.0.
      ssl-version=11 Forcez l'établissement de liaison SSL à l'aide de tls 1.1.
      ssl-version=12 Forcez l'établissement de liaison SSL à l'aide de tls 1.2.
      max-age=SECONDES Pour avertir si un document date de plus d'un certain nombre de SECONDES. Ce chiffre peut également s'exprimer sous forme de 10m pour les minutes, 10h pour les heures ou de 10d pour les jours.
      content-type=CHAÎNE Spécifiez le type de support d'en-tête de type de contenu dans les appels POST.
      linespan Pour autoriser le regex à étendre de nouvelles lignes (doit être précédé de -r ou -R).
      regex=CHAÎNE ou ereg=CHAÎNE Page de recherche de CHAÎNE regex.
      eregi=CHAÎNE Page de recherche de CHAÎNE regex sensible à la casse.

      Par exemple :

      • Valider la réponse contient "OK1" ou "OK2": eregi="(OK1|OK2)"
      • Valider la réponse contient "{"Healthy":true}": eregi="{\"Healthy\":true}"
      invert-regex Pour renvoyer CRITIQUE s'il est trouvé, OK dans le cas contraire.
      proxy-authorization=PAIRE_AUTH Nom d'utilisateur : Mot de passe sur les serveurs proxy avec une authentification de base.
      useragent=CHAÎNE Chaîne à envoyer dans l'en-tête HTTP en tant qu'User Agent.
      header=CHAÎNE Toutes les autres balises à envoyer dans l'en-tête HTTP. Pour utiliser plusieurs fois pour les en-têtes supplémentaires.

      Par exemple :

      header="Host: app1.xyz.com

      onredirect=ok|warning|critical|follow|sticky|stickyport Pour gérer des pages redirigées. sticky est comme suivre, mais en s'en tenant à l'adresse IP spécifiée. stickyport garantit également que le port reste identique.
      pagesize=ENTIER:INTEGER Taille minimale de page requise (octets) : Taille maximale de page requise (octets).
      warning=DOUBLE Délai de réponse en secondes avant de définir un état d'avertissement.
      critical=DOUBLE Délai de réponse en secondes avant de définir un état critique.
      expect = STRING

      Liste de chaînes délimitées par des virgules, au moins une d'entre elles étant attendue dans la première ligne (état) de la réponse du serveur (par défaut : HTTP/1). Si spécifié, toutes les autres logiques de ligne d'état (ex : traitement 3xx, 4xx, 5xx) sont ignorées

      string = STRING Chaîne attendue dans le contenu.
      url = PATH URL vers GET ou POST (par défaut : /).
      post = STRING URL pour coder les données http POST.
      method = STRING Définit la méthode HTTP (par exemple, HEAD, OPTIONS, TRACE, PUT, DELETE).
      timeout = INTEGER Nombre de secondes avant l'expiration de la connexion (la valeur par défaut est 10 secondes).
      header=Host:host_name -H host_name --sni

      host_name est un nom d'hôte valide ou un nom de domaine complet de l'hôte.

      Créez un moniteur de services distinct pour chaque hôte virtuel et ajoutez une extension d'indication de nom de serveur (SNI) dans chaque moniteur de services.

      Tableau 3. Extensions du protocole HTTPS
      Extension de moniteur Description
      certificate=ENTIER Nombre minimal de jours de validité d'un certificat. La valeur par défaut du port est 443. Lorsque cette option est utilisée, l'URL n'est pas cochée.
      authorization=PAIRE_AUTH Nom d'utilisateur : Mot de passe sur les sites avec une authentification de base.
      ciphers=’ECDHE-RSA-AES256-GCM-SHA384’ Affichez des chiffrements utilisés dans la vérification de l'intégrité HTTPS.
  14. Si vous sélectionnez UDP comme type de moniteur, effectuez les étapes suivantes :
    1. Envoyer (Send) (obligatoire) : entrez la chaîne à envoyer au serveur principal une fois la connexion établie.
    2. Recevoir (Receive) (obligatoire) : entrez la chaîne qui devrait être reçue du serveur principal. Le serveur est considéré comme actif uniquement lorsque la chaîne reçue correspond à cette définition.
    Note :

    Aucune extension n'est prise en charge par le moniteur UDP.

  15. Si vous sélectionnez DNS comme type de moniteur, effectuez les étapes suivantes :
    1. Envoyer (Send) (obligatoire) : entrez la chaîne à envoyer au serveur principal une fois la connexion établie.
    2. Recevoir (Receive) : entrez la chaîne qui devrait être reçue du serveur principal. Le serveur est considéré comme actif uniquement lorsque la chaîne reçue correspond à cette définition.
    3. Extension : entrez des paramètres de moniteur avancés sous la forme de paires clé=valeur dans la section Extension.
      Un exemple d'extension, avertissement=10, indique que si un serveur ne répond pas dans les 10 secondes, l'état est défini comme un avertissement. Ce type de moniteur prend en charge uniquement le protocole TCP.

      Tous les éléments d'extension doivent être séparés par un caractère de retour chariot.

    Tableau 4. Extensions du protocole DNS
    Extension de moniteur Description
    querytype=TYPE

    Facultatif : type de requête d'enregistrement DNS où TYPE =A, AAAA, SRV, TXT, MX, CNAME, ANY.

    • A = adresse de l'hôte IPv4
    • AAAA = adresse de l'hôte IPv6
    • SRV = localisateur de service
    • TXT = enregistrement de texte
    • MX = échange de messages électroniques pour l'enregistrement de domaine
    • CNAME = nom canonique d'un enregistrement d'alias

    Le type de requête par défaut est A.

    expect-authority

    Facultatif : attendez que le serveur DNS fasse autorité pour la recherche.

    accept-cname

    Facultatif : acceptez les réponses cname comme résultat valide d'une requête. Il est utilisé avec querytype=CNAME.

    La valeur par défaut consiste à ignorer les réponses cname dans le cadre du résultat.

    warning=seconds

    Facultatif : renvoie un message d'avertissement si le temps écoulé dépasse la valeur fournie.

    Par défaut, il est défini sur désactivé.

    critical=seconds Facultatif : renvoie un message critique si le temps écoulé dépasse la valeur fournie.

    Par défaut, il est défini sur désactivé.

  16. Si vous sélectionnez MSSQL comme type de moniteur, effectuez les étapes suivantes :
    1. Envoyer (Send) : entrez la chaîne à exécuter sur le serveur principal une fois la connexion établie.
    2. Recevoir (Receive) : entrez la chaîne qui devrait être reçue du serveur principal. Le serveur est considéré comme actif uniquement lorsque la chaîne reçue correspond à cette définition.
    3. Nom d'utilisateur (User Name), Mot de passe (Password) et Confirmer le mot de passe (Confirm password) (obligatoires) : entrez le nom d'utilisateur obligatoire, le mot de passe et confirmez le mot de passe entré. Comme un moniteur est associé à un pool, vous devez définir des serveurs MSSQL dans le pool avec le même nom d'utilisateur et le même mot de passe que ceux indiqués ici.
    4. Extension : entrez des paramètres de moniteur avancés sous la forme de paires clé=valeur dans la section Extension.
      Un exemple d'extension, avertissement=10, indique que si un serveur ne répond pas dans les 10 secondes, l'état est défini comme un avertissement.

      Tous les éléments d'extension doivent être séparés par un caractère de retour chariot.

    Tableau 5. Extensions du protocole MSSQL
    Extension de moniteur Description
    database=DBNAME

    Facultatif : nom de la base de données à laquelle se connecter.

    Cette extension est obligatoire lorsque le paramètre Envoyer ou storedproc est utilisé.
    storedproc=STOREPROC

    Facultatif : procédure stockée à exécuter sur le serveur MSSQL.

  17. Si vous sélectionnez LDAP comme type de moniteur, effectuez les étapes suivantes :
    1. Mot de passe (Password) et Confirmer le mot de passe (Confirm password) (facultatifs) : entrez le mot de passe obligatoire et confirmez le mot de passe entré.
    2. Extension : entrez des paramètres de moniteur avancés sous la forme de paires clé=valeur dans la section Extension.
      Un exemple d'extension, avertissement=10, indique que si un serveur ne répond pas dans les 10 secondes, l'état est défini comme un avertissement.

      Tous les éléments d'extension doivent être séparés par un caractère de retour chariot.

    Tableau 6. Extensions du protocole LDAP
    Extension de moniteur Description
    attr=’ATTR’

    Facultatif : attribut LDAP à rechercher (par défaut : ‘(objectclass=*)’.

    Vous devez utiliser attr avec la plage crit-entires.

    base=’cn=admin,dc=example,dc=com’

    Obligatoire : base LDAP (par exemple, ou=my unit, o=my org, c=at.

    ver2 ou ver3

    Facultatif :

    • ver2 : utilisez le protocole LDAP version 2.
    • ver3 : utilisez le protocole LDAP version 3.

    La version du protocole par défaut est ver2.

    bind=BINDDN

    Facultatif : nom unique de liaison LDAP (si nécessaire).

    Pour plus d'informations, consultez https://www.ldap.com/the-ldap-bind-operation.

    crit=DOUBLE Facultatif : temps de réponse pour entraîner un état critique (en secondes).
    crit-entries=low:high Facultatif : nombre d'entrées trouvées pour entraîner un état critique.

    Si le nombre d'entrées trouvées est en dehors de la plage [faible, haute], le résultat de la vérification de l'intégrité est critique.

  18. Cliquez sur OK.

Que faire ensuite

Associez un moniteur de services à un pool.