PNP is not PerfParse est un module permettant à Nagios de stocker dans une base RRD et d’afficher via une interface Web des données provenant de vos plugins Nagios. Actuellement en version de développement (0.4.4 au moment de l’écriture de ce billet), PNP comble un manque important dans Nagios: la génération de graphiques personnalisés intégrés à l’interface Web.

Nous allons dans ce billet installer PNP sur une configuration Nagios existante (cliquez ici pour accèder à des tutoriels d’installation de Nagios).

Compilation de PNP

On récupère la dernière version des sources et on décompresse:

# sudo wget http://downloads.sourceforge.net/pnp4nagios/pnp-0.4.4.tar.gz
# tar zxvf pnp-0.4.4.tar.gz
# cd pnp-0.4.4

Puis on configure:

# ./configure

Il faut vérifier que le résultat de cette configuration correspond à votre système, puis ensuite seulement lancer la compilation:

# make all
# sudo make install
# sudo make install-config

Configuration initiale de PNP

Il existe 3 méthodes pour intégrer PNP à Nagios. Dans ce billet, nous allons aborder la seconde (appelée bulk-mode) qui est un bon compromis entre la complexité d’installation et les performances obtenues.

Dans ce bulk-mode, les données de vos futurs graphes sont collectés dans un fichier temporaire. Ce fichier est traité de manière à intervalles réguliers par le script perl process_perfdata.pl.

La première chose à faire est d’éditer le fichier nagios.cfg et de modifier la configuration:

# sudo vi /usr/local/nagios/etc/nagios.cfg

process_performance_data=1

service_perfdata_command=process-service-perfdata // POUR Nagios 2

host_perfdata_command=process-host-perfdata // POUR Nagios 3

#
# service performance data // POUR Nagios 2
#
service_perfdata_file=/usr/local/nagios/var/serviceperfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=30
service_perfdata_file_processing_command=process-service-perfdata-file
#
# host performance data  // POUR Nagios 3
#
host_perfdata_file=/usr/local/nagios/var/hostperfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=30
host_perfdata_file_processing_command=process-host-perfdata-file

Reste à éditer le fichier commands.cfg (/usr/local/nagios/etc//commands.cfg sous Nagios 2 ou /usr/local/nagios/etc/objects/commands.cfg sous Nagios 3):

# sudo vi commands.cfg
// POUR Nagios 2
define command{
command_name process-service-perfdata-file
command_line $USER1$/process_perfdata.pl –bulk=/usr/local/nagios/var/service-perfdata
}
// POUR Nagios 3
define command{
command_name process-host-perfdata-file
command_line $USER1$/process_perfdata.pl –bulk=/usr/local/nagios/var/host-perfdata
}

Reste à vérifier votre configuration et à relancer Nagios:

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# /etc/init.d/nagios restart

Remarque, si vous rencontrez l’erreur suivant:

Error: Unable to write to temp_path (’/usr/local/nagios/var/spool/checkresults’) - Permission denied
Error: Unable to write to check_result_path (’/usr/local/nagios/var/spool/checkresults’) - Permission denied

Il faut modifier les droits sur le répertoire en faisant:

# sudo chmod -R 777 /usr/local/nagios/var/spool/checkresults

Comment accéder à PNP

Maintenant que l’installation est terminé, vous pouvez accéder à l’interface Web via l’URL suivante: http://AdresseServeurNagios/nagios/pnp/

Voici un aperçu de l’interface:

Intégrer PNP à Nagios

Après installation on a donc deux interfaces Web distinctes: celle de Nagios et celle de PNP. Pour intégrer PNP dans Nagios, il faut utiliser les action_url. La procédure est différente selon que vous utilisiez Nagios 2 ou Nagios 3.

Sous Nagios 2, il faut éditer le fichier serviceextinfo.cfg et ajouter:

define serviceextinfo {
host_name localhost
service_description load
action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
}

Sous Nagios 3, c’est dans le fichier template.cfg qu’il faut faire les ajouts:

define host {
name nomdutemplatehost

action_url /nagios/pnp/index.php?host=$HOSTNAME$
}

define host {
name nomdutemplateservice

action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
}

Une fois Nagios redémarré, une nouvelle icône ( ) devrait apparaître à coté des hosts et services concernés:

Vous avez donc maintenant un nouvel outil bien utile intégré à Nagios. Pour aller plus loin (notamment si vous souhaitez écrire vos propres templates), le mieux est de se rendre sur le site officiel de PNP.

Propulser ce billet dans la Web2.Osphère
  • del.icio.us
  • Scoopeo
  • Technorati
  • Digg
  • BlogMemes Fr
  • blogmarks
  • Google
  • E-mail this story to a friend!
  • Wikio FR
  • TwitThis