Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction au Flapping

Shinken Enterprise permet par défaut de détecter les hôtes et services en état flapping. Cette é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 (i.e. seuils trop bas par exemple), ou de vrais problèmes réseaux.

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

A 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 21 derniers checks
  • 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 service sur les 21 derniers checks.

Dans cet exemple : Les états OK sont en vert, WARNING en jaune, CRITICAL en rouge, et UNKNOWN en orange.

Panel


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 service 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


Warning

Si la détection est désactivé 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és au flapping :

Nom de la propriétéDescription
Détection du FLAPPING activéePermet 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 FLAPPINGPermet de définir le seuil de entrée du flapping. La valeur par défaut est de 50%.

Panel


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 :

low_host_flap_threshold=<percent>
high_host_flap_threshold=<percent>

Pour 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