Installation et configuration de Pnp4Nagios en “mode bulk”
Hier, j’ai installé un nouveau serveur Nagios en utilisant mon script automatique. J’ai ensuite voulu lui ajouter Pnp4Nagios, le plugin permettant de générer des graphes sur les hosts et services surveillés par Nagios. Malheureusement, la procédure que j’avais écrite à l’époque pour la version 0.4.x de Pnp4Nagios n’est plus valable pour la version 0.6.x.
Voici donc un billet permettant l’installation de Pnp4Nagios 0.6.6 (dernière version disponible aujourd’hui) sur un serveur Nagios opérationnel (procédure validée pour Nagios 3.2.2).
Installation de pré-requis système
Sous un serveur “Debian like”, il faut installer les librairies suivantes:
sudo aptitude install rrdtool librrds-perl php5-gd
On doit avant l’installation configurer une variable posant problème dans le module PHP d’apache en éditant le fichier /etc/php5/apache2/php.ini:
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off
Compilation de Pnp4Nagios
On récupère l’archive de la version 0.6.6 puis on lance la configuration:
wget https://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.6.tar.gz
tar zxvf pnp4nagios-0.6.6.tar.gz
cd pnp4nagios-0.6.6
./configure
On doit obtenir le résumé suivant (si ce n’est pas le cas, il doit y avoir d’autres dépendances système à installer):
General Options:
————————- ——————-
Nagios user/group: nagios nagios
Install directory: /usr/local/pnp4nagios
HTML Dir: /usr/local/pnp4nagios/share
Config Dir: /usr/local/pnp4nagios/etc
Location of rrdtool binary: /usr/bin/rrdtool Version 1.3.1
RRDs Perl Modules: FOUND (Version 1.3001)
RRD Files stored in: /usr/local/pnp4nagios/var/perfdata
process_perfdata.pl Logfile: /usr/local/pnp4nagios/var/perfdata.log
Perfdata files (NPCD) stored in: /usr/local/pnp4nagios/var/spool
Web Interface Options: ————————- ——————-
HTML URL: http://localhost/pnp4nagios
Apache Config File: /etc/apache2/conf.d/pnp4nagios.conf
Puis on compile/installe:
make all
sudo make install
sudo make install-webconf
sudo make install-config
sudo /etc/init.d/apache2 restart
Configuration de Nagios pour prendre en compte Pnp4Nagios
On commence par éditer le fichier /usr/local/nagios/etc/nagios.cfg:
process_performance_data=1
service_perfdata_file=/usr/local/nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA TIMET::$TIMET$ HOSTNA
ME::$HOSTNAME$ SERVICEDESC::$SERVICEDESC$ SERVICEPERFDATA::$SERVICEPERFDATA$
SERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$ HOSTSTATE::$HOSTSTATE$ HOSTSTATETYP
E::$HOSTSTATETYPE$ SERVICESTATE::$SERVICESTATE$ SERVICESTATETYPE::$SERVICESTAT
ETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file
host_perfdata_file=/usr/local/nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA TIMET::$TIMET$ HOSTNAME::$H
OSTNAME$ HOSTPERFDATA::$HOSTPERFDATA$ HOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$ HO
STSTATE::$HOSTSTATE$ HOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
Puis on prends en compte le répertoire des plugins Pnp4Nagios en ajoutant la ligne suivante (à adapté si USER2 est déjà configuré) dans le fichier /usr/local/nagios/etc/objects/resource.cfg:
# Sets $USER2$ to be the path to the PNP4Nagios plugins
$USER2$=/usr/local/pnp4nagios/libexec
Enfin on configure le plugin dans le fichier /usr/local/nagios/etc/objects/commands.cfg (attention il y à deux – avant le bulk… Wodpress n’en affiche qu’un…):
# PNP4nagios
define command{
command_name process-service-perfdata-file
command_line $USER2$/process_perfdata.pl –bulk=/usr/local/nagios/var/service-perfdata
}
define command{
command_name process-host-perfdata-file
command_line $USER2$/process_perfdata.pl –bulk=/usr/local/nagios/var/host-perfdata
}
On relance enfin Nagios pour prendre en compte la configuration:
sudo /etc/init.d/nagios restart
Configuration de Pnp4Nagios
La configuration se fait en accèdant à l’URL suivante: http://monserveurweb.com/pnp4nagios/
Le script install.php devrait être executé. Il fait un check de votre configuration. Si tout est vert, tout est ok
Dans ce cas, il est prudent de supprimer ce script:
sudo rm /usr/local/pnp4nagios/share/install.php
Utilisation de Pnp4Nagios
On accède à Pnp4Nagios à partir de la même URL: http://monserveurweb.com/pnp4nagios/
Après quelques minutes, les graphes devrait se mettre à jour.
Que faire en cas de problème ?
Pnp4Nagios fourni un outil pour investiguer les erreurs éventuelles de configuration. Il suffit de lancer la commande suivante:
/usr/local/pnp4nagios/libexec/verify_pnp_config.pl -e -m bulk
Et voili, que les graphes soient !