LSLB | Fermes | Mise à jour | Gardien de ferme

POSTÉ PAR Zevenet | 2 octobre, 2017

Vue d'ensemble

Par défaut, Zevenet exécute des contrôles de santé simples sur les serveurs principaux ou réels, mais parfois, cette vérification ne suffit pas pour déterminer que les moteurs fonctionnent correctement. Pour cette raison, Zevenet implémente un service qui exécute et gère les contrôles de santé avancés via un démon utilisant des plugins appelés Gardien de ferme.

Farm Guardian a pour tâche principale de fonctionner comme une surveillance avancée des applications. Pour ce faire, Farm Guardian lit la configuration de la batterie de serveurs et obtient la liste des serveurs, et aidé par un plug-in vérifiant l'état de santé du serveur, Farm Guardian met à jour le statut du serveur pour le serveur. batterie donnée autorisant ou non Zen Load Balancer à envoyer des connexions à un tel serveur.

Les plugins utilisés par Farm Guardian peuvent être trouvés sous le répertoire / usr / local / zenloadbalancer / app / libexec / .

Ferme Guardian Configuration

Bilans de santé pour le backend. En cochant cette case, vous activerez un état de surveillance plus avancé pour les systèmes dorsaux entièrement programmable avec vos propres scripts. Lorsqu'un comportement incorrect est détecté par Farm Guardian, il désactive automatiquement le serveur réel et sera marqué comme FGdown. Il s'agit d'un service indépendant, vous n'avez donc pas besoin de redémarrer le service de batterie de serveurs.

zevenet lslb lb adc bilan de santé d'un gardien

Temps entre les contrôles. Il s’agit du nombre de secondes pendant lesquelles Farm Guardian attendra pour exécuter le bilan de santé.
Commande à vérifier. Commande à exécuter pour les backends configurés. Des constantes ou des jetons sont utilisés afin de fournir une configuration dynamique.
Journaux de gardien de ferme. Cette case à cocher permettra aux journaux Farm Guardian de déboguer un comportement, bien que cela puisse utiliser beaucoup de stockage.

Extensions

Farm Guardian utilise des plug-ins pour configurer des contrôles de santé avancés afin de détecter si un certain serveur réel fonctionne comme prévu à l'aide d'options personnalisées. Il existe de nombreuses vérifications de l'état de santé pour chaque type de protocole, service ou application. Les plugins les plus importants sont décrits ci-dessous.

check_ftp: Ce plugin teste les connexions FTP avec l'hôte spécifié.
check_fping: Ce plugin utilisera la commande fping pour envoyer une requête rapide à l’hôte spécifié.
check_http: Ce plugin teste le service HTTP sur l'hôte spécifié. Il peut tester les protocoles standard (HTTP) et sécurisé (HTTPS), suivre les redirections, rechercher des chaînes et des expressions régulières, vérifier les heures de connexion et signaler les heures d'expiration des certificats, les codes de retour HTTP, etc.
check_imap: Ce plugin teste les connexions IMAP avec l'hôte spécifié.
check_ldap: Ce plugin teste les services LDAP. Il peut être testé avec une recherche donnée.
check_ldaps: Ce plugin teste les services LDAPS. Il peut être testé avec une recherche donnée.
check_mysql: Ce plugin teste les connexions à un serveur MySQL.
check_mysql_query: Ce plugin vérifie un résultat de requête par rapport à des niveaux de seuil.
check_pgsql: Teste si une base de données PostgreSQL accepte les connexions.
check_pop: Ce plugin teste les connexions POP avec l'hôte spécifié.
check_radius: Teste si un serveur RADIUS accepte des connexions.
check_simap: Ce plugin teste les connexions IMAP sécurisées avec l'hôte spécifié
check_smtp: Ce plugin va tenter d'ouvrir une connexion SMTP avec l'hôte.
check_snmp: Vérifiez l’état des machines distantes et obtenez les informations système via SNMP.
check_spop: Ce plugin teste les connexions POP sécurisées avec l'hôte spécifié.
check_ssh: Essayez de vous connecter à un serveur SSH sur le serveur et le port spécifiés.
check_ssmtp: Ce plugin teste les connexions SSMTP avec l'hôte spécifié.
check_tcp: Ce plugin teste les connexions TCP avec l'hôte spécifié.

Pour plus d'informations, exécutez la commande suivante sous le chemin du plugin:

plugin_name --help

Farm Guardian utilisera ces plug-in pour vérifier l'état de santé des moteurs et gérera la sortie d'erreur d'exécution du plug-in exécuté pour déterminer son statut comme suit:

Si l'erreur sortie == 0 alors le backend est OK> $? = 0

Si l'erreur sortie <> 0 alors le backend n'est PAS OK> $? <> 0

Plugin personnalisé

Ces plugins peuvent être configurés et entièrement programmables par les administrateurs système afin de pouvoir être adaptés à tout protocole ou application.

Cet exemple montre un plugin personnalisé check_load.sh.

#!/bin/bash
###
###comments:
###snmp utils should be installed
###snmpd should be installed and configured in the backends
###
MAXVALUE=4
COMMUNITY="public"
EXECUTE=`snmpget -v 2c -c $COMMUNITY $1 .1.3.6.1.4.1.2021.10.1.3.1 |cut -d ':' -f2 | cut -d '.' -f1 | sed s/\ // | sed s/\"//`

echo "SNMP CPU load check for $1 is $EXECUTE"
# If the result is true, exit with 1; error; else exit = 0; OK
if (( $EXECUTE >= $MAXVALUE )); then
#error output; the server is overloaded and the load balancer isn’t going to send more connections
exit 1
else
#not error; the server can accept more connections
exit 0
fi

Constants

Lorsque Farm Guardian exécute un plug-in, il peut utiliser des constantes ou des jetons comme arguments, par exemple:

  • HÔTE: Farm Guardian se chargera de modifier cette constante en fonction de l'adresse IP réelle du serveur.
  • PORT: Farm Guardian se chargera de modifier cette constante par le port du serveur réel.

Ces constantes peuvent être utilisées pour chaque plug-in. Farm Guardian les utilisera pour exécuter la vérification de l'état de santé avec les paramètres réels en place.

Exemple

L'exemple suivant décrit une vérification d'intégrité HTTP avancée pour les services Web. Une erreur courante est que les serveurs d'applications affichent des pages vierges mais que le port 8080 accepte toujours les requêtes HTTP.

Pour une batterie HTTP, configurez la suivante dans la section Farm Guardian de chaque service:

check_http_fg_example

Farm Guardian va exécuter le check_http plugin pour chaque backend et remplacera les constantes HÔTE et PORT par l'adresse IP et le port de chaque serveur, pour chaque exécution, le plug-in donné renvoie le code d'erreur 0 si la chaîne "Welcome" est trouvée dans le contenu du fichier index.php. Dans le cas où la chaîne 'Welcome' ne serait pas trouvée, alors ce backend sera marqué en tant que DOWN.

Pour plus d'informations sur la configuration de Farm Guardian, veuillez vous reporter à Guide de configuration de Farm Guardian.

Les journaux Farm Guardian peuvent être activés, même s'ils peuvent utiliser beaucoup d'espace disque et enregistrer les journaux dans le chemin. /usr/local/zenloadbalancer/config/[_service]_farmguardian.log or / var / log / syslog dans les versions les plus récentes de Zevenet.

Partager sur:

Documentation sous les termes de la licence de documentation libre GNU.

Cet article a-t-il été utile?

Articles Relatifs