La page Real Server Monitor
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, et nous recommandons qu'il est préférable de le rendre aussi descriptif que possible.
Méthode de contrôle
Choisissez la méthode de surveillance dans la liste déroulante. Les choix disponibles sont les suivants :
· HTTP 200 OK
· HTTP 200 Head
· Options HTTP 200
· Tête HTTP
· Options HTTP
· Réponse HTTP
· Moniteur TCP multiport
· TCP hors bande
· DICOM
· SNMP v2
· Vérification du serveur DNS
· LDAPS
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 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 réel.
Seuil
Le champ Threshold est un nombre entier général utilisé dans les moniteurs personnalisés où un seuil tel que le niveau de CPU est requis.
NOTE : Assurez-vous 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 l'ADC.
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 IP Services--Real Server.
· my $port = $_[1] ; - Ceci utilise le "Port" de la section IP Services--Real Server.
· my $content = $_[2] ; - Ceci utilise la valeur "Required Content" de la section Library--Real Server Monitoring de la bibliothèque.
· my $notes = $_[3] ; - Cette opération utilise la colonne "Notes" de la section Real Server des Services IP.
· my $page = $_[4] ; - Ceci utilise les valeurs "Page Location" de la section Library--Real Server Monitor.
· my $user = $_[5] ; - Ceci utilise la valeur "User" de la section Library--Real Server Monitor.
· my $password = $_[6] ; - Ceci utilise la valeur "Password" de la section Library--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)
· Échec
Valeur de retour 2Imprime
un message indiquant Unsuccessful à SyslogMark
the Real Server Offline (à condition que OUT Count corresponde)
Exemple d'un moniteur de santé personnalisé
#Moniteur-Nom HTTPS_SNI
utiliser strictement :
les avertissements d'utilisation ;
Le nom du moniteur comme ci-dessus est affiché dans la liste déroulante des contrôles de santé disponibles.
# Il y a 6 valeurs passées à ce script (voir ci-dessous)
# Le script retournera les valeurs suivantes
# 1 si 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 "Host:$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
{
imprimez "HTTPs://${notes}${page} looking for - $content - Health check failed.\n" ;
retour(2)
}
}
moniteur(@ARGV) :
NOTE : 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