TP Nagios - Olivier Emery

NAGIOS 4.01
Installation sur Debian 7.1
1 : Préambule (wiki)
2 : Installation Nagios (avec l'aide de Djibril de « developpez.com »)
3 : Configuration de Nagios
4 : Configuration des objets et ajouts de clients Nagios
5 : Superviser des services
6 : Gestionnaire d’évènements
7 : Les graphs pnp4
8 : Module « check_mk » (Non réussi)
1
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Préambule
Nagios (anciennement appelé Netsaint) est une application permettant la surveillance système et
réseau. Elle surveille les hôtes et services spécifiés, alertant lorsque les systèmes ont des
dysfonctionnements et quand ils repassent en fonctionnement normal. C'est un logiciel libre sous
licence GPL.
C'est un programme modulaire qui se décompose en trois parties :
1. Le moteur de l'application qui vient ordonnancer les tâches de supervision.
2. L'interface web, qui permet d'avoir une vue d'ensemble du système d'information et des
possibles anomalies.
3. Les sondes (appelées greffons ou plugins), une centaine de mini programmes que l'on peut
compléter en fonction des besoins de chacun pour superviser chaque service ou ressource
disponible sur l'ensemble des ordinateurs ou éléments réseaux du SI.
Suite au manque de réactivité du développeur principal de Nagios et de sa volonté de ne plus
diffuser tous les modules sous licence Libre, certains développeurs actifs sur le projet ont fait
diverger Nagios pour créer Icinga.
Possibilités


Superviser des services réseaux : (SMTP, POP3, HTTP, NNTP, ICMP, SNMP, LDAP, etc.)
Superviser les ressources des serveurs (charge du processeur, occupation des disque durs,
utilisation de la mémoire paginée) et ceci sur les systèmes d'exploitation les plus répandus.
Interface avec le protocole SNMP.
La supervision à distance peut utiliser SSH ou un tunnel SSL (notamment via un agent NRPE).
Les plugins sont écrits dans les langages de programmation les plus adaptés à leur tâche :
scripts shell (Bash, ksh, etc.), C++, Perl, Python, Ruby, PHP, C#, etc.
La vérification des services se fait en parallèle.
Possibilité de définir une hiérarchie dans le réseau pour pouvoir faire la différence entre un
serveur en panne et un serveur injoignable.
La remontée des alertes est entièrement paramétrable grâce à l'utilisation de plugins (alerte
par courrier électronique, SMS, etc.).
Acquittement des alertes par les administrateurs.
Gestion des escalades pour les alertes (une alerte non acquittée est envoyée à un groupe
différent).
Limitation de la visibilité, les utilisateurs peuvent avoir un accès limité à quelques éléments.
Capacité de gestion des oscillations (nombreux passages d'un état normal à un état d'erreur
dans un temps court).
Créer ses propres plugins, dans le langage désiré. Il suffit de respecter la norme Nagios des
Codes retour
o 0 OK (tout va bien)
o 1 WARNING (le seuil d'alerte est dépassé)
o 2 CRITICAL (le service a un problème)
o 3 UNKNOWN (impossible de connaître l'état du service)
Les possibilités de tests deviennent donc infinies, il suffit d'écrire tout plugin qui n'existerait
pas déjà sur les sites spécialisés.












2
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Installation
Dans ce TP, je vais utiliser trois machines virtuelles, deux Debian 7.1 dont notre superviseur Nagios et
un Windows Seven.
I : Prérequis
Nous avons besoin d'installer quelques bibliothèques utiles au bon fonctionnement de Nagios, mais
surtout à son installation, compilation…
Nous devons installer apache2, php et gd, utiles pour la future interface de Nagios. Il nous faut aussi
make et gcc pour les compilations et SNMP pour superviser les routeurs, switch…
root@nagios:~# apt-get update
root@nagios:~# apt-get upgrade
root@nagios:~# apt-get install apache2 libapache2-mod-php5 php5-gd php5 make gcc buildessential wget libgd-gd2-perl libgd2-dev libgd2-xpm libgd2-xpm-dev libnet-snmp-perl libssl-dev snmp
daemon
II : Nagios
A : Comptes et groupes utilisateurs
Création d'un utilisateur « nagios » ayant pour mot de passe « nagios » et appartenant à un groupe
nommé « nagios ».
root@nagios:~# groupadd nagios
Création du compte utilisateur « nagios » que nous allons mettre dans le groupe « nagios »
root@nagios:~# useradd -m -g nagios nagios
Attribution d'un mot de passe à l'utilisateur « nagios ». Ce mot de passe est « nagios ».
root@nagios:~# passwd nagios
J'ai mis « nagios » comme mot de passe
Création d'un groupe « nagcmd » permettant l'exécution des commandes externes à travers
l'interface Web. Rajout des utilisateurs Nagios et Apache à l'intérieur du groupe « nagcmd ».
root@nagios:~# groupadd nagcmd
root@nagios:~# usermod -g nagcmd nagios
root@nagios:~# usermod -g nagcmd www-data
3
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
B : Téléchargement
Création d'un répertoire /nagios/download dans lequel nous déposerons les archives à installer.
root@nagios:~# mkdir -p /nagios/download
root@nagios:~# cd /nagios/download
root@nagios:/nagios/download# wget
http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.1.tar.gz
root@nagios:/nagios/download# wget http://www.nagios-plugins.org/download/nagios-plugins1.5.tar.gz
root@nagios:/nagios/download# ls -alh
total 4,0M
drwxr-xr-x 2 root root 4,0K oct. 15 11:47 .
drwxr-xr-x 3 root root 4,0K oct. 15 11:45 ..
-rw-r--r-- 1 root root 1,7M sept. 20 22:48 nagios-4.0.1.tar.gz
-rw-r--r-- 1 root root 2,4M oct. 2 17:27 nagios-plugins-1.5.tar.gz
C: Compilation
Il faut extraire le code source de l'archive de Nagios dans un premier temps.
root@nagios# cd /nagios/download/
root@nagios# tar -xzf nagios-4.0.1.tar.gz
Puis exécuter le script de configuration en lui précisant le nom du groupe créé précédemment.
root@nagios:/nagios/download # cd nagios-4.0.1/
root@nagios:/nagios/download/nagios # ./configure --with-command-group=nagcmd
Compilons le code sources de Nagios.
root@nagios:/nagios/download/nagios-4.0.1 # make all
Si « make » n'est pas trouvé, installez-le et recommencez.
Installons les scripts de démarrage.
root@nagios:/nagios/download/nagios-4.0.1# make install-init
/usr/bin/install -c -m 755 -d -o root -g root /etc/init.d
/usr/bin/install -c -m 755 -o root -g root daemon-init /etc/init.d/nagios
*** Init script installed ***
Le fichier « /etc/init.d/nagios » est créé.
4
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Installons les fichiers de configuration. Les fichiers seront automatiquement installés dans le
répertoire /usr/local/nagios/etc.
root@nagios:/nagios/download/nagios-4.0.1# make install-config
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc/objects
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/nagios.cfg
/usr/local/nagios/etc/nagios.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/cgi.cfg /usr/local/nagios/etc/cgi.cfg
/usr/bin/install -c -b -m 660 -o nagios -g nagios sample-config/resource.cfg
/usr/local/nagios/etc/resource.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/templates.cfg
/usr/local/nagios/etc/objects/templates.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/commands.cfg
/usr/local/nagios/etc/objects/commands.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/contacts.cfg
/usr/local/nagios/etc/objects/contacts.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/timeperiods.cfg
/usr/local/nagios/etc/objects/timeperiods.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/localhost.cfg
/usr/local/nagios/etc/objects/localhost.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/windows.cfg
/usr/local/nagios/etc/objects/windows.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/printer.cfg
/usr/local/nagios/etc/objects/printer.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/switch.cfg
/usr/local/nagios/etc/objects/switch.cfg
*** Config files installed ***
Remember, these are *SAMPLE* config files. You'll need to read the documentation for more
information on how to actually define services, hosts, etc. to fit your particular needs.
Installons et configurons les permissions.
:/nagios/download/nagios-4.0.1# make install-commandmode
/usr/bin/install -c -m 775 -o nagios -g nagcmd -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
*** External command directory configured ***
À ce stade, il ne faut surtout pas démarrer Nagios.
5
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
D : Configuration de Nagios
À la première installation, et à chaque fois que vous ferez des modifications de Nagios ou que vous
aurez besoin de redémarrer Nagios, assurez-vous que tous les fichiers de configuration sont
conformes. Pour cela, lancez toujours cette commande.
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Cela devrait se finir comme ça
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight check
Gestion du démarrage du serveur
Il est important que Nagios et Apache2 puissent être lancés au démarrage du serveur. Pour
configurer cela, voici ce qu'il faut faire :
# update-rc.d nagios defaults
Il se peut que nous obtenions des messages d'erreurs, dans le fichier « /etc/init.d/nagios », il manque
deux lignes essentielles :
# Default-Start:
# Default-Stop:
2345
016
Ces deux lignes permettent de donner le rang de démarrage et d'arrêt du script nagios. Voici notre
entête du fichier avant modification :
Faisons une sauvegarde et modifions notre fichier :
cp /etc/init.d/nagios /nagios/download/nagios.old
Voici notre entête du fichier après la modification :
#!/bin/sh
# Nagios
Startup script for the Nagios monitoring daemon
#
# chkconfig: - 85 15
# description: Nagios is a service monitoring system
# processname: nagios
# config: /etc/nagios/nagios.cfg
# pidfile: /var/nagios/nagios.pid
#
### BEGIN INIT INFO
# Provides:
nagios
# Required-Start:
$local_fs $syslog $network
6
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
# Required-Stop:
$local_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop Nagios monitoring server
# Description:
Nagios is is a service monitoring system
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
Maintenant, relançons l'utilitaire « update-rc.d » :
# update-rc.d nagios defaults
Maintenant, démarrons Nagios :
/etc/init.d/nagios start
Sous Debian, avec la version actuelle de Nagios, son démarrage est problématique et nous avons des
messages d'erreurs :
root@supervision:/nagios/download/nagios-plugins-1.5# /etc/init.d/nagios start
/etc/init.d/nagios: 22: .: Can't open /etc/rc.d/init.d/functions
Il faut modifier le fichier de démarrage du service nagios
# gedit /etc/init.d/nagios
Utilisez les touches « CTRL F » pour rechercher les lignes qui seront à modifier
Le fichier functions ne se trouve pas dans /etc/rc.d/init.d mais /lib/lsb/init-functions
# Source function library.
# . /etc/rc.d/init.d/functions (A SUPPRIMER)
. /lib/lsb/init-functions
Il faut changer la ligne :
/sbin/service nagios configtest > "$TMPFILE"
En :
/usr/sbin/service nagios configtest > "$TMPFILE"
Les lignes « status $prog » sont remplacées par « status_of_proc $prog »
Dans le stop(), remplacer :
killproc -p ${pidfile} -d 10 $exec
En :
killproc -p ${pidfile} $exec
7
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Remplacer :
$nice runuser -s /bin/bash - $user -c "$corelimit >/dev/null 2>&1 ; $exec -vp $config"
Par :
$nice su -s /bin/bash - nagios -c "$corelimit >/dev/null 2>&1 ; $exec -vp $config"
Au niveau du start, voici deux lignes à changer :
if test "$checkconfig" == "false"; then
…
daemon --user=$user $exec -ud $config
Par:
if test "$checkconfig" = "false"; then
…
daemon --user=$user -- $exec -d $config
Remplacer :
lockfile=/var/lock/subsys/$prog
Par :
lockfile=/var/lock/$prog
Pour terminer, dans votre bash la création de l'utilisateur de nagios et son mot de passe (nagios)
root@nagios# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Tous ces tests et modifications ont peut-être créé des processus Nagios zombies. Un redémarrage de
votre serveur fera du bien et permettra de tester que Nagios se lance et s'arrête correctement. Le
script /etc/init.d/nagios start|stop|restart n'est pas toujours d'une fiabilité sans faille. Afin d'éviter
d'avoir plusieurs démons Nagios qui tourneraient et qui mettraient à jour la même interface CGI.
Voici comment éviter ce désagrément
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# /etc/init.d/nagios stop; pkill nagios; /etc/init.d/nagios start
Changer la permission de ce répertoire /usr/local/nagios/var/rw afin de pouvoir effectuer certaines
actions depuis l'interface Nagios.
# chown nagios.nagcmd /usr/local/nagios/var/rw
8
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Maintenant nous pouvons nous connecter à Nagios via le lien suivant : http://localhost/nagios
Fichier de configuration
Dans le répertoire « /etc/local/nagios/etc/objects », on trouve les fichiers objets défini dans le fichier
« nagios.cfg » qui se trouve ici : « /etc/local/nagios/etc/nagios.cfg ».
Les objets à renseigner se trouvent ici :
# OBJECT CONFIGURATION FILE(S)
# You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
cfg_file=/usr/local/nagios/etc/objects/serveurs-linux.cfg
cfg_file=/usr/local/nagios/etc/objects/serveurs-windows.cfg
cfg_file=/usr/local/nagios/etc/objects/serveurs-messagerie.cfg
# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
9
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
On peut spécifier l’adresse du superviseur dans le fichier CGI : « url_html_path=/nagios »
Pour les bibliothèques des plugins : « /usr/local/nagios/etc/resource.cfg »
Les objets
Périodes de temps : Le fichier timeperiods.cfg défini les plages horaires de contrôle actifs.
10
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Le fichier contact.cfg déterminera à qui, via une boite mail ou SMS, envoyer les notifications.
(Configuration pour le TP partie 2&3)
Le fichier Templates.cfg est composé des gabarits de création d'hôtes, de contacts et de services avec
tous les paramètres à leurs attribuer. (Configuration pour le TP partie 2&3)
11
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
12
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Création des fichiers de configuration cité dans le fichier « nagios.cfg »
13
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
14
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
********
Méthode pour ajouter un objet :
Fichier « /etc/local/nagios/etc/nagios.cfg »
Ajouter le chemin de l’objet « .cfg » crée dans « /etc/local/nagios/etc/objects »
Définir les périodes de temps : « /etc/local/nagios/etc/objects/timeperiods.cfg »
Définir les contacts : « /etc/local/nagios/etc/objects/contacts.cfg »
15
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Définir les génériques (contact, hôtes,groupes, services):
« /etc/local/nagios/etc/objects/templates.cfg » ou directement dans l’objet, exemple :
Un fichier « serveurs-windows.cfg » (voir plus haut ********) crée dans le répertoire « object » peut
contenir les définitions d’hôtes, de groupes et de services…
Normalement quand tout est bien configuré, sur votre Nagios les clients s’affichent :
Superviser des SERVICES
Pour configurer un service, exemple APACHE il faut :
1) Éditer le fichier « serveurs-linux-cfg » présent dans « objects ». Ces objets je le rappelle sont
utilisés et chargés par le fichier de configuration « nagios.cfg ».
define service {
# On définit un nouveau service
Hostgroup_name
Groupe-serveurs-linux
# Définit dans « serveurs-linux.cfg »
service_description
Service Apache
# On nomme le service (apparait dans Nagios)
use
generic-service-formation
# Service définit dans « templates.cfg »
check_command
check_http
# Définit dans « commands.cfg »
}
2) Télécharger et activer le service Apache sur le client :
a. Apt-get install apache2
b. /etc/init.d/apache2 start
c. Résultat sur l’image qui suit
16
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Superviser des serveurs Linux
Installer l’agent NRPE sur le client Debian et configurer son fichier « /etc/nagios/nrpe.cfg »
Indiquer l’adresse IP du serveur Nagios (192.168.1.230). Démarrer le service NRPE
« /etc/init.d/nagios-nrpe-server start »
Ajouter de nouveaux plugins dans ce même fichier suivi des arguments nécessaires.
Pour vérifier la charge du CPU et l’espace disque par exemple :
« command[ check_disk]=/usr/lib/nagios/plugins/check_disk –w 60 –c 90 –p /dev/mapper/debianusr » !!ATTENTION, le chemin ici est issue d’une partition LVM!!
« command[ check_cpu]=/usr/lib/nagios/plugins/check_cpu –w 5 –c 10 »
Il nous faut donner des droits dans le fichier « /etc/sudoers »
« nagios ALL=(ALL) NOPASSWD : /usr/lib/nagios/plugins/ »
17
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Fichier SUDOERS
Vérification des paramètres du fichier Sudoers
Installation de la partie cliente coté Nagios, il nous demandera un mot de passe (nagios)
Faire une copie de ce fichier :
« cp /usr/lib/nagios/plugins/check_nrpe /usr/local/nagios/libexec »
Mettre des droits, ce placer dans « /usr/local/nagios/libexec »
« chown nagios : check_nrpe »
Rédemarrer le service nrpe coté client
Teste de communication entre Nagios et le client Debian
18
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Définition d’une commande « check_cpu » dans le fichier de configuration « serveurs-linux.cfg »
Résultat
Sur cette image on voit que j’ai configuré aussi un serveur Windows, notamment :
-
Le plugin « check_nt » sur Nagios
Nsclient++ coté windows
Tester l’installation avec cette commande
o Cd /usr/local/nagios/libexec
o ./check_nt –H 192.168.1.232 –p 14289 –v CLIENTVERSION –s nagios
 Commande check + IP clientWindows + port de communication +
commande_nt + password nsclient (défini à l’installation)
o Configurer fichier nagios « serveurs-windows.cfg »
o
o
o
Commande : $USER1$/check_nt –H $HOSTADDRESS$ -p 12489 –v $ARG1$ $ARG2$
Création des services CPU et DISK
o
19
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Supervision d’un service WEB
Après la création d’un page web sur le serveur distant Debian, dans /var/www il y a donc une page
HTML que l’on peut visualiser via un navigateur :
J’ai pour cela ajouter un deuxième serveur Debian (192.168.1.229) dans Nagios afin de voir les
différences lorsqu’un service répond par Ok et par Critical.
Pour cela j’ai créé un fichier « serveurs-linux2.cfg » dans les objets Nagios. Rajouter ce fichier dans la
configuration Nagios (nagios.cfg).
Je vais contrôler par le port 80 un mot précis dans une page web, le mot WEB.
Il faut créer une commande (commandes.cfg) :
Explication : (#/usr/lib/nagios/plugins/check_http –help)
$USER1$ : commande exécutable par un utilisateur (nagios)
check_http : commande Nagios
-I $HOSTADDRESS$ $ARG1$ : Adresse IP de l’hôte que l’on veut superviser
-u $ARG1$ : Chemin (path) de l’URL
-s $ARG1$ : Chaine (string) de caractère attendu dans le contenu
Créer un service (PAGE-WEB) dans « serveurs-linux2.cfg »
Résultat sur deux serveurs Debian, dont un ne dispose pas d’une page HTML contenant le mot WEB
(serverus-linux)
20
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
On peut constater l’erreur 405, et il nous indique aussi que la recherche de la chaine (STRING ‘WEB’)
a échouée dans le page test.html.
Gestionnaire d’évènements
Explication du processus de redémarrage d’un service sur un client Nagios par le serveur Nagios :
Dans les logs des deux parties on peut voir ceci :
Coté client, après l’arrêt volontaire, en root du service apache2 :
Coté serveur Nagios :
Notre service a été redémarré par un script présent coté client, mais comment ?
1 Le serveur Nagios supervise le service http sur un client via NRPE
2 Il constate aucune réponse du service apache2, qui semble arrêté coté client
3 Il y a une remontée de l’info sur le serveur Nagios
4 Utilisation du processus EVENT HANDLER défini dans le service check_http. Il déclenche une action
lors d’un changement d’état, ici l’arrêt du service web et va réaliser une suite d’action
5 Demande d’autorisation de l’utilisateur Nagios sur le site distant pour se connecter
6 Autorisation du serveur WEB, qui a le passage d’arguments activé (nrpe.cfg)
7 L’utilisateur nagios exécute le script qui va redémarrer le service apache2
21
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Graph PNP4-0.6
Installation et configuration du plugin pnp-6.0
#cd /usr/src
#wget http://downloads.sourceforge.net/project/pnp4nagios/files/PNP-0.6/pnp4nagios-0.6.21.tar.gz
#tar xvzf pnp4…
#cd pnp4…
#./configure --prefix=/usr/local/pnp4nagios --with-nagios-user=nagios --with-nagios-group=nagios
#make all
#make install
#make install-webconf
#make install-config
#make install-init
#/etc/init.d/apache2 reload
On se connecte : @ip serveur nagios/pnp4nagios. Nous avons un environnement Tests et Kohana.
Cette page nous demande, à la fin dans un rectangle vert, de supprimer le fichier install.php
Configuration de pnp4
FICHIER NAGIOS.CFG
Modifier la ligne du fichier « nagios.cfg » PROCESS_PERFORMANCE_DATA. Positionner à 1 au lieu de
0.
Toujours dans ce fichier, à la fin par exemple, ajouter ceci :
#
# service performance data
#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HO
STNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHEC
KCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTST
ATETYPE$\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::$HOSTNA
ME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOS
TSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
22
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
FICHIER COMMANDS.CFG
Editer ce fichier pour rajouter deux commandes :
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$
}
FICHIER TEMPLATES.CFG
Editer ce fichier pour ajouter une définition d’hôte et d’un nouveau service
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
}
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
}
FICHIER SERVEURS-LINUX2.CFG & SERVEURS-LINUX.CFG
Dans ces fichiers, je vais modifier la définition des hôtes et des services en y ajoutant les nouveaux
modules :
-
srv-pnp, qui sera ajouté à « use » dans le « define service »
host-pnp, qui sera ajouté à « use » dans le « define host »
23
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Permissions
sudo chown -R nagios:nagios /usr/local/nagios/etc
Activation du module rewrite d’Apache
sudo a2enmod rewrite
Modifier la configuration de PHP5


Editer le fichier /etc/php5
Modifier la directive magic_quotes_gpc = Off
Activer la configuration npcd
cd /usr/src/pnp4nagios-0.6.21/sample-config/pnp/
sudo cp npcd.cfg-sample /usr/local/pnp4nagios/etx/npcd.cfg
chown nagios :nagios npcd.cfg
Services
/etc/init.d/npcd start
/etc/init.d/nagios restart
/etc/init.d/apache2 restart
Teste de PNP
Serveur Nagios 192.168.1.230
URL pnp : http://192.168.1.230/pnp4nagios
24
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014
Sur ces images on peut constater que le service pnp apparait dans l’interface de Nagios, on peut
cliquer sur les graphs… (images 1 & 2). On a aussi une visualisation en locale en allant sur l’url de pnp
(image 3)
Module CHECK_MK
En ce qui concerne le template check_mk-cpu.loads, j’ai bien installé le module « check_mk » de
Matias Kettner et son agent. J’ai tenté de le configurer avec Nagios. Problème :
Impossible de charger les modules et je n’ai pas trouvé pourquoi… Du coup je ne mets pas tout ce
que j’ai réalisé comme manipulation.
25
EMERY Olivier & WILLM Geoffrey
TP Nagios – IUT LANNION – LPaGSRi 2013-2014