Un hôte peut dépendre d'un ou plusieurs autres hôtes et/ou clusters. On parle alors de dépendances réseaux.
Ces dépendances doivent être spécifiées par l'utilisateur :
La logique consiste à définir, pour un hôte, les hôtes et/ou clusters dont l'état va l'affecter.
Contrainte :
Un seul Scheduler gérera l'ensemble des éléments liés entre eux par des dépendances réseaux. Il est donc important de faire attention lors de la spécification des liens de dépendance, notamment dans le cas de dépendances imbriquées pour éviter de faire pointer toutes les dépendances vers un même hôte et/ou cluster. Cela pourrait entraîner une mauvaise répartition de la charge entre les Schedulers. Ce point fera l'objet d'une évolution dans une prochaine version de Shinken, pour enlever cette limitation. |
Dès qu'un check est créé dans Shinken, il dépend de l'hôte auquel il est associé :
Dès qu'un cluster est créé dans Shinken, il dépend de tous les éléments qui le constituent. C'est la seule relation de dépendance d'un cluster dans Shinken.
Lorsqu'un élément a un statut non-OK, le problème source est calculé par Shinken pour donner une indication sur la cause du statut d'un élément : est-ce que le problème provient de l'élément lui-même, où est-ce seulement une conséquence ?
Shinken parcourt les liens de dépendances pour vérifier si un autre élément que lui-même possède un statut non-OK qui peut expliquer ce statut :
Un élément est considéré comme problème source si son statut non-OK, ne peut être expliqué que par l'état de l'élément lui-même et non par l'état d'une dépendance.
Dans Shinken, un élément est considéré comme problème source seulement lorsque son statut non-OK est confirmé ( HARD ) et qu'au moins une de ses dépendances est OK.
Les dépendances permettent de définir les éléments dont il faut vérifier l'état avant de pouvoir confirmer si un élément est bien la cause de son problème.
Lorsque le statut d'un élément devient non-OK, Shinken va automatiquement planifier une vérification de ses dépendances. Si une dépendance ne peut pas être considérée comme problème source, ses dépendances sont également vérifiées jusqu'à l'identification de tous les problèmes sources.
| Comme l'état d'un cluster dépend de l'état des éléments que le compose, Un cluster ne peut pas être un problème source. |
Dans cette architecture, Shinken doit passer par :
|
Maintenant, un problème survient sur "Web Server" et "Switch 2" qui deviennent hors service :
|
Suite au fait que "Switch 2" est hors service, Shinken ne peut plus joindre ni "Intranet" ni "Storage server" :
).
|
Un élément peut hériter du contexte de ses dépendances ( Prise en compte, Période de maintenance, etc ). L'héritage des contextes est différent entre les checks, les hôtes et les clusters :
( voir la page Statut & Contexte )
Par défaut, lorsqu'un élément devient problème source, l'ensemble des éléments qui en dépendent changent de statut ( UNREACHABLE ou INCONNU ).
Le paramètre de configuration enable_problem_impacts_states_change permet d'activer ou de désactiver ce mécanisme ( voir la page Fichier de configuration ( shinken.cfg ) ).
Il est conseillé d'ajouter ( s'il n'est pas présent ), ou de modifier ce paramètre dans le fichier de surcharge /etc/shinken-user/configuration/daemons/arbiters/arbiter_cfg_overload.cfg plutôt que dans /etc/shinken/shinken.cfg. |
Seuls les hôtes peuvent avoir le statut UNREACHABLE ( traduit en INCONNU dans l'Interface de Visualisation et les SLA ).
,
,
), mais qu'il n'est pas problème source. Autrement dit, si un hôte est dans un état non-OK et que l'ensemble de ses dépendances sont également dans un état non-OK, alors le statut de l'hôte sera UNREACHABLE. Il conservera ce statut tant que son état reste non-OK.
). Par exemple, dans la situation suivante :
|
Comme expliqué plus haut, un check dépend de l'hôte auquel il est attaché.
) et ils le conserveront jusqu'à la prochaine vérification par Shinken.
|
Shinken Enterprise envoie des notifications uniquement pour les problèmes sources afin d'éviter de saturer les utilisateurs de notifications lorsqu'un équipement, dont beaucoup d'éléments dépendent ( par exemple un switch ), tombe.
Cas particulier des Clusters :
La commande du gestionnaire d'événement est toujours exécutée, que l'élément soit problème source, ou non ( voir la page Gestionnaire d'événements ).
Pour pouvoir utiliser les variables ( voir la page Les Variables ( Remplacement dynamique de contenu - Anciennement les Macros ) ) :
Shinken doit vérifier les dépendances afin de déterminer si un élément est un problème source ou non, ainsi que son statut :
L'impact métier d'un hôte problème source est modifié pour prendre la valeur de l'impact métier le plus élevé parmi tous les éléments qui dépendent de cet hôte.
Par exemple, la configuration suivante :
|
Puis "Switch 2" tombe, ayant pour conséquence de rendre injoignable "Intranet" et "Storage server".
Ces deux conditions étant réunies, lorsque "Switch 2" tombe, son impact métier est modifié dynamiquement pour être remplacé par celui de Storage server.
|
Depuis l'Interface de Visualisation, l'arbre de dépendance d'un hôte ou d'un cluster ( c'est-à-dire les dépendances directes et les dépendances des dépendances ), peut être visualisé depuis trois endroits :
La WebUI fournit différentes manière de visualiser et d'identifier les problèmes sources.
Sur les hôtes et les services, deux variables permettent de savoir si l'hôte ou le service est un problème source. Ces variables peuvent ensuite être utilisées dans les checks ou commandes :
Ces deux variables sont des booléens qui contiendront ( en toutes lettres ) "True" ou "False" selon si l'hôte ou le service est un problème source ( voir la page Les Variables ( Remplacement dynamique de contenu - Anciennement les Macros ) ).