EdgeADC
Guide d'administration de l'ADC d'Edgenexus
×
Menu

Moniteurs de serveurs réels

Lorsque l'équilibrage des charges est mis en place, il est utile de surveiller l'état de santé des serveurs réels et des applications qui y sont exécutées. Par exemple, dans les serveurs Web, vous pouvez configurer une page spécifique que vous pouvez utiliser pour surveiller l'état ou utiliser l'un des autres systèmes de surveillance dont dispose l'ADC.
La page Library > Real Server Monitors vous permet d'ajouter, d'afficher et de modifier des surveillances personnalisées. Il s'agit de "contrôles de santé" du serveur de la couche 7. Vous pouvez les sélectionner dans le champ Surveillance du serveur dans l'onglet Basique du service virtuel que vous définissez.
La page des moniteurs du serveur réel est divisée en trois sections.
·     Détails
·     Télécharger
·     Moniteurs personnalisés
Détails
La section Détails est utilisée pour ajouter de nouveaux moniteurs et pour supprimer ceux dont vous n'avez pas besoin. Vous pouvez également modifier un moniteur existant en double-cliquant dessus.
Nom
Nom de votre choix pour votre moniteur.
Description
Description textuelle pour ce moniteur. Nous vous recommandons de la rendre aussi descriptive que possible.
Méthode de surveillance
Choisissez la méthode de surveillance dans la liste déroulante. Les choix disponibles sont :
Méthode de surveillance
Description
Exemple
HTTP 200 OK
Une connexion TCP est établie avec le serveur réel. Une fois la connexion établie, une brève requête HTTP est envoyée au serveur réel. Une réponse HTTP du serveur est attendue, puis le code de réponse "200 OK" est vérifié. Si le code de réponse "200 OK" est reçu, le serveur réel est considéré comme opérationnel. Si, pour une raison quelconque, le code de réponse "200 OK" n'est pas reçu, y compris les délais d'attente ou l'échec de la connexion, le serveur réel est considéré comme hors service et indisponible. Cette méthode de surveillance ne peut vraiment être utilisée qu'avec les types de service HTTP et HTTP accéléré. Toutefois, si un type de service de couche 4 est utilisé pour un serveur HTTP, il peut toujours être utilisé si SSL n'est pas utilisé sur le serveur réel ou s'il est géré de manière appropriée par la fonction "Content SSL".
Nom : 200OK
Description : Vérifier le site web de la production
Méthode de surveillance : HTTP 200 OK
Emplacement de la page : /main/index.html OU HTTP://www.edgenexus.io/main/index.html Contenu obligatoire : N/A
Réponse HTTP
Une connexion et une demande/réponse HTTP sont établies avec le serveur réel et vérifiées comme expliqué dans l'exemple précédent. Mais plutôt que de vérifier le code de réponse "200 OK", l'en-tête de la réponse HTTP est vérifié pour le contenu du texte personnalisé. Le texte peut être un en-tête complet, une partie d'un en-tête, une ligne d'une partie d'une page ou juste un mot. Si le texte est trouvé, le serveur Real est considéré comme étant opérationnel. Cette méthode de surveillance ne peut vraiment être utilisée qu'avec les types de service HTTP et HTTP accéléré. Toutefois, si un type de service de couche 4 est utilisé pour un serveur HTTP, il peut toujours être utilisé si SSL n'est pas utilisé sur le serveur réel ou s'il est géré de manière appropriée par la fonction "Content SSL".
Nom : Serveur en place
Description : Vérifiez le contenu de la page pour "Server Up. "
Méthode de surveillance : Réponse HTTP
Emplacement de la page : /main/index.html OU HTTP://www.edgenexus.io/main/index.html Contenu obligatoire : Serveur en place
DICOM
Nous envoyons un écho DICOM en utilisant la valeur "Source Calling" AE Title dans la colonne de contenu requise. Vous pouvez également définir la valeur AE Title "Destination appelée" dans la section Notes de chaque serveur. Vous pouvez trouver la colonne Notes dans la section IP Services-
-Virtual Services--Server page.
Nom : DICOM
Description : Contrôle de santé L7 pour le service DICOM
Méthode de surveillance : DICOM
Emplacement de la page : N/A
Contenu obligatoire : Valeur AET
TCP hors bande
La méthode TCP Out of Band est semblable à une connexion TCP, sauf que vous pouvez spécifier le port que vous souhaitez surveiller dans la colonne du contenu requis. Ce port n'est généralement pas le même que le port de trafic et est utilisé lorsque vous voulez lier des services entre eux
Nom : TCP hors bande
Description : Surveillance du port hors bande/trafic
Emplacement de la page : N/A
Contenu obligatoire : 555
Moniteur TCP multiport
Cette méthode est semblable à la précédente, sauf que vous pouvez avoir plusieurs ports différents. Le moniteur est considéré comme réussi uniquement si tous les ports spécifiés dans la section du contenu requis répondent correctement.
Nom : Moniteur Multi-Port
Description : Surveillez le succès de plusieurs ports
Emplacement de la page : N/A
Contenu obligatoire : 135,59534,59535
 
 
 
Emplacement de la page
URL Emplacement de la page pour un moniteur HTTP. Cette valeur peut être un lien relatif tel que /dossier1/dossier2/page1.html. Vous pouvez également utiliser un lien absolu où le site Web est lié au nom d'hôte.
Contenu obligatoire
Cette valeur contient tout contenu que le moniteur doit détecter et utiliser. La valeur représentée ici changera en fonction de la méthode de surveillance choisie.
Appliqué à VS
Ce champ est automatiquement rempli avec l'IP/Port du service virtuel auquel le moniteur est appliqué. Vous ne pourrez pas supprimer un moniteur qui a été utilisé avec un service virtuel.
Utilisateur
Certains moniteurs personnalisés peuvent utiliser cette valeur ainsi que le champ du mot de passe pour se connecter à un serveur Real.
Mot de passe
Certains moniteurs personnalisés peuvent utiliser cette valeur avec le champ Utilisateur pour se connecter à un serveur Real.
Seuil
Le champ Seuil est un nombre entier général utilisé dans les moniteurs personnalisés où un seuil tel que le niveau du CPU est requis.
REMARQUE : Veuillez vous assurer que la réponse du serveur d'application n'est pas une réponse "Chunked".
Exemples de Real Server Monitor
Moniteur de téléchargement
Il y aura de nombreuses occasions où les utilisateurs souhaiteront créer leurs propres moniteurs personnalisés et cette section leur permet de les télécharger vers le CDA.
Les moniteurs personnalisés sont écrits à l'aide de scripts PERL et ont une extension de fichier .pl.
·     Donnez un nom à votre moniteur afin de pouvoir l'identifier dans la liste des méthodes de surveillance.
·     Recherchez le fichier .pl
·     Cliquez sur Télécharger un nouveau moniteur
·     Votre fichier sera téléchargé au bon endroit et sera visible en tant que nouvelle méthode de surveillance.
Moniteurs personnalisés
Dans cette section, vous pouvez visualiser les moniteurs personnalisés téléchargés et les supprimer s'ils ne sont plus nécessaires.
·     Cliquez sur le menu déroulant
·     Sélectionnez le nom du moniteur personnalisé
·     Cliquez sur Supprimer
·     Votre moniteur personnalisé ne sera plus visible dans la liste des méthodes de surveillance.
Création d'un script Perl de surveillance personnalisé
ATTENTION : Cette section est destinée aux personnes ayant une expérience de l'utilisation et de l'écriture en Perl.
Cette section vous présente les commandes que vous pouvez utiliser dans votre script Perl.
La commande #Monitor-Name : est le nom utilisé pour le script Perl stocké sur le CDA. Si vous n'incluez pas cette ligne, votre script ne sera pas trouvé !
Les éléments suivants sont obligatoires :
·     #Moniteur-Nom
·     utiliser strictement ;
·     avertissement d'utilisation ;
Les scripts Perl sont exécutés dans un environnement CHROOTED. Ils appellent souvent une autre application telle que WGET ou CURL. Parfois, ces derniers doivent être mis à jour pour une fonctionnalité spécifique, telle que SNI.
Valeurs dynamiques
·     my $host = $_[0] ; - Ceci utilise l'"Adresse" de la section Services IP--Réel serveur
·     my $port = $_[1] ; - Ceci utilise le "Port" de la section Services IP--Réel serveur
·     my $content = $_[2] ; - Ceci utilise la valeur "Required Content" de la section Library--Real Server Monitoring de la bibliothèque.
·     my $notes = $_[3] ; - Ceci utilise la colonne "Notes" dans la section Real Server des Services IP
·     my $page = $_[4] ; - Ceci utilise les valeurs de "Page Location" de la section Library--Real Server Monitor (bibliothèque)
·     my $user = $_[5] ; - Ceci utilise la valeur "User" de la section Library--Real Server Monitor (Bibliothèque--Real Server Monitor)
·     my $password = $_[6] ; - Ceci utilise la valeur "Password" de la section Library--Real Server Monitor (Bibliothèque--Real Server Monitor)
Les bilans de santé personnalisés ont deux résultats
·     Succès
Valeur de retour 1Imprime
un message de réussite à SyslogMarque
le serveur réel en ligne (si IN COUNT correspond)
·     Unsuccessful
Valeur de retour 2Imprime
un message disant Unsuccessful à SyslogMarque
le serveur réel hors ligne (à condition que le nombre d'OUT corresponde)
Exemple d'un moniteur de santé personnalisé
#Moniteur-Nom HTTPS_SNI
utiliser strictement :
avertissements d'utilisation ;
Le nom du moniteur comme ci-dessus est affiché dans la liste déroulante des bilans de santé disponibles.
# Il y a 6 valeurs passées à ce script (voir ci-dessous)
# Le script retournera les valeurs suivantes
# 1 est que le test est réussi
# 2 si le test est infructueux sub monitor
{
my Shost=      $_[O] ; ### IP ou nom de l'hôte
my Sport=      $_[1] ; ### Port de l'hôte
my Scontent=      $_[2] ; ### Contenu à rechercher (dans la page Web et les en-têtes HTTP)
my Snotes=      $_[3] ; ### Nom d'hôte virtuel
my Spage=      $_[4] ; ### La partie de l'URL après l'adresse de l'hôte
my Suser=      $_[5] : ### domaine/nom d'utilisateur (facultatif)
my Spassword=      $_[6] ; ### mot de passe (facultatif)
mon $resolve ;
mon $auth      = ;    
if ($port)
{
     $resolve = "$notes:$port:$host" :
}
else {
     $resolve = "$notes:$host" ;
}
if ($user && $password) {
     $auth = "-u $user:$password :
}
my @lines = 'curl -s -i -retry 1 -max-time 1 -k -H "Hôte:$notes --resolve $auth HTTPs://${notes}${page} 2>&1' ; if(join(""@lines)=~/$content/)
     {
     imprimez "HTTPs://$notes}${page} looking for - $content - Health check successful.\n" ;
     retour(1) ;
     }
sinon
     {
     print "HTTPs://${notes}${page} looking for - $content - Health check failed.\n" ;
     retour(2)
     }
}
moniteur(@ARGV) :
REMARQUE : Surveillance personnalisée - L'utilisation de variables globales n'est pas possible. Utilisez uniquement les variables locales - les variables définies à l'intérieur des fonctions