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.
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.
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
sudo apt-get install rrdtool librrds-perl php5-gd
sudo a2enmod rewrite
./configure --prefix=/usr/local/pnp4nagios --with-nagios-user=nagios --with-nagios-group=nagios
make all
sudo make install sudo make install-webconf sudo make install-config sudo make install-init
sudo /etc/init.d/apache2 reload
# # 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
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$ }
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 }
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 }
par exemple :
define host{ use linux-server,host-pnp host_name localhost alias localhost address 127.0.0.1 }
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% }
sudo chown -R nagios:nagios /usr/local/nagios/etc
sudo cp npcd.cfg-sample npcd.cfg
/etc/init.d/npcd start /etc/init.d/nagios restart /etc/init.d/apache2 restart