21
2010
[Nagios] Visualiser la commande exécutée par Nagios
J’ai passé la journée à rechercher pourquoi mon event handler ne voulait pas fonctionner. J’avais l’impression que certaines macros ne fonctionnaient pas. Mais sur Nagios, comment pouvons nous voir la commande qu’il exécute avec les valeurs des arguments?
Et bien, la solution est ici : http://www.waggy.at/nagios/capture_plugin.htm
Sur ce site, vous allez trouvez un plugin perl qui est téléchargeable ici : http://www.waggy.at/nagios/capture_plugin.txt
Installation et configuration du plugin
Vous pouvez le placer avec vos autres plugins, le renommer en capture_plugin.pl et lui donner les bons droits.
L’emplacement du fichier log est défini dans cette variable :
my $LOG_FILE = “/tmp/captured-plugins.log”;
Utilisation du plugin
Si la commande que vous voulez debugger est la suivante :
$USER1$/check_nrpe -H $HOSTADDRESS$ -c restart_service -a $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ “$ARG1$”
Il vous suffi de la modifier en ajoutant le plugin comme ceci :
$USER1$/capture_plugin.pl $USER1$/check_nrpe -H $HOSTADDRESS$ -c restart_service -a $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ “$ARG1$”
Voilà, il ne vous reste plus qu’à tester et vérifier que votre commande est bien lancée dans le fichier log.
Exemple de fichier log :
Voici un exemple de log :
2010-6-21 16:32:29 —— debugging
cmd=[/usr/lib/nagios/plugins/check_nrpe ‘-H’ ‘192.168.0.1’ ‘-c’ ‘restart_service’ ‘-a’ ‘OK’ ‘HARD’ ‘4’ ‘mon service’]
output=[Restarting mon service (3rd soft critical state)
]
retcode=0
- cmd –> Commande lancée par Nagios
- output –> retour de la commande check_nrpe
- retcode –> Code retour de la commande check_nrpe
Si vous avez d’autres solutions, n’hésitez pas 😉 J’ai essayé le mode debug, mais ça n’a pas trop fonctionné. En même temps, j’ai pas cherché beaucoup…
Code Sources :
Au cas où, je mets la source :
#!/usr/bin/perl -w # # Written 2007-03-24 by Wolfgang Wagner (aka wolle) # # $id: capture_plugin.pl v1.0 # # Captures stdout&stderr in a file and returns orginial results to Nagios (http://www.nagios.org) # # Copyright 2007 by Wolfgang Wagner. All rights reserved. # # This software is licensed under the terms of the GNU General Public License Version 2 # as published by the Free Software Foundation. # It is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, # MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. # # Check out http://www.waggy.at for possible future versions. # use strict; # This plugin does not need any nagios utils. It just interfaces the original plugin. my $LOG_FILE = "/tmp/captured-plugins.log"; my ($cmd, $ret_code, $output); # First display all arguments my ($numArgs, $argnum); $numArgs = $#ARGV + 1; # create the command-line $cmd = $ARGV[0]; foreach $argnum (1 .. $#ARGV) { $cmd = $cmd . " '" . $ARGV[$argnum] . "'" } # prepare debug-output # ($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek, $dayOfYear, $daylightSavings) = localtime(time); my ($second, $minute, $hour, $dayOfMonth, $month, $yearOffset) = localtime(time); my $year = 1900 + $yearOffset; my $theTime = " $year-$month-$dayOfMonth $hour:$minute:$second"; # now execute the command $output = `$cmd 2>&1`; $ret_code = $?>>8; # log the start, output, retcode & end my $LogFile; # open could be better: check success later; if unsuccessful return UNKNWON to Nagios open (LogFile, ">>$LOG_FILE") || die ("Cannot open logfile"); print LogFile "$theTime ------ debugging\ncmd=[$cmd]\noutput=[$output]\nretcode=$ret_code\n-------\n"; close(LogFile); # avoid access problems for others. chmod 0777, $LOG_FILE; # now return the original resutlt to Nagios print $output; exit "$ret_code";
Articles similaires
Publicité :)
Articles récents
- Memento VI – Boostez Votre Productivité avec Vi : Trucs et Astuces à Connaître
- Configuration de Nginx pour Obtenir l’IP Réelle des Visiteurs avec CloudFlare
- Récupérer les informations d’un Ordinateur Terra à partir du numéros de série avec Python
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc…
- Failed to Start File System Check – Vcenter 7
Mot-clefs
Commentaires récents
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc… dans
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc… dans
- Rotation des logs avec logrotate dans
- Hôte déconnecté sur le Vcenter. Impossible de se connecter à l’ESX. dans
- Pourquoi mon interface vlan ne veut pas devenir up ? dans
Dans la FAQ de nagios:
http://support.nagios.com/knowledgebase/faqs/index.php?option=com_content&view=article&id=52&catid=35&faq_id=162&expand=false&showdesc=true
aussi 😉 Je ne l’avais jamais vu cette faq ! Merci ! Ce qui veut dire que dans le mode debug, on ne voit pas la commande. C’est bien ça?