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).
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 :
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.
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.
|
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.
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 :
Lorsqu'un élément est fraîchement détecté comme étant en flapping, Shinken Enterprise va:
Lorsqu'un élément cesse d'être en flapping, Shinken Enterprise va:
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 :
Exemple:
enable_flap_detection=1
Si la détection est désactivé globalement, les paramétrages effectués sur les éléments ne seront pas pris en compte. |
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é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. |
| 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%. |
|
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
Le nombre de changement d'état utilisé 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