Contexte

Le check $KEY$ Backend Balancing by SSH permet de superviser la répartition de charge entre les différents serveurs d’un backend HAProxy.

Il analyse la distribution des sessions et du trafic entre les serveurs actifs afin de détecter un déséquilibre anormal dans le load balancing.


Dans un backend correctement équilibré, les serveurs actifs doivent recevoir une charge cohérente selon l’algorithme de répartition configuré dans HAProxy. Un déséquilibre important peut révéler :

  • Un dysfonctionnement d’un serveur backend
  • Une mauvaise configuration du load balancing
  • Un serveur saturé ou partiellement indisponible
  • Un problème de persistance de session
  • Une dérive progressive des performances applicatives


Ce check permet donc :

  • De surveiller la répartition des sessions entre les serveurs backend
  • De détecter rapidement un déséquilibre de charge
  • D’identifier un serveur recevant trop ou trop peu de trafic
  • De vérifier le bon fonctionnement du mécanisme de load balancing

Pour résumer, ce check est un indicateur clé pour assurer une distribution homogène du trafic et garantir la stabilité des applications derrière HAProxy.

Paramétrage

Le check utilise la ligne de commande suivante :

$SHINKEN_HAPROXY-BY-SSH_PLUGINSDIR$/check_haproxy_SSH.py 
	-H "$HOSTADDRESS$" 
	-u "$_HOSTHAPROXY-BY-SSH__SSH-USER$" 
	-k "$_HOSTHAPROXY-BY-SSH__SSH-KEY$" 
	-x "$_HOSTHAPROXY-BY-SSH__SSH-PASSPHRASE$" 
	-p "$_HOSTHAPROXY-BY-SSH__SSH-PORT$" 
	--mode backend_balancing 
	-w "$_HOSTHAPROXY-BY-SSH__BACKEND-BALANCING__BALANCE-GAP-WARN$" 
	-c "$_HOSTHAPROXY-BY-SSH__BACKEND-BALANCING__BALANCE-GAP-CRIT$" 
	-s "$_HOSTHAPROXY-BY-SSH__BACKEND-BALANCING__MIN-SAMPLES$" 
	-n "$ARG1$"

Données utilisées provenant du modèle

Données communes pour les checks des modèles

Données spécifiques pour ce check

NomModifiable surUnitéDéfautValeur par défaut à l'installation de ShinkenDescription
_HAPROXY-BY-SSH__BACKEND-BALANCING__BALANCE-GAP-CRIT

l'Hôte

( Onglet Données )

--

50

50

Un backend avec plusieurs endpoints répartit les sessions entre ceux-ci de manière équitable.

Cette donnée définit le pourcentage d'écart entre les endpoints à partir duquel le check passe en CRITIQUE.

  • Il suffit que le pourcentage franchisse ce seuil pour que le check change d'état.
_HAPROXY-BY-SSH__BACKEND-BALANCING__BALANCE-GAP-WARN

l'Hôte

( Onglet Données )

--

25

25

Un backend avec plusieurs endpoints répartit les sessions entre ceux-ci de manière équitable.

Cette donnée définit le pourcentage d'écart entre les endpoints à partir duquel le check passe en ATTENTION.

  • Il suffit que le pourcentage franchisse ce seuil pour que le check change d'état.
_HAPROXY-BY-SSH__BACKEND-BALANCING__MIN-SAMPLES

l'Hôte

( Onglet Données )

--

10

10

Sur certaines applications, il peut être normal qu'un écart se fasse entre les endpoints.

Cette donnée permet de définir à partir de combien de sessions la vérification de la différence doit s'activer.

Données DFE ( Duplicate Foreach )

NomModifiable sur UnitésDéfautValeur par défaut à l'installation de ShinkenDescription
HAPROXY-BY-SSH__BACKENDS

l'Hôte

( Onglet Données )

---backend1$(backend1)$backend1$(backend1)$

Nom du ou des backends ( séparés par une virgule ), exemple "main$(main)$,app$(app)$".

Check(s) impacté(s) :

Données utilisées provenant du check

Pas de données provenant du check pour ce modèle

Données globales

NomModifiable surUnitéDéfautValeur par défaut à l'installationDescription
USERPLUGINSDIR

Non modifiable

( Sauf Admin Shinken )

--/var/lib/shinken-user/libexec /var/lib/shinken-user/libexec

Chemin absolu contenant les sondes installées par Shinken.

SHINKEN_DOCKER-ON-LINUX-BY-SSH_VENDOR

Non modifiable

( Sauf Admin Shinken )

--shinken-additional-packs shinken-additional-packs

Dossier fourni par Shinken.

SHINKEN_DOCKER-ON-LINUX-BY-SSH_PACKNAME

Non modifiable

( Sauf Admin Shinken )


docker-on-linux-by-SSH__shinkendocker-on-linux-by-SSH__shinken

Dossier contenant les sondes.

SHINKEN_DOCKER-ON-LINUX-BY-SSH_PLUGINSDIR

Non modifiable

( Sauf Admin Shinken )

--
$USERPLUGINSDIR$/$SHINKEN_DOCKER-ON-LINUX-BY-SSH_VENDOR$/$SHINKEN_DOCKER-ON-LINUX-BY-SSH_PACKNAME$
/var/lib/shinken-user/libexec/shinken-additional-packs/docker-on-linux-by-SSH__shinken

Chemin absolu du dossier contenant les sondes du pack docker-on-linux-by-SSH__shinken  ( non modifiable ).

Propriétés de l'hôte

NomModifiable surUnitéDéfautValeur par défautDescription
HOSTADDRESS

l'Hôte

( Onglet Général )

--

Nom de l'hôte Nom de l'hôte

Adresse de l'hôte

Résultat

Exemple

Interprétation des données

Statut

  • Il peut prendre 3 états  OK / CRITIQUE / ATTENTION .

    • Le statut va dépendre du retour de sonde et de la configuration spécifique du check pour les données suivantes :

      • HAPROXY-BY-SSH__BACKEND-BALANCING__BALANCE-GAP-WARN
      • HAPROXY-BY-SSH__BACKEND-BALANCING__BALANCE-GAP-CRIT
      • HAPROXY-BY-SSH__BACKEND-BALANCING__MIN-SAMPLES
    • Ci-dessous, un tableau récapitulatif des différents retours possibles :

Le texte de la colonne  "Affichage des seuils" montre les paramètres utilisés et leur valeur définie sur l'équipement supervisé.

Situation Statut Exemple
  • Tous les Endpoints du backend séléctionné ne sont pas en état de fonctionnement.
  • La répartition de la charge est limitée aux endpoints restants.

CRITIQUE

  • Le pourcentage d'écart de répartition des sessions entre les endpoints dépasse la valeur de :
    • HAPROXY-BY-SSH__BACKEND-BALANCING__BALANCE-GAP-CRIT  

CRITIQUE

  • Le pourcentage d'écart de répartition des sessions entre les endpoints dépasse la valeur de :
    • HAPROXY-BY-SSH__BACKEND-BALANCING__BALANCE-GAP-WARN

ATTENTION

Résultat

Le résultat court affiche, en une ligne, un résumé de l'état de l'équilibrage du backend. Ce retour compact permet de pouvoir visualiser l'information même avec la taille des lignes réduites dans l'interface de visualisation.

Résultat long

Le résultat long affiche un tableau regroupant l'ensemble des informations sur les informations détectées.

Métriques

Interprétation des métriques

Nom de la métriqueUnitéDescriptionSeuil d'avertissementSeuil critique
scur_app__(endpoint)--



balance_gap__(backend)%Retourne le pourcentage calculé d'équilibrage de sessions entre les différents endpoints.

HAPROXY-BY-SSH__BACKEND-BALANCING__BALANCE-GAP-WARN

HAPROXY-BY-SSH__BACKEND-BALANCING__BALANCE-GAP-CRIT

sample_total__(backend)--Affiche le nombre total de sessions détectés.



Exemple

Erreurs et pré-requis