L'objectif de la corrélation est de proposer des aides à l'utilisateur afin qu'il arrive facilement à faire la distinction entre:
Le principe est que pour revenir à une situation saine, il faut régler les problèmes sources, car redémarrer les impacts n'aura aucun effet tant que l'on n'aura pas réglé son/ses problème(s) sources.
Les notifications appliquent ce principe en n'envoyant qu'une notification dans le cas d'un problème source. Prenons par exemple, un service web présent sur un serveur est lui connecté via un switch. Si le switch tombe, le serveur et donc le service web ne sont plus disponibles. Au lieu d'envoyer une notification pour chaque partie de l'infrastructure (serveur, service web et switch), la corrélation permet de n'envoyer qu'une notification pour l'élément à l'origine du problème c'est-a-dire le switch.
Les vérifications des checks et des hôtes n'étant pas fait en même temps afin de ne pas surcharger l'hôte, on peux avoir le cas où
Pour corriger cette incohérence qui va durer jusqu'à la prochaine vérification du check, le démon Scheduler est capable de changer temporairement l'état des checks de l'hôte:
Visuellement, le check apparaitra de la manière suivante, indiquant que son état a été modifié par Shinken:
|
Dès la prochaine vérification du check, ce dernier prendra son état et résultat définitif (qui peux être en erreur ou pas)
Il est important de savoir que cette approche ne remet pas en cause la logique de gestion HARD/SOFT : il n'est pas pris en compte dans la gestion des tentatives de checks . Par contre dans un souci de cohérence, cette état/résultat sera également disponible dans les autres modules, genre SLA ou les events.
Par défaut ce mécanisme est activé. On peux le désactiver dans le fichier /etc/shinken-user/configuration/daemons/arbiters/arbiter_cfg_overload.cfg (qui surcharge le fichier /etc/shinken.shinken.cfg) en mettant le paramètre:
enable_problem_impacts_states_change=0 |
Dans le cas où on a des dépendances réseaux (entre les hôtes donc), la règle d'assignation des problèmes sources/impacts est la suivante:
Dans le premier cas, on aura l'affichage suivant dans la liste complète, l'hôte server ayant pour parents switch-1 et switch-2.
|
Si on passe par la liste qui préfiltre les problèmes sources, on aura alors que les deux hôtes qui sont les problèmes sources:
|
Cette vue peut donc être très pratique quand les relations de dépendances sont configurées.
L'impact métier permet de déterminer si un problème source est plus ou moins important, en sachant s'il a cassé quelque chose d'important.
Si les liens de dépendances (clusters, parents) sont définis dans Shinken, alors ce dernier va être capable de propager les impact métier, des impacts vers leurs problèmes sources.
Dans notre exemple, nous avons un cluster (mon-appli) qui repose sur un simple serveur Http, dont l'hôte (server) dépend de deux swtichs (switch-1 et switch-2).
Dans la configuration, seul le cluster a un impact métier important:
|
Les hôtes server, switch-1 et switch-2 ont quant à eu des impacts métiers normaux, par exemple notre hôte server:
|
Quand on regarde du côté de l'interface de visualisation, on remarque que Shinken a mis à jour l'ensemble des impacts métiers de la chaine, de proche en proche:
Ceci se traduit dans l'interface de visualisation par une colonne Priorité qui a sa valeur au maximum, comme celle du cluster mon-appli:
|