Auteur:


Date:
6/12/2007

Catégories:
Open-source
Reseau
Systeme

Tags:


Des graphes dans Nagios avec PNP

---

Cette procédure est obsolète (écrite pour la version 0.4.x de Pnp4Nagios).

=> Merci de consulter cette procédure

---

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.14 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).

Update du 24/08/2009: Mise à jour de la procédure pour PNP version 0.4.14 et suppression des informations concernant la version 2.x de Nagios.

Compilation de PNP

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

# cd /usr/src
# wget http://downloads.sourceforge.net/pnp4nagios/pnp-0.4.14.tar.gz
# tar zxvf pnp-0.4.14.tar.gz
# cd pnp-0.4.14

Puis on configure:

# ./configure
General Options:
-------------------------         -------------------
Nagios user/group:                nagios nagios
Install directory:                /usr/local/nagios
HTML Dir:                         /usr/local/nagios/share/pnp
Config Dir:                       /usr/local/nagios/etc/pnp
Location of rrdtool binary:       /usr/bin/rrdtool Version 1.2.15
RRDs Perl Modules:                FOUND (Version 1.2015)
RRD Files stored in:              /usr/local/nagios/share/perfdata
process_perfdata.pl Logfile:      /usr/local/nagios/var/perfdata.log
Perfdata files (NPCD) stored in:  /usr/local/nagios/var/spool/perfdata/

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

# make all
# make install
# 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 cette installation "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 performance data
#service_perfdata_file=/usr/local/nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATAtTIMET::$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=15
service_perfdata_file_processing_command=process-service-perfdata-file

#
# host performance data
#

host_perfdata_file=/usr/local/nagios/var/hostperfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATAtTIMET::$TIMET$tHOSTNAME::$HOSTNAME$tHOSTPERFDATA::$HOSTPERFDATA$tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$tHOSTSTATE::$HOSTSTATE$tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

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

# sudo vi commands.cfg
define command{
command_name    process-service-perfdata
command_line    $USER1$/process_perfdata.pl --bulk=/usr/local/nagios/var/service-perfdata
}

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

Puis pour Nagios 3:

# sudo chown -R nagios:nagios /usr/local/nagios/var/hostperfdata

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.

 

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.

  • Quidam

    Bonjour,
    J’ai serveur sous Ubuntu 8.04 avec Nagios 3.03
    J’ai installer pnp sans problème 0.4.10
    Il est mode bulk
    Je n’obtiens qu’un type de graphe : localhost/_HOST_
    Je n’ai pas les autres courbes des services de localhost.

    Un extrait du fichier log perfdata
    2008-09-17 13:55:19 [32061] process_perfdata.pl-0.4.10 starting in BULK Mode
    2008-09-17 13:55:19 [32061] searching for /usr/local/nagios/var/host-perfdata
    2008-09-17 13:55:19 [32061] renaming /usr/local/nagios/var/host-perfdata to /usr/local/nagios/var/host-perfdata-PID-32061 for bulk update
    2008-09-17 13:55:19 [32061] reading /usr/local/nagios/var/host-perfdata-PID-32061 for bulk update
    2008-09-17 13:55:19 [32061] Processing Line 1
    2008-09-17 13:55:19 [32061] Datatype set to ‘HOSTPERFDATA’
    2008-09-17 13:55:19 [32061] Found Performance Data for localhost / _HOST_ (rta=0.081000ms;3000.000000;5000.000000;0.000000 pl=0%;80;100;0)
    2008-09-17 13:55:19 [32061] No Custom Template found for check-host-alive (/usr/local/nagios/etc/pnp//check_commands/check-host-alive.cfg)
    2008-09-17 13:55:19 [32061] RRD Datatype is GAUGE
    2008-09-17 13:55:19 [32061] Template is check-host-alive.php
    2008-09-17 13:55:19 [32061] data2rrd called
    2008-09-17 13:55:19 [32061] RRDs::update /usr/local/nagios/share/perfdata/localhost/_HOST_.rrd 1221652514:0.081000:0
    2008-09-17 13:55:19 [32061] /usr/local/nagios/share/perfdata/localhost/_HOST_.rrd updated
    2008-09-17 13:55:19 [32061] 1 Lines processed
    2008-09-17 13:55:19 [32061] /usr/local/nagios/var/host-perfdata-PID-32061 deleted
    2008-09-17 13:55:19 [32061] PNP exiting (runtime 0.0059s) …
    2008-09-17 13:55:34 [32064] Using Config File /usr/local/nagios/etc/pnp/process_perfdata.cfg parameters
    2008-09-17 13:55:34 [32064] process_perfdata.pl-0.4.10 starting in BULK Mode
    2008-09-17 13:55:34 [32064] searching for /usr/local/nagios/var/host-perfdata
    2008-09-17 13:55:34 [32064] renaming /usr/local/nagios/var/host-perfdata to /usr/local/nagios/var/host-perfdata-PID-32064 for bulk update
    2008-09-17 13:55:34 [32064] reading /usr/local/nagios/var/host-perfdata-PID-32064 for bulk update
    2008-09-17 13:55:34 [32064] 0 Lines processed

    Si quelqu’un peut m’aider
    Merci

  • Quidam

    J’ai résolu mon problème :
    Il faut activer les service host performance pour nagios 3 dans le fichier nagios.cfg et rajouter dans le fichier commands.cfg la commande pour les services.
    Pour toute question sur PNP ou nagios allez sur le portail de nagios :
    http://www.nagios-portal.de
    Joerg m’a bien aidé. Merci à lui (c’est le programmeur de PNP).

  • http://problemerrdcorrompu licht

    Bonjour,

    je teste actuellement nagios avec pnp. Le serveur nagios fonctionne en bulk mode. Je surveille 6 serveurs windows (client NSClient ++) chacun ayant 10 compteurs de performance personnaliés. Tout tournait bien pendant 3 semaines. Depuis 4 jours, les fichiers ne se chargent plus, les graphiques n’évoluent. Après réinstall complète de l’architecture et génération de nouveau fichier rrd, et comparaison des fichiers de config identiques, mes conclusions sont que les fichiers rrd se sont corrompus. Je suis quand même surpris. Est ce que certains ont déjà eu le problème ? Et comment l’ont-ils résolus ?
    Merci

  • bobo

    Texte manquant je complete

    host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$

  • bobo

    You don’t have permission to access /nagios/pnp/ on this server

    Avez vous une idée du problème???

  • Julien

    J’ai un petit soucis avec PNP
    J’ai reussi l’install et régler les problèmes qui ont déja été exposés ici.

    Mes fichiers sont créer correctemetn dans les dossiers correspondant aux hotes.

    Mon problème :

    Quand je clique sur l’icone pour essayer d’acceder a des graphes, je tombe sur une page blanche.

    Auriez vous une idée de ce que cela pour etre ?

  • Julien

    pour bobo :

    essaie un chmod 777 sur le dossier ou fichier concerné ;)

  • bobo

    Merci julien, problème résolu sur le forum :)

  • Julien

    ET moi alors ? qui va m’aider ? :p

  • SUIKOX

    salut

    moi c’est en ce qui concerne le sudo chmod -R 777 /usr/local/nagios/var/spool/checkresults

    je n’ai pas les dossiers spool et checkresults est-ce qu’il faut que je le crée ??

  • Julien

    Normalement non, ils ne sont pas a créer.

    Maintenant, vu qu’ils te font défeaut, tu peux toujours essayer de les mettres a la main, tu ne risquera pas grand chose.

    ;)

  • Maximilien

    Bonjour,

    Bah moi je suis dans la même galère que beaucoup avec ces maudits fichiers RDD :D

    Pourtant les fichiers de stats /usr/local/nagios/var/service-perfdata et /usr/local/nagios/var/host-perfdata se remplissent correctement, et voici les logs que j’ai dans /usr/local/nagios/var/perfdata.log :

    2009-02-10 09:50:56 [18392] reading /usr/local/nagios/var/service-perfdata-PID-18392 for bulk update
    2009-02-10 09:50:56 [18392] Processing Line 1
    2009-02-10 09:50:56 [18392] No Perfdata. Skipping line 1
    2009-02-10 09:50:56 [18392] Processing Line 2
    2009-02-10 09:50:56 [18392] No Perfdata. Skipping line 2
    2009-02-10 09:50:56 [18392] Processing Line 3
    2009-02-10 09:50:56 [18392] Datatype set to ‘SERVICEPERFDATA’
    2009-02-10 09:50:56 [18392] Found Performance Data for Serveur1 / CPU (5 min avg Load=0%;80;90;0;100)
    2009-02-10 09:50:56 [18392] No Custom Template found for check_nt (/usr/local/nagios/etc/pnp//check_commands/check_nt.cfg)
    2009-02-10 09:50:56 [18392] RRD Datatype is GAUGE
    2009-02-10 09:50:56 [18392] Template is check_nt.php
    2009-02-10 09:50:56 [18392] data2rrd called
    2009-02-10 09:50:56 [18395] process_perfdata.pl-0.4.4 starting in DEFAULT Mode
    2009-02-10 09:50:56 [18395] Datatype set to ‘HOSTPERFDATA’
    2009-02-10 09:50:56 [18395] Datatype set to ‘SERVICEPERFDATA’
    2009-02-10 09:50:56 [18395] No Performance Data for Serveur2 /
    2009-02-10 09:50:56 [18395] PNP exiting …
    2009-02-10 09:50:56 [18398] process_perfdata.pl-0.4.4 starting in DEFAULT Mode
    2009-02-10 09:50:56 [18398] Datatype set to ‘HOSTPERFDATA’
    2009-02-10 09:50:56 [18398] Datatype set to ‘SERVICEPERFDATA’
    2009-02-10 09:50:56 [18398] No Performance Data for Serveur3 /
    2009-02-10 09:50:56 [18398] PNP exiting …

    J’ai bien créé à la main un dossier par serveur dans /usr/local/nagios/share/perfdata/ mais ceux-ci ne se remplissent pas des précieux fichiers RDD.

    Pour info, j’ai suivi la doc http://www.pnp4nagios.org/pnp/config

    Merci de votre aide !
    Max

  • Fitzdsl

    Bonjour,
    J’ai comme beaucoup de monde içi le même problème de fichier rrd.
    Je ne comprend pas comment les autres ont trouvé la solution.

    1) Pourquoi y’a-t-il le commentaire pour nagios 2 devant les service-dataperf ? Ne peux-t-on pas l’utiliser avec Nagios 3 ???

    2) L’absence de tiret est il fait exprès entre host_perfdata_file=/usr/local/nagios/var/hostperfdata et command_line $USER1$/process_perfdata.pl –bulk=/usr/local/nagios/var/host-perfdata

    3) De même faut il pointer vers un interpréteur perl avant le $USER1$ dans la commande ?

    4) Ne faut t’il pas rajouter ce service à un hote pour générer les rrd ???

    Merci d’avance

  • Fitzdsl

    Bonjour,
    J’ai toujours le même problème : pnp ne me génère pas les fichiers rrd.
    Dans le fichier de log de perfdata, j’ai bien :

    2009-02-16 03:26:31 [4538] Using Config File /usr/local/nagios/etc/pnp/process_perfdata.cfg parameters
    2009-02-16 03:26:31 [4538] process_perfdata.pl-0.4.12 starting in BULK Mode called by Nagios
    2009-02-16 03:26:31 [4538] searching for /usr/local/nagios/var/host-perfdata
    2009-02-16 03:26:31 [4538] renaming /usr/local/nagios/var/host-perfdata to /usr/local/nagios/var/host-perfdata-PID-4538 for bulk update
    2009-02-16 03:26:31 [4538] reading /usr/local/nagios/var/host-perfdata-PID-4538 for bulk update
    2009-02-16 03:26:31 [4538] Processing Line 1
    2009-02-16 03:26:31 [4538] Datatype set to ‘SERVICEPERFDATA’
    2009-02-16 03:26:31 [4538] Found Performance Data for localhost / Swap Usage (swap=4094MB;0;0;0;4094)
    2009-02-16 03:26:31 [4538] No Custom Template found for check_local_swap (/usr/local/nagios/etc/pnp/check_commands/check_local_swap.cfg)
    2009-02-16 03:26:31 [4538] RRD Datatype is GAUGE
    2009-02-16 03:26:31 [4538] Template is check_local_swap.php
    2009-02-16 03:26:31 [4538] data2rrd called

    Mais je n’ai pas de base de créée !!!
    J’avoue que la je sèche !

  • Fitzdsl

    Problème résolu :
    En fait j’avais créé dans /usr/local/nagios/share/perfdata un répertoire pour stocker les fichier pour mon hôté monitoré (localhost).
    Mais je n’avais pas changé le propriétaire du répertoire (root root).
    Un simple chown -R nagios:nagios perfdata à résolu mon problème !

  • champion

    @mathieu
    As tu pu résoudre ton problème d’affichage du graphe de certains services (Total_procs, SIP …)? si oui j’aimerai un peu savoir la procédure!

    Merci

  • Hocine

    Bonjour ,
    J’ai suivi le tuto à la lettre. Voici les erreurs rencontrées et la demarche exacte pour les résoudre.
    J’ai nagios3.

    1 dans monsiteweb/nagios/pnp
    J’avais le message d’erreur que gd etait pas installé
    Solution
    sudo apt-get install php5-gd
    /etc/init.d/apache2 restart

    2 dans monsiteweb/nagios/pnp
    error2.1: Hostname is not set.
    error2.2: Directory /usr/local/nagios/share/perfdata/ is empty.
    Solution

    mkdir /usr/local/nagios/share/perfdata/localhost
    chown -R nagios:nagios /usr/local/nagios/share/perfdata/localhost

    cp /usr/local/nagios/etc/pnp/process_perfdata.cfg-sample /usr/local/nagios/etc/pnp/process_perfdata.cfg

    add to /usr/local/nagios/etc/objects/commands.cfg
    define command{
    command_name process-service-perfdata-file
    command_line $USER1$/process_perfdata.pl –bulk=/usr/local/nagios/var/service-perfdata
    }

    define command{
    command_name process-host-perfdata-file
    command_line $USER1$/process_perfdata.pl –bulk=/usr/local/nagios/var/host-perfdata
    }

    mkdir /usr/local/nagios/var/host-perfdata
    chown -R nagios:nagios /usr/local/nagios/var/host-perfdata

    /etc/init.d/apache2 restart
    /etc/init.d/nagios restart

    Espérant que ca va vous aider.
    /Hocine

  • rockmac

    svp j’arrive pas a integré pnp sur nagios j’ai l’interface de pnp qui s’affiche mais pas de signe de pnp dans nagios j’ai ajouté ces lignes dans le fichier template.cfg

    define host {
    name host-pnp
    register 0
    action_url /nagios/pnp/index.php?host=$HOSTNAME$
    }

    define service {
    name srv-pnp
    register 0
    action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
    }

  • Tonio0

    bonjour,
    j’ai un erreur sur pnp qui est : “hostname is not set” .
    J’ai tout mes fichier .cgf et jai gardé les fichier .cgf-sample au cas ou dans /usr/local/nagios/etc/pnp .
    En plus de cela il me manque des fichiers .cgi qui sont statusmap.cgi, trends.cgi, histogram.cgi donc c’est pages ne souvrent pas. Je suis bloqué, si quelqu’un pourrais m’aider je vous remercie d’avance.
    Une autre petite question apparament il faut perl aussi pour nagios comment l’installer ?

  • selassi

    Good tuto

    Tanks a lot :D

  • neeemooo

    Bah moi, j’ai nagios et centreon et j’ai suivis ton tuto. ça a l’air perfect sauf nouveau de config, je les ai fait sur l’interface centreon : config->nagios->nagios.cfg->…option ou autres là ^^ -> j’essaye de remplir les différents champs. ça a l’air bon. Export est OK mais je ne peux pas avoir le lien de http://…./nagios/pnp… il me marque : Page not foud. Error fatale ou quoi lol!

    Mais comment puis-je faire?

    Merci pour votre réponse si vite… enfin je l’espère car je suis dans un urgent quand même

  • neeemooo

    Roo… A cause des orages, j’ai tout perdu ce que je viens d’écrire.

    Ben je résume un peu avant que je off de mon pc …

    J’ai nagios et centreon. Je suivie le tuto, ça a l’air ok. Je met en place les fichiers de config à partir de l’interface centreon, exportation et vérification look alright, but PAGE NOT FOUND when i typed http://…/nagios/pnp

    MERCI beaucoup pour votre aide / précision. :)
    J’ai horreur de l’orage… donc je vais aller au lit au lieu d’être sur mon pc t ravailler…

  • neeemooo

    Au fait il m’affiche ça après http://…/nagios/pnp ou bien http://…./pnp4nagios

    PNP4Nagios Environment Tests & Kohana Environment Tests

    J’ai également modifié le fichier /etc/php5/apache2/php.ini
    magic_quotes_gpc = Off

    Est-ce normal? J’espère que oui, mais comment est-ce qu’on peut aller plus loin?

    Merci pour votre attention.

  • poinsot

    Lors de l’accès à l’URL :
    http://@servernagios/pnp/ il met met l’erreur “service description is not set”

    Auriez-vous une solution ???

  • mika

    moi aussi !!!

    Il y a t-il une solution ?

    merci