Le gestionnaire d'événement ( event handlers ) permet d'exécuter une commande ( scripts ou exécutables ) qui sera lancée dès qu'un hôte ou un check changent d'état.
Comme pour les notifications, l'objectif est de pouvoir invoquer une de vos commandes que vous aurez définie pour réagir suite au changement d'état.
Voici des exemples d'utilisations :
C'est le démon Scheduler qui choisir quand la commande va être lancée et le démon Reactionner va exécuter la commande.
Par défaut, Shinken active le mécanisme de gestionnaires d'événement ( event handlers ).
Ce comportement peut être surchargé ( activés ou désactivés ) globalement en utilisant le paramètre "enable_event_handlers" dans le fichier de configuration /etc/shinken/shinken.cfg. ( Voir la page Fichier de configuration ( shinken.cfg ) )
enable_event_handlers=0 |
Par défaut, lorsqu'un élément en état "HARD", la commande du gestionnaire d'événement ne sera pas lancée même si le statut change pour un des statuts suivants ( ATTENTION, CRITIQUE, INCONNU ).
Ce comportement peut être surchargé ( activés ou désactivés ) globalement en utilisant le paramètre "event_handler__hard_state__trigger_on_any_status_change" dans le fichier de configuration /etc/shinken-user/configuration/daemons/arbiters/arbiter_cfg_overload.cfg. ( Voir la page Surcharge des paramètres du démon ( arbiter_cfg_overload.cfg ) )
Donc lorsqu'un élément en état "HARD" :
On peut aussi gérer l'activation/désactivation au cas par cas sur les hôtes, les clusters ou les checks.
À noter que si le paramètre global est à "désactivé", le paramétrage local n’aura aucun effet.
Les commandes de gestionnaires d’événements sont des objets commande de Shinken que vous pouvez définir via la page d'édition des commandes. ( Voir la page Les commandes )
Les exemples de notation de variables suivants permettent de régler le comportement de la commande en fonction de l'événement géré :
Pour les checks:
Pour les hôtes:
Référez-vous à la page dédiée aux notations LES VARIABLES ( Remplacement dynamique de contenu - Anciennement les MACROS ) pour l'intégralité des notations. |
Par défaut, la commande est exécutée avec les mêmes droits que ceux de l'utilisateur sous lequel Shinken est démarré sur la machine. Cela peut présenter un problème si vous voulez utiliser un gestionnaire d'événements qui doit redémarrer des services système, qui nécessitent généralement des accès privilégiés pour faire ce genre de tâches.
Dans l'idéal, vous devez évaluer les types de gestionnaires d'événements que vous serez en train de mettre en place et rajouter juste assez de permissions sur l'utilisateur Shinken afin qu'il puisse exécuter les commandes systèmes nécessaires. Vous devrez peut-être utiliser "sudo" pour accomplir cela.
La commande lancée par le gestionnaire d'événements sera exécutée :
Par exemple :
Lorsque le paramètre "event_handler__hard_state__trigger_on_any_status_change" a pour valeur "0" ( Désactivé ) :
Lorsque le paramètre "event_handler__hard_state__trigger_on_any_status_change" a pour valeur "1" ( Activé ) :
( voir la page Statut confirmé ( HARD ) et non confirmé ( SOFT ) )
Vous pouvez activer les logs en utilisant le paramètre log_event_handlers ( par défaut, le paramètre activé )
log_event_handlers=1 |
Des lignes de logs seront alors présentes dans le fichier de log du Scheduler lors du déclenchement de la commande.
[2021-03-17 11:55:14] INFO : [ scheduler-master ] SERVICE EVENT HANDLER: HOST;Process ntpd;CRITICAL;SOFT;1;manage_ntpd ... [2021-03-17 11:56:13] INFO : [ scheduler-master ] SERVICE EVENT HANDLER: HOST;Process ntpd;OK;SOFT;2;manage_ntpd |