Sommaire

Contexte

Le check $KEY$ Frontend Traffic by SSH permet de superviser l’activité réseau d’un frontend HAProxy.

Il collecte et analyse différents indicateurs de trafic afin de suivre l’utilisation du frontend et de détecter rapidement une anomalie ou une surcharge de celui-ci.


En fonction de l’activité des utilisateurs et des applications publiées, un frontend peut générer une charge réseau importante. Une évolution inhabituelle des métriques de trafic peut révéler :

  • Une surcharge de connexions utilisateurs
  • Une consommation réseau anormale
  • Une attaque DDoS ou un trafic malveillant
  • Un dysfonctionnement applicatif provoquant une hausse des requêtes
  • Une saturation progressive des ressources du frontend.


Ce check permet donc :

  • De surveiller le trafic entrant et sortant du frontend
  • De suivre le taux de requêtes et de connexions actives
  • D’estimer le nombre d’utilisateurs actuellement connectés
  • D’identifier rapidement une montée en charge inhabituelle

Pour résumer, ce check est un indicateur clé pour assurer le bon fonctionnement et la stabilité du trafic applicatif exposé par HAProxy.

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 frontend_traffic 
	-d "$_HOSTHAPROXY-BY-SSH__EXCLUDE-PAUSED-DRAIN$" 
	-n "$ARG1$" 
	-w "$_HOSTHAPROXY-BY-SSH__FRONTEND__REQUEST-RATE-WARN$" 
	-c "$_HOSTHAPROXY-BY-SSH__FRONTEND__REQUEST-RATE-CRIT$"

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__FRONTEND__REQUEST-RATE-CRIT

l'Hôte

( Onglet Données )

--

3000

3000

Cette donnée définit le nombre de requêtes reçu par seconde à partir duquel le check passe en CRITIQUE.

  • Il suffit que la valeur franchisse ce seuil pour que le check change d'état.
HAPROXY-BY-SSH__FRONTEND__REQUEST-RATE-WARN

l'Hôte

( Onglet Données )

--

2000

2000

Cette donnée définit le nombre de requêtes reçu par seconde à partir duquel le check passe en ATTENTION.

  • Il suffit que la valeur franchisse ce seuil pour que le check change d'état.

Les données DFE (Duplicate Foreach)

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

l'Hôte

( Onglet Données )

---frontend1$(frontend1)$frontend1$(frontend1)$

Nom du ou des frontends ( 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 utilisées provenant du check

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 4 états OK / CRITIQUE / ATTENTION / INCONNU .

  • 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__FRONTEND__REQUEST-RATE-WARN
    • HAPROXY-BY-SSH__FRONTEND__REQUEST-RATE-CRIT
  • Voici un tableau récapitulatif du statut attendu suivant le retour de sonde :

Situation Statut Exemple
  • Le frontend sélectionné est dans l'état "STOP".

CRITIQUE

  • Le nombre de requêtes par seconde dépasse la valeur de :
    • HAPROXY-BY-SSH__FRONTEND__REQUEST-RATE-CRIT 

CRITIQUE

  • Le nombre de requêtes par seconde dépasse la valeur de :
    • HAPROXY-BY-SSH__FRONTEND__REQUEST-RATE-WARN

ATTENTION 

Résultat

Le résultat court affiche, en une ligne, un résumé du trafic. 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 le trafic sur le HAproxy.

Métriques

Interprétation des métriques

Nom de la métriqueUnitéDescriptionSeuil d'avertissementSeuil critique
in_(frontend)BRetourne la valeur du flux en Bits par seconde transitants en entrée du HAproxy



out_(frontend)BRetourne la valeur du flux en Bits par seconde transitants en sortie du HAproxy



req_rate_(frontend)--Affiche le nombre de requêtes par minutes reçu par le HAproxy



scur_(frontend)--



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