Sommaire

Contexte

Le check Global Backend Status by SSH permet de vérifier l'état de fonctionnement des backends.

Il remonte, pour chacun d'entre eux, les informations générales de fonctionnement au moment de la vérification.


En fonction de sa configuration, un backend dispose de un ou plusieurs endpoints. Les endpoints sont les serveurs applicatifs (serveur WEB, applications internes, etc ... ) vers lesquels sont redirigés les utilisateurs transitant par ce backend. Plusieurs endpoints par backends permettent à HA Proxy de faire de la répartition de charges, en répartissant les utilisateurs sur les différents serveurs disponibles.

Dans le cas où un endpoint n'est plus disponibles, l'ensemble des sessions gérées par celui-ci seront réparties entre les autres toujours disponibles. Cela peut causer :

  • De la latence
  • Des erreurs applicatives
  • Une indisponibilité du service


Ce check permet donc :

  • De repérer rapidement un backend incomplet
  • D'avertir en cas d'erreur

Pour résumer, ce check est un indicateur clé pour assurer que la partie applicative est bien opérationnelle.

Paramétrage

Le check utilise la ligne de commande suivante :

$GLOBAL_HAPROXY-BY-SSH_SHINKEN_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 global_backend_status 
	-w "$_HOSTHAPROXY-BY-SSH__GLOBAL-BACKEND__ENDPOINT-AVAILABILITY-WARN$" 
	-c "$_HOSTHAPROXY-BY-SSH__GLOBAL-BACKEND__ENDPOINT-AVAILABILITY-CRIT$" 
	-e "$_HOSTHAPROXY-BY-SSH__INCLUDE-MAINTENANCE$"

Données utilisées provenant du modèle

Données communes pour les checks des modèles

NomModifiable surUnitéDéfautValeur par défaut à l'installation de ShinkenDescription
HAPROXY-BY-SSH__SSH-KEY

l'Hôte

( Onglet Données )

--$HAPROXY-BY-SSH__SSH-KEY$/var/lib/shinken/.ssh/id_rsa

Chemin vers la clé SSH privé de l'utilisateur shinken, sur le serveur hébergeant le Poller qui exécutera le check. 

  • Cette clé doit être présente dans les clés autorisées du compte utilisateur utilisé pour se connecter sur le serveur linux supervisé ( voir la donnée SSH_USER ci dessous ).
HAPROXY-BY-SSH__SSH-PASSPHRASE

l'Hôte

( Onglet Données )

--$HAPROXY-BY-SSH__SSH-PASSPHRASE$$SSH_KEY_PASSPHRASE$

Phrase secrète utilisée pour déchiffrer la clé privée de l'utilisateur ( si celle-ci est protégée par une passphrase ). La clé privée déchiffré est ensuite utilisée pour authentifier l'utilisateur.

HAPROXY-BY-SSH__SSH-PORT

l'Hôte

( Onglet Données )

--$HAPROXY-BY-SSH__SSH-PORT$22

Port de connexion SSH.

HAPROXY-BY-SSH__SSH-USER

l'Hôte

( Onglet Données )

--$HAPROXY-BY-SSH__SSH-USER$shinken-user

Nom de l'utilisateur pour se connecter sur le serveur supervisé.

Données spécifiques pour ce check

NomModifiable surUnitéDéfautValeur par défaut à l'installation de ShinkenDescription
HAPROXY-BY-SSH__BACKEND__ENDPOINT-AVAILABILITY-CRIT

l'Hôte

( Onglet Données )

%

50

50

Un backend peut posséder plusieurs endpoint pour répartir la charge. Si certains endpoints ne sont pas fonctionnels, la charge va se concentrer sur les endpoints restants.

Cette donnée permet de définir à partir de combien de endpoints injoignables en pourcentage par rapport au nombre total de endpoint, le check doit passer en CRITIQUE.

HAPROXY-BY-SSH__BACKEND__ENDPOINT-AVAILABILITY-WARN

l'Hôte

( Onglet Données )

%

75

75

Un backend peut posséder plusieurs endpoint pour répartir la charge. Si certains endpoints ne sont pas fonctionnels, la charge va se concentrer sur les endpoints restants.

Cette donnée permet de définir à partir de combien de endpoints injoignables en pourcentage par rapport au nombre total de endpoint, le check doit passer en ATTENTION.

_HAPROXY-BY-SSH__INCLUDE-MAINTENANCE

l'Hôte

( Onglet Données )

--

false

false

Dans HA Proxy, un frontend peut être placé dans un état spécial de maintenance pour y effectuer des opérations. Dans cet état, le frontend n'est plus accessible.

Par défaut, ces frontends ne sont pas inclus dans les remontées du check pour éviter les critiques.


Utiliser true dans cette donnée permet de les récupérer malgré tout.

Données DFE ( Duplicate Foreach )

Pas de données DFE pour ce modèle

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.

GLOBAL_HAPROXY-BY-SSH_SHINKEN_VENDOR

Non modifiable

( Sauf Admin Shinken )

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

Dossier fourni par Shinken.

GLOBAL_HAPROXY-BY-SSH_SHINKEN_PACKNAME

Non modifiable

( Sauf Admin Shinken )


HAproxy-by-SSH__shinkenHAproxy-by-SSH__shinken

Dossier contenant les sondes.

GLOBAL_HAPROXY-BY-SSH_SHINKEN_PLUGINSDIR

Non modifiable

( Sauf Admin Shinken )

--
$USERPLUGINSDIR$/$GLOBAL_HAPROXY-BY-SSH_SHINKEN_VENDOR$/$GLOBAL_HAPROXY-BY-SSH_SHINKEN_PACKNAME$
/var/lib/shinken-user/libexec/shinken-additional-packs/HAproxy-by-SSH__shinken

Chemin absolu du dossier contenant les sondes du pack HAproxy-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__ENDPOINT-AVAILABILITY-WARN 
      • HAPROXY-BY-SSH__BACKEND__ENDPOINT-AVAILABILITY-CRIT
    • 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
  • Le pourcentage de endpoints down pour un backend dépasse la valeur de :
    • HAPROXY-BY-SSH__BACKEND__ENDPOINT-AVAILABILITY-CRIT

CRITIQUE

  • Le pourcentage de endpoints down pour un backend dépasse la valeur de :
    • HAPROXY-BY-SSH__BACKEND__ENDPOINT-AVAILABILITY-WARN  

ATTENTION

Résultat

Le résultat court affiche, en une ligne, un résumé de l'état des Backends détéctés. 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étéctées.

Métriques

Interprétation des métriques

Nom de la métriqueUnitéDescriptionSeuil d'avertissementSeuil critique
active_up_pct__(backend)%Retourne le pourcentage de endpoints actuellement disponible par rapport au maximal autorisé par HA Proxy ( Correspond au % affiché dans le résultat du check ).

HAPROXY-BY-SSH__BACKEND__ENDPOINT-AVAILABILITY-WARN 

HAPROXY-BY-SSH__BACKEND__ENDPOINT-AVAILABILITY-CRIT 

Exemple



Erreurs et pré-requis

Erreurs de connexion ( communes à tous les checks )


UNKNOWN – SSH authentication failed.

L'authentification par clé SSH n'as pas pu s'effectuer.

Résolution :

Possibles raisons :

  • L'utilisateur utilisé n'existe pas
  • La paire utilisateur / clef publique n'est pas autorisée à se connecter sur la machine supervisée.
  • La clé publique n'a pas été déposée dans le "authorized_keys" côté serveur.


UNKNOWN – SSH private key could not be loaded

La clé SSH a utiliser sur le poller de Shinken n'as pas été trouvée.

Résolution :

Vérifier sur les pollers si la clé privé indiqué dans la donnée "$_HOSTHAPROXY-BY-SSH__SSH-KEY$" est bien présente et accessible par l'utilisateur shinken.

UNKNOWN HAProxy statistics query failed

L'utilisateur utilisé sur le serveur HAProxy n'appartient pas au groupe HAproxy ou le socket HAProxy n'est pas lancé.

Résolution :

La commande ci-dessous permet de lister les utilisateurs du groupe haproxy : 

cat /etc/group | grep haproxy


Pour ajouter un utilisateur au groupe haproxy :

usermod -a -G haproxy user-service-shinken


Pour vérifier si le socket existe bien :

ls -l /var/run/haproxy.sock










  • No labels