Introduction au Flapping

Shinken Enterprise permet par défaut de détecter les hôtes, les clusters et les checks en état FLAPPING.

  • Cet état arrive quand le statut de l'élément ( OK, CRITIQUE, ... ) change trop souvent ce qui va avoir pour effet d'envoyer beaucoup trop de notifications d'alertes et de reprises successives.
  • Le flapping peut être caractéristique de problèmes de configuration ( c.-à-d. seuils trop bas par exemple ), ou de vrais problèmes réseau.

Quand un élément passe en flapping, toutes ses notifications sont interrompues afin de ne pas submerger les utilisateurs, jusqu'à ce qu'il revienne dans un état stable ( qu'il soit OK/UP ou DOWN/CRITICAL ).

Comment ça fonctionne

À chaque fois que Shinken Enterprise vérifie le statut d'un hôte ou d'un check, il commence par vérifier si l'élément a commencé ou vient d'arrêter d'être en FLAPPING. Il le fait de la façon suivante :

  • Stockage des résultats des dernières vérifications ( Par défaut les 21 dernières vérifications, voir la configuration de ce nombre ci-dessous "Paramétrage de l'historique de calcul du FLAPPING" )
  • Analyse de l'historique des résultats et détermine quand les changements d'états et de transitions arrivent.
  • Détermine le pourcentage de changement d'état.
  • Comparaison de ce taux avec les valeurs définies comme seuils haut/bas de FLAPPING pour entrer/sortir de l'état flapping configurer pour l'élément.

Le contexte FLAPPING est ajouté un élément lorsque le pourcentage de changement d'état dépasse le seuil haut de FLAPPING.

Le contexte FLAPPING est enlevé d'un élément lorsque le pourcentage descend en dessous du seuil bas de FLAPPING.

Exemple

Voyons la mécanique plus en détail avec un check.

Cette image illustre l'historique de l'état d'un check sur les 21 derniers checks.

Dans cet exemple : Les états OK sont en vert, ATTENTION en jaune, CRITIQUE en rouge, et INCONNU en orange.

Les résultats de la vérification de l'historique sont examinés afin de déterminer où les changements d'état / transitions se produisent. Les changements d'état se produisent quand un état est différent de l'état qui le précède immédiatement. Comme nous conservons les résultats des 21 derniers contrôles de check dans le réseau, il y a une possibilité d'avoir au moins 20 changements d'état.

Dans cet exemple, il y a 7 changements d'état indiqués par les flèches bleues dans l'image ci-dessus.

La logique de détection de Flapping utilise le changement d'état pour déterminer le pourcentage de changement de l'élément. C'est une mesure de volatilité du check.

  • Les checks qui ne changent jamais d'état sont à 0%,
  • alors que ceux qui changent à chaque vérification seront à 100%. 

Note: Dans l'algorithme de calcul, un poids plus important sera donné aux derniers résultats par rapport aux plus anciens. 


Par exemple, prenons le cas d'un pourcentage calculé de 31%. Il va être comparé aux seuils définis :

  • si l'élément n'était pas en état flapping auparavant et que le pourcentage calculé est supérieur au seuil haut ( high ), Shinken Enterprise considère que l'élément vient juste de passer en FLAPPING.
  • si l'élément était précédemment en flapping et que le pourcentage calculé est inférieur au seuil bas ( low ), Shinken Enterprise considère que l'élément vient juste de s'arrêter d'être en FLAPPING.

Traitement du FLAPPING

Lorsqu'un élément est fraîchement détecté comme étant en FLAPPING, Shinken Enterprise va:

  • Loguer un message indiquant que l'élément est en FLAPPING.
  • Envoyer une notification d'alerte de début de FLAPPING aux contacts appropriés.
  • Supprimer toutes les autres notifications sur l'élément.

Lorsqu'un élément cesse d'être en FLAPPING, Shinken Enterprise va:

  • Loguer un message indiquant que l'élément n'est plus en FLAPPING.
  • Envoyer une notification de fin de FLAPPING aux contacts appropriés
  • Reprendre les notifications pour cet élément

Paramétrage du FLAPPING

Activer/désactiver la détection globale des FLAPPING

Il est possible d'activer ou désactiver la détection des flapping sur tous les éléments. Pour cela, il faut modifier le paramètre enable_flap_detection  dans le fichier /etc/shinken/shinken.cfg sur le serveur où sont installés l'Arbiter et le Synchronizer.

Deux valeurs possibles : 

  • 0 = ne pas activer la détection du FLAPPING
  • 1 = activer la détection du FLAPPING ( défaut )

Exemple: 

enable_flap_detection=1


Si la détection est désactivée globalement, les paramétrages effectués sur les éléments ne seront pas pris en compte.

Paramétrage du FLAPPING sur un élément dans l'interface de configuration

Le paramétrage du FLAPPING s'effectue dans la page d'édition d'un élément ( Hôte, Cluster et Check ) dans l'interface de Configuration.

Dans l'onglet "Expert", il y a 4 propriétés liées au FLAPPING :

Nom de la propriétéDescription
Détection du FLAPPING activée

Permet d'activer ou désactiver la détection du FLAPPING

Options de détection du FLAPPING 

Cette propriété permet de définir quel statut d'un hôte est pris en compte pour le calcul du % de FLAPPING.
Les différentes valeurs possibles de cette propriété sont différentes en fonction du type de l'élément. Référez-vous à la page de documentation de l'élément pour connaitre les valeurs disponibles.

Sortie du Contexte FLAPPING 

Permet de définir le seuil de sortie du FLAPPING. La valeur par défaut est de 25%.

Entrée du Contexte FLAPPING

Permet de définir le seuil de entrée du FLAPPING. La valeur par défaut est de 50%.


Modification des valeurs par défaut des seuils

Les valeurs par défaut des seuils d'entrée et sortie du flapping sont modifiable dans le fichier /etc/shinken/shinken.cfg sur le serveur où sont installés l'Arbiter et le Synchronizer.

Il est possible de spécifier des valeurs différentes entre un hôte/cluster et un check.

  • Pour un hôte / cluster :

low_host_flap_threshold=<percent>
high_host_flap_threshold=<percent>
  • Pour un check :

low_service_flap_threshold=<percent>
high_service_flap_threshold=<percent>


Par exemple, on peut définir : 

20% en sortie et 40 % en entrée pour Check

low_service_flap_threshold=20
high_service_flap_threshold=40

30% en sortie et 60 % en entrée pour Hôte

low_host_flap_threshold=30
high_host_flap_threshold=60

Paramétrage de historique de calcul du flapping

Le nombre de changements d'état utilisés pour calculer le pourcentage de flapping est modifiable flap_history dans le fichier  /etc/shinken/shinken.cfg sur le serveur où sont installés l'Arbiter et le Synchronizer. 

Format:

flap_history=<int>


Défaut:

flap_history=20