Table des matières

PNP 0.6

Introduction

Le principal intérêt de cette nouvelle version 0.6 est que l’installation est totalement séparée de l’installation de nagios (on ne mélange plus les torchons et les serviettes). Ensuite l’outil est basé sur le framework php kohana (framework MVC dérivé de codeigniter), ce qui laisse auguré des possibilités d’extension et de personnalisation visuelle plus faciles (le V de MVC correspond à view et représente la couche présentation de l’application. Il suffit simplement de retoucher les vues pour personnaliser l’apparence de PNP). La personnalisation de l’interface et donc maintenant à la portée de n’importe quel intégrateur HTML.

L’ajout d’un “panier” de graphiques permet maintenant de mettre en regard plusieurs graphes pour corréler les informations de métrologie (pratique pour mettre en évidence que la surcharge de bande passante d’un routeur vient bien de tel ou tel serveur).

Un moteur de recherche (avec complétion via une fonctionnalité ajax) permet de sélectionner les hôtes bien plus facilement.

Mode de déploiement

Ce tutoriel est basé sur une installation “fraîche” de ubuntu 8.0.4 LTS (option LAMP et SSH SERVER sélectionnées en fin d’installation), de nagios et nagios-plugins conforme au tutoriel disponible pour ubuntu dans le wiki nagios-fr. A ce titre, nagios est installé dans /usr/local/nagios. Pour le stockage des sources et la construction, je me base sur le layout suivant :

Nous partirons sur le mode bulk avec npcd pour le traitement des données de performance. Ce mode permettant de traiter de grandes quantité de données de performance sans augmenter la latence de traitement de l’ordonnanceur de supervision nagios. Nagios ne fait que stocker les données de performances dans des fichiers et le démon npcd s’occupe de traiter ces fichiers pour générer les rrd. La configuration est un peu plus complexe mais on y gagne systématiquement.

Récupération des sources

cd /home/system/src
wget http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.0.tar.gz?use_mirror=freefr
cd ../build
tar zxvf ../src/pnp4nagios-0.6.0.tar.gz
cd pnp4nagios-0.6.0

Constuction et installation

Prérequis

sudo apt-get install rrdtool librrds-perl php5-gd	

Configuration de PHP5

Activation du module rewrite de apache

sudo a2enmod rewrite

Configuration de l'arbre des sources

./configure --prefix=/usr/local/pnp4nagios --with-nagios-user=nagios --with-nagios-group=nagios

Compilation

make all

Installation

sudo make install
sudo make install-webconf
sudo make install-config
sudo make install-init	

Redémarrage de apache

sudo /etc/init.d/apache2 reload

Test de l'installation

Nettoyage de l'installation

Configuration

Activer la traitement des données de peformance au niveau nagios

Configurer les données de performance de nagios

#
# service performance data
#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
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=15
service_perfdata_file_processing_command=process-service-perfdata-file

#
# host performance data starting with Nagios 3.0
# 
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
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=15
host_perfdata_file_processing_command=process-host-perfdata-file

Configurer les commandes de traitement des données de performance

define command{
       command_name    process-service-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}

define command{
       command_name    process-host-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}

Création du modèle de service (template) pour prise en compte des données de performance

define service {
   name       srv-pnp
   process_perf_data  1
   action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' target='main' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
   register   0
}

Création du modèle d'hôte (template) pour prise en compte des données de performance

define host {
   name       host-pnp
   process_perf_data  1
   action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_' target='main' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=_HOST_
   register   0
}

Activer les données de performance sur un hôte

par exemple :

define host{
        use                     linux-server,host-pnp
        host_name               localhost
        alias                   localhost
        address                 127.0.0.1
        }

Activer les données de performance sur un service

par exemple :

define service{
        use                             local-service,srv-pnp
        host_name                       localhost
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
        }

Adapter les permission

sudo chown -R nagios:nagios /usr/local/nagios/etc
Astuce :
Personnellement afin de référencer les fichiers de configurations dans Nagios je préfère créer un répertoire conf.d sous /usr/local/nagios/etc et rajouter une directive cfg_dir=/usr/local/nagios/etc/conf.d dans le fichier nagios.cfg. De cette manière tous mes fichiers de configuration situés dans ce répertoire sont pris en compte par Nagios.

Activer la configuration npcd

sudo cp npcd.cfg-sample npcd.cfg

Redémarrer/Démarrer les services

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