Shinken Enterprise permet de détecter en option les hôtes et services en état flapping. Celui-ci arrive quand l'état de l'élément change trop souvent, envoyant beaucoup trop de notifications de d'alertes/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 de réseau.
A chaque fois que Shinken Enterprise vérifie le statut d'un hôte ou d'un service, 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 :.
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. 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ées afin de déterminer où les changements d'état / transitions se produisent . Les changements d'état se produisent quand un état archivé est différent de l'état archivé qui le précède immédiatement chronologiquement . Comme nous conservons les résultats des 21 derniers contrôles de service dans le réseau , il ya une possibilité d'avoir au moins 20 changements d'état. La valeur 20 peut être modifiée dans le fichier de configuration principal . 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 global du check. C'est une mesure de volatilité du service. Les services qui ne changent jamais d'état sont à 0%, alors que ceux qui changent à chaque check seront à 100%.
Dans l'algorithme de calcul, un poids plus important sera donné aux derniers résultats par rapport aux plus anciens. En règle générale, on fait en sorte que les derniers résultats pèsent pour 50% du total . S

En utilisant l'image ci-dessus, faisons un calcul de pourcentage. Dans cet exemple, il y a 7 changements d'état sur les 21 derniers checks. (à t3, t4, t5, t9, t12, t16, et t19). Sans pondération, le pourcentage moyen serait de 35%:
(7 changements observés/20 possibles ) * 100 = 35 %
Since the flap detection logic will give newer state changes a higher rate than older state changes, the actual calculated percentage state change will be slightly less than 35% in this example. Let's say that the weighted percentage of state change turned out to be 31%...
The calculated percentage state change for the service (31%) will then be compared against flapping thresholds to see what should happen:
If neither of those two conditions are met, the flap detection logic won't do anything else with the service, since it is either not currently flapping or it is still flapping.
Shinken Enterprise checks to see if a service is flapping whenever the service is checked (either actively or passively).
The flap detection logic for services works as described in the example above.
Host flap detection works in a similar way to service flap detection, with one important difference: Shinken Enterprise will attempt to check to see if a host is flapping whenever:
* The host is checked (actively or passively)
* Sometimes when a service associated with that host is checked. More specifically, when at least x amount of time has passed since the flap detection was last performed, where x is equal to the average check interval of all services associated with the host.
Why is this done? With services we know that the minimum amount of time between consecutive flap detection routines is going to be equal to the service check interval. However, you might not be monitoring hosts on a regular basis, so there might not be a host check interval that can be used in the flap detection logic. Also, it makes sense that checking a service should count towards the detection of host flapping. Services are attributes of or things associated with host after all... In any case, that's the best method I could come up with for determining how often flap detection could be performed on a host, so there you have it.
Shinken Enterprise uses several variables to determine the percentage state change thresholds is uses for flap detection. For both hosts and services, there are global high and low thresholds and host- or service-specific thresholds that you can configure. Shinken Enterprise will use the global thresholds for flap detection if you to not specify host- or service- specific thresholds.
This screenshot shows the global and host- or check-specific variables that control the various thresholds used in flap detection.

Normally Shinken Enterprise will track the results of the last 21 checks of a host or service, regardless of the check result (host/service state), for use in the flap detection logic.
You can exclude certain host or service states from use in flap detection logic by using the "flap_detection_options" directive in your host or service definitions. This directive allows you to specify what host or service states (i.e. "UP, "DOWN", "OK, "CRITICAL") you want to use for flap detection. If you don't use this directive, all host or service states are used in flap detection.
When a service or host is first detected as flapping, Shinken Enterprise will:
When a service or host stops flapping, Shinken Enterprise will:
In order to enable the flap detection features in Shinken Enterprise , you'll need to:

If you want to disable flap detection on a global basis, set the enable_flap_detection directive to 0.
If you would like to disable flap detection for just a few hosts or checks, use the Flap Detection Enabled directive in the host and/or checks definitions to do so.