Bonjour à tous,

Je viens d'avoir un cas à gérer sous Shinken (version 1.4, mais ça doit
être pareil avec la 2.0.3 ou la 2.2), et dans ce que j'en comprends le
problème est à mon avis le même sur tous les Nagios-Like.

On m'a demandé de brancher un outil de ticketing sur la supervision pour
ouvrir en automatique un tickets sur les Host Down ou sur les Services
en Warning ou Critique. Dans les documentations, il est indiqué qu'il
faut pour cela utiliser les event handler, exemple :

http://shinken.readthedocs.org/en/branch-1.4/07_advancedtopics/advancedtopics-eventhandlers.html

C'est effectivement très intéressant parce que l'on peut récupérer
beaucoup d'informations via les macros
(http://shinken.readthedocs.org/en/branch-1.4/05_thebasics/thebasics-macrolist.html#thebasics-macrolist,
la mise en page serait à revoir)  qu'il suffit de passer en paramètre à
un script... (C'est juste dommage que la partie contact ne fasse pas
partie des macros disponibles au niveau eventhandler, mais bon je pense
qu'il y a un problème de conception sur le fait de ce besoin il faudra
que je creuse). Bref j'ai avec du mal fait un script perl (perso, j'ai
tjs un peu de mal avec ce langage) qui créé les tickets...

Cela marche plutôt pas si mal sauf en cas de downtime... En effet dans
mon script je teste si je ne suis pas en downtime via les macros passées
en paramètre $HOSTDOWNTIME$ & $SERVICEDOWNTIME$ (pour les services) pour
éviter de créer un ticket sur un matériel en maintenance...

Tout irait dans le meilleur des mondes si toutes les opérations de
maintenance se passaient toujours bien et que tous les services
redémarraient correctement avant la fin du downtime... Sauf que non, et
du coup le changement d'état qui a généré pendant que le matériel était
en downtime a été gentiment ignoré par mon script et donc n'a pas créé
de ticket... mais ensuite à la sortie du downtime, il n'y a pas de
changement d'état et donc pas de lancement de mon script.

Comment résoudriez-vous ce problème proprement ? Dois-je poster un
message à la communauté Nagios-like ? Poster un bug report de demande
d'amélioration ? Revoir mon script ?

Pour le moment je pense avoir trouver une solution quick & dirty qui
consiste à un petit script en crontab qui liste les services & hosts qui
ne sont pas acquittés et qui redéclenche l'event handler lorsqu'ils ne
sont pas dans la période de downtime... La solution est Shinken only
d'après ce que j'ai vu puisque j'utilise les commandes externes 
LAUNCH_SVC_EVENT_HANDLER& LAUNCH_HOST_EVENT_HANDLER (Merci Thruk de
m'avoir mis sur la piste, parce que ce n'est pas super documenté mais un
peu de grep dans les sources donnent l'info).

Merci de vos éventuels retours.

JYL




_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/

Répondre à