Installation et configuration de Pnp4Nagios en “mode bulk”

Date: 9/09/2010 | Catégories: Nagios,Open-source,Planet-libre | Tags: ,

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::SERVICEPERFDATAtTIMET::$TIMET$tHOSTNA

ME::$HOSTNAME$tSERVICEDESC::$SERVICEDESC$tSERVICEPERFDATA::$SERVICEPERFDATA$t

SERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$tHOSTSTATE::$HOSTSTATE$tHOSTSTATETYP

E::$HOSTSTATETYPE$tSERVICESTATE::$SERVICESTATE$tSERVICESTATETYPE::$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::HOSTPERFDATAtTIMET::$TIMET$tHOSTNAME::$H

OSTNAME$tHOSTPERFDATA::$HOSTPERFDATA$tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$tHO

STSTATE::$HOSTSTATE$tHOSTSTATETYPE::$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 !