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 :

  • /home/system ⇒ repertoire home
  • /home/system/src ⇒ stockage des archives tar.gz
  • /home/system/build ⇒ extraction des archives et construction
  • /usr/local/nagios ⇒ chemin d’installation de nagios

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

  • Editer le fichier /etc/php5
  • Modifier la directive magic_quotes_gpc = Off

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

  • Supprimmer le fichier /usr/local/pnp4nagios/share/install.php

Configuration

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

  • Editer le fichier /usr/local/nagios/etc/nagios.cfg
  • rechercher la directive de configuration process_performance_data et la positionner à 1 ( process_performance_data=1 )

Configurer les données de performance de nagios

  • Editer le fichier /usr/local/nagios/etc/nagios.cfg
  • Ajouter les lignes suivantes (par exemple en fin de fichier)
#
# 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

  • Editer un fichier de configuration (par exemple /usr/local/nagios/etc/pnp-commands.cfg)
  • Ajouter les lignes suivantes dans ce fichier
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

  • Editer un fichier de configuration pour le modèle de service (par exemple /usr/local/nagios/etc/pnp-service-template.cfg)
  • Ajouter les lignes suivantes :
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

  • Editer un fichier de configuration pour le modèle de service (par exemple /usr/local/nagios/etc/pnp-host-template.cfg)
  • Ajouter les lignes suivantes :
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

  • Editer la configuration d’un hôte puis ajouter use host-pnp dans la définition de l’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

  • Editer le fichier de configuration d’un service et ajouter use srv-pnp dans la définition du 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
nagios/addons/pnp/pnp-0.6.txt · Dernière modification: 02/03/2017 16:41 (modification externe)
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0