III. Implémentation de la solution choisie
Cette partie est purement pratique. Nous y allons tour à
tour implémenter et configurer le trio Nagios-Centreon-Nagvis.
Notre travail sera déployé dans un environnement de
test constitué de : - Un serveur "Nagios" chargé de la
supervision réseau ;
37
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'777777777t
R777777,7777777777777. 7 77'77 7 7 7 77 7 7 7 777777
77777777777777e
|
- Une machine cliente tournant sous linux Ubuntu
11.10 ;
- Une machine cliente tournant sous Windows XP SP3
;
- Un routeur linksys-Cisco qui relie le CSTEY
à un client. Architecture logique de déploiement
|
Tableau 4: architecture logique de
test
EQUIPEMENT
|
ADRESSE
|
MASQUE
|
PASSERELLE 7
|
ROUTEUR
|
192.168.56.110
|
255.255.255.0
|
192.168.56.105
|
SERVEUR NAGIOS
|
192.168.56.105
|
255.255.255.0
|
192.168.56.105
|
CLIENT LINUX
|
192.168.56.120
|
255.255.255.0
|
192.168.56.105
|
CLIENT WINDOWS
|
192.168.56.130
|
255.255.255.0
|
192.168.56.105
|
Architecture physique de déploiement
Figure 6: architecture physique de
deploiement
Le serveur Nagios sera configuré afin de superviser les
différents hôtes du réseau de notre architecture de
test.
Nous allons immédiatement passer à la
réalisation de notre projet. Pour cela, nous commençons par
mettre en place un domaine.
38
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
1. Mise en place du domaine »nagios.cm»
Installation du serveur de nom bind9
|
Elle se fait à partir des dépôts:
# aptitude install bind9
Configuration du serveur de nom bind9
> Déclaration des zones
On édite le fichier named.conf.local #
vi /etc/bind/named.conf.local
On y ajoute la zone directe et la zone inversée
ci-dessous (l'adresse IP du serveur Nagios étant 192.168.56.105):
zone "
nagios.cm" IN {
type master;
file "
db.nagios.cm";
allow-update { none; } ; };
zone "56.168.192.in-addr.arpa" IN {
type master;
file "
rev.nagios.cm"; allow-update { none;
} ; };
|
|
> Construction des zones
> Zone directe
# cd /var/cache/bind # vi
db.nagios.cm
39
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
minatd.cm. IN MX 10
mail.nagios.cm.
mail CNAME ns1
pop CNAME ns1
imap CNAME ns1
smtp CNAME ns1
www CNAME ns1
# vi
rev.nagios.cm
$TTL 86400 ; 1 day
@ IN SOA
cstey.nagios.cm.
root.nagios. cm. (
20110815 ; serial
604800 ; refresh 1 week 86400 ; retry 1 day
2419200 ; expire 4 weeks 604800 ; minimum 1 week
)
@ IN NS
cstey.nagios.cm.
3 PTR
cstey.nagios.cm.
On Change l'appartenance au groupe pour les fichiers de zone et
les droits del'utilisateur bind sur ces fichiers :
# chown -R bind:bind /var/cache/bind/* # cd /var/cache/bind
# chmod 664 *
# ls -l
La dernière commande doit afficher:
- rw-rw-r-- 1 bind bind 406 2010-11-22 19:38
db.nagios. cm
- rw-rw-r-- 1 bind bind 386 2010-11-22 19:42
rev.nagios. cm
VV77\iWV777V7747c77\77V7WA17fV7V77\iW7W77
7V77V77W
Pour ce faire nous allons utiliser l'utilitaire
"named-checkconf"; qui vérifie par défaut la configuration de
"/etc/bind/named.conf". Si la configuration est correcte, la commande ne
retourne rien, en cas d'erreurs, la sortie est suffisamment explicite pour
retrouver oCI l'erreur a été commise.
#cd /var/cache/bind
|
|
40
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'777777777t
R777777,7777777777777. 7 77'77 7 7 7 77 7 7 7
777777777777777777777
|
|
|
# named-checkconf
La deuxième vérification consiste A contrôler
la conformité de nos fichiers de zones A l'aide de l'utilitaire
"named-checkzone"
# named-checkzone -d
nagios.cm
db. nagios.cm
# named-checkzone -d 56.168.192.in-addr.arpa
rev. nagios.cm
Ce qui renvoi:
loading "56.168.192.in-addr.arpa" from "
rev. nagios.cm" class "IN" zone
56.168.192.in-addr.arpa/IN: loaded serial 20110815
|
OK
Avant d'aborder la partie concernant la configuration des
objets sur Nagios, côté client (agent) et côté
serveur, Il faut organiser les notifications par e-mail et par sms. Nous allons
donc mettre en place dans notre environnement de test un serveur de messagerie
avec Postfix, Dovecot et le webmail Squirrelmail. Puis on va revenir sur les
notifications par email.
2. Mise en place d'un serveur de messagerie
Postfix est le serveur SMTP de messagerie électronique
libre le plus répandu. Il se charge de la livraison des e-mails et a
été conçu de façon modulaire autour de
différents programmes dévolus chacun A une tâche
précise. Cela le rend résistant en termes de
sécurité, tout en étant extensible. Plusieurs commandes
servent A l'administrer, en voici quelques-unes :
· Postfix : pour démarrer,
arrester et redémarrer Postfix (root seulement)
· postconf : affiche ou permet
d'éditer les paramètres du fichier
main.cf
· postalias : maintient les bases de
données alias de Postfix
· postmap : maintient les tables de
correspondances de Postfix
· postsuper : maintient la file
d'attente
|
|
41
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
|
Installation et configuration de Postfix
|
|
Commençons par ajouter les paquets postfix, sasl pour
l'authentification et procmail : # apt-get install postfix libsasl2 sasl2-bin
postfix-tls libsasl2-modules db4.8-util procmail
Nous allons maintenant configurer Postfix
# cp /usr/lib/postfix/
main.cf /etc/postfix/
main.cf # vi /etc/postfix/
main.cf
Décommenter la ligne 59: 7 7777777 =
postfix
Décommenter la ligne 76 et spécifier le nom FQDN
du serveur 7 77777777 7 =
cstey.nagios.cm
Décommenter la ligne 83 et spécifier le nom de
domaine 7 7777 777 =
nagios.cm
Décommenter la ligne 104: 7 77777777=
$mydomain
Décommenter la ligne 118:
77777777777777 = all
Décommenter la ligne 166:
7 77777777777 = $myhostname,
localhost.$mydomain, localhost, $mydomain
Décommenter la ligne 209:
777777777777777 777 = unix:passwd.byname
$aliasmaps
A la ligne 268 on ajoute l'adresse du réseau dans
lequel se trouve notre serveur
7 7777777U7 = 127.0.0.0/8, 192.168.56.105/24
Décommenter la ligne 388: 77777 777 =
hash:/etc/aliases
Décommenter la ligne 399: 77777777U777 =
hash:/etc/aliases
|
|
42
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'77777 7777t
R777777,7777777777777. 7 77'77 7 7 7 77 7 7 7 777777
77777777777777e
|
|
|
|
Décommenter la ligne 421 pour indiquer le
répertoire des boîte de messagerie ( Maildir ):
homemailbox = Maildir/
mailboxcommand = /usr/sbin/dovecot
Décommenter la ligne 526:
headerchecks =
regexp:/etc/postfix/header_checks
Ajouter la ligne
bodychecks = regexp:/etc/postfix/body_checks
Commenter la ligne 552:
smtpd_banner = $myhostname ESMTP $mail_name (@@DISTRO@@) et
ajouter en dessou smtpdbanner = $myhostname ESMTP
A la ligne 626, ajouter : sendmailpath =
/usr/sbin/postfix
A la ligne 631, ajouter : newaliasespath =
/usr/bin/newaliases
A la ligne 636, ajouter : mailqpath =
/usr/bin/mailq
A la ligne 642, ajouter : setgidgroup =
postdrop
Commenter les lignes 646, 650, 655, 659 contenant respectivement
:
html_directory =, manpage_directory =, sample_directory =,
readme_directory =.
Ajouter en dessous la limite d'un email :10M
messagesizelimit = 10485760
La limite des boîtes email: 1G
mailboxsizelimit = 1073741824
Pour l'authentification au serveur smtp (SMTP-Auth) ajouter les
lignes ci-dessous : smtpdsasltype = dovecot
smtpdsaslpath = private/auth-client
smtpdsaslauthenable = yes
smtpdsaslsecurityoptions = noanonymous
smtpdsasllocaldomain = $myhostname
smtpdclientrestrictions =
permit_mynetworks,reject_unknown_client,permit
|
|
43
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
smtpdrecipientrestrictions = permit_mynetworks,
permit_auth_destination,
permit_sasl_authenticated, reject
Editer le fichier header_checks
# vi /etc/postfix/header_checks
Et ajouter au début les règles ci-dessous
permettent de rejeter un email vide
/AFrom:."<#."@.">/ REJECT
/AReturn-Path:."<#."@.">/ REJECT # hide Received line
/AReceived:/ IGNORE
Editer le fichier body_checks # vi /etc/postfix/body_checks
Et ajouter la règle ci-dessous qui permet de rejeter un
email dont le corps contient «
example.com»:
/^(|[^>].*)example.com/ REJECT
Exécuter la commande newaliases pour
regénérer la base des alias de comptes
# newaliases
# /etc/init.d/postfix start
Installation et configuration de doveco
Dovecot est un serveur POP3/IMAP. Nous allons l'installer et le
configurer # aptitude -y install dovecot-common dovecot-pop3d dovecot-imapd
# vi /etc/dovecot/dovecot.conf
Renseigner la ligne 25: protocols = imap imaps
pop3 pop3s
Décommenter et modifier la ligne 53 comme suit:
disableplaintextauth = no
Décommenter et modifier la ligne 95 comme suit:
ssl = no
Décommenter la ligne 230 et ajouter:
|
|
44
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
77777777777 = maildir:~/Maildir
Activer les messages log pour le débogage de dovecot.
Ligne 850 : 77777777777 = yes
Ligne 854 : 777777777 = yes
Ligne 858 : auth_debug_passwords = yes
A la ligne 889, ajouter:
7 77777777 7 = plain login
modifier la ligne 1117 comme ci-dessous:
socket listen { #Décommeter
# master {
# Master socket provides access to userdb information. It's
typically
# used to give Dovecot's local delivery agent access to userdb
so it
# can find mailbox locations.
#path = /var/run/dovecot/auth-master
#mode = 0600
# Default user/group is the one who started dovecot-auth (root)
#user =
#group =
}
client { # Décommenter
# The client socket is generally safe to export to everyone.
Typical use
# is to export it to your SMTP server so it can do SMTP AUTH
lookups # using it.
path = /var/spool/postfix/private/auth-client
#Décommenter et modifier:
mode = 0660 #Décommenter
user = postfix #Ajouter
group = postfix #Ajouter
Décommenter les deux accolades de fin
}ligne 1133 }ligne 1134
|
|
Démarrer dovecot :
# /etc/init.d/dovecot start # update-rc.d dovecot on
On peut Tester le serveur pop3/imap dovecot par les commandes
:
# netstat -a | grep :pop
|
|
45
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'7777777777t
R7717777117777777777. 7 77'77 7 7 7 77 7 7 7 777777
77777777777777e
|
|
|
|
Resultat : tcp 0 0 *:pop3 *:* LISTEN
# netstat -a | grep :imap
Resultat : tcp 0 0 *:imap2 *:* LISTEN
|
7777777777777777777777777777777777777777777
|
|
Un webmail est un logiciel qui vous permet de visualiser
email depuis n'importe quel ordinateur, n'importe oil dans le monde, à
travers votre navigateur Web. Squirrelmail est un webmail simple, rapide et
populaire.
> 77777777777
77777774777J77777 77W777/ 077777777
# apt-get install squirrelmail
> 3/4777777777777
Squirrelmail a un menu de configuration très simple. Pour
l'exécuter, tapez:
# squirrelmail-configure
Il faut modifier les options suivantes:
· Dans le menu 2 (paramètres serveur de
messagerie), renseigner vos paramètres de messagerie :
A. Update IMAP settings:
nagios.cm: 143 (other)
B. Update SMTP settings::
nagios.cm: 25
· Dans le Menu 4 (paramètres
généraux), on active l'option 11 (Autoriser le tri
côté serveur).
Allow server-side sorting : true
Squirrelmail est livré avec un fichier de
configuration apache dans /etc/squirrelmail/ apache.conf . On va copier ce
fichier dans /etc/apache2/sites-available/squirrelmail avec la commande:
# cp / etc / squirrelmail / apache.conf /
etc/apache2/sites-available/squirrelmail
|
|
46
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'777777777t
R777777,7777777777777. 7 77'77 7 7 7 77 7 7 7
777777777777777777777
|
|
|
|
Puis des liens vers les répertoires sites-enabled et www
avec les commandes:
# ln-s / etc/apache2/sites-available/squirrelmail /
etc/apache2/sites-enabled/squirrelmail # ln -s /usr/share/squirrelmail
/var/www/squirrelmail
|
|
Attribuer les fichiers du répertoire
/usr/share/squirreemail a l'utilisateur d'Apache
# chgrp -R www-data /usr/share/squirrelmail/
Enfin, relancer le serveur web Apache
http://localhost/squirrelmail/
Nous avons donc la fenêtre ci-dessous.
Figure 7: fenêtre d'authentification de
Squirre mail
|
3. Implémentation de Nagios Installation des
prérequis
|
|
Certaine dépendances sont nécessaires au bon
fonctionnement de Nagios. Nous allons donc commencer par installer ces
dépendances.
#sudo apt-get install apache2 wget
#sudo apt-get install bind9-host dnsutils libbind9-60 libdns66
libisc60 libisccc60 libisccfg60 liblwres60 libradius1 qstat radiusclient1 snmp
snmpd rrdtool mailutils librrds-perl libapache2-modphp5 php5 php-pear php5-gd
php5-ldap php5-snmp
#sudo apt-get install libgd2-xpm libgd2-xpm-dev libgd-tools
libpng12-dev libjpeg62 libjpeg62-dev
#sudo apt-get install mysql-server php5-mysql
libmysqlclient16
|
Installation de Nagios proprement dit
|
|
47
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
Nous allons commencer par configurer un utilisateur et des
groupes Nagios :
#sudo useradd --m nagios
#sudo groupadd nagcmd
#sudo usermod --G nagios nagcmd nagios #sudo usermod --G nagios
nagcmd www-data
Téléchargeons le paquet principal
nagios-3.2.3 ainsi que les plugins et pour cela on utilise les
commandes ci-dessous
# sudo -s
# cd /usr/src
#wget
http://surfnet.dl.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
# wget
http://kent.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
#tar xzf nagios-3.2.3.tar.gz
# cd nagios-3.2.3
Nous allons lancer la compilation grâce aux commandes
suivantes:
#. /configure --with-command-group=nagios
# make all
# make install
# make install-config
# make install-commandmode # make install-webconf
On installe ensuite le script de démarrage (pour que
Nagios se lance automatiquement avec notre serveur de supervision):
# make install-init
# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Ensuite on sécurise l'accès à l'interface
de monitoring en créant un utilisateur qui aura le droit
d'accéder à l'interface d'administration.
# sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users
nagiosadmin
Puis on redémarre notre serveur web
# /etc/init.d/apache2 reload
|
|
48
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
De base, Nagios est livré sans aucun plugin. Il faut
donc installer les plugins standards permettant de surveiller son
réseau.
# cd /usr/src
# tar xzf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
#./configure --with-nagios-user=nagios
--with-nagios-group=nagios # make
# make install
7777777777777777777777
Nagios est distribué avec une configuration initiale
opérationnelle (elle permet notamment de surveiller son serveur de
supervision).Nous allons donc tester les fichiers de configuration grâce
à la commande suivante:
# /usr/local/nagios/bin/nagios -v
/usr/local/nagios/etc/nagios.cfg Total Warnings: 0
Total Errors: 0
Enfin on lance le serveur Nagios avec la commande : #
/etc/init.d/nagios start
Il ne reste plus qu'à lancer un navigateur web et
à saisir l'URL suivante:
77777777777777777777
Après une bannière d'authentification (login:
nagiosadmin/ password:
<notremotdepasse>), on a l'interface ci-dessous :
Figure 8: Ecran principale de
Nagios
49
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'7777777777t
R7717777117777777777. 7 77'77 7 7 7 77 7 7 7
777777777777777777777
En cliquant sur le lien "Host", nous pouvons voir la
supervision de notre serveur ; puis le détail des services
supervisés en cliquant sur "localhost":
Figure 9: Supervision du serveur et de ses
services
Installation achevée, la prochaine étape est la
configuration des différents hôtes de notre architecture de test
pour qu'ils puissent etre vus et superviser par le serveur Nagios.
|
4. Ndoutils
VOMMEDOEVECcNICOMVON
|
|
Ndoutils est un addon Nagios qui permet d'écrire tous
les événements enregistrés par Nagios dans une base MySQL.
Par défaut, Nagios enregistre tous les événements dans un
fichier de log. Il fonctionne en deux phases :
XSVOS : module Nagios qui permet de
récupérer les événements d'une instance Nagios et
de les inscrire dans une socket (Unix ou TCP) ou dans un fichier plat.
XSXES I : service qui permet de lire les
informations que le module ndomod a écrit dans la socket ou le fichier,
et de les enregistrer dans une base de données MySQL.
L'image suivante récapitule très bien son
fonctionnement :
IIONEMEX
#cd /usr/local/src
#wget
http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils1.4b9/ndoutils-1.4b9.
#tar.gz tar xzf ndoutils-1.4b9.tar.gz
#cd ndoutils-1.4b9
|
|
50
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'7777777777t
R7777777177777777777. 7 77'77 7 7 7 77 7 7 7
777777777777777777777
|
|
|
|
#./configure --prefix=/usr/local/nagios/ --enable-mysql
--disable-pgsql --withndo2db-user=nagios ---- with-ndo2db-group=nagios make
make install-init
#cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o cp
#src/ndo2db-3x /usr/local/nagios/bin/ndo2db
#chown nagios:nagios /usr/local/nagios/bin/ndo*
#chmod 774 /usr/local/nagios/bin/ndo*
L'option « --enable-mysql » est importante car nos
événements seront enregistrés dans une base de
données MySQL. Quant à l'option « --disable-pgsql »,
elle permet, comme son nom l'indique, de ne pas fournir de support pour les
bases de données PostgreSQL.
Après avoir compilé, il n'y a pas
d'installation à faire (sauf l'installation du script d'init).
Cependant, n'oubliez pas de copier les deux fichiers « ndomod » et
« ndo2db » dont nous avons parlé dans la présentation
de Ndoutils, et d'y appliquer les bons droits.
5. Configuration des hôtes Configuration de
l'hôte Windows
Superviser des attributs et services privés sur une
machine Windows requiert l'installation d'un agent sur celle-ci. Cet agent agit
comme un proxy entre les plugins Nagios qui font la supervision et le service
ou l'attribut sur la machine Windows. Sans installation d'agent sur la machine
Windows, Nagios serait incapable de superviser le moindre attribut ou service
privé de la machine Windows.
Pour ce faire, nous allons installer l'addon NSClient++ sur la
machine Windows et utiliser le plugin checknt pour communiquer
avec NSCLient++.
· Fonctionnement de checknt
Le plugin Checknt est un plugin récent qui permet de
superviser très facilement des PC dont le système d'exploitation
est Windows. Check_nt permet de récupérer sur un système
Windows les informations suivantes :
L'espace occupé sur le disque dur, le temps depuis le
démarrage de l'ordinateur, la version du plugin NsClient ++, occupation
du processeur, occupation de la mémoire, état d'un service.
|
|
51
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
Figure 10: Fonctionnement de NsClient (source :
manuel officiel de Nagios)
Lorsque Nagios veut connaître une information sur un
PC, il exécute le plugin check_nt. Celui-ci envoie une requête au
PC. Sur le PC, le programme NsClient++ reçoit la requête, va
chercher les informations dans les ressources du PC et renvoie le
résultat au serveur Nagios.
Pour aller chercher les informations sur un PC grâce
à check_nt, Nagios exécute une
commande ayant la syntaxe suivante:
|
check_nt -H host -v variable [-p port] [-w warning] [-c
|
|
|
|
critical][-l params]
|
|
|
|
· Installation et configuration de
NSClient++
NSClient++ est un outil qui permet de superviser des serveurs de
type
Windows. Ce n'est pas une application Windows normale.
Nsclient ne possède pas d'interface graphique, ni de sonde de la
même verve que Nagios : c'est à l'utilisateur de les fournir. Il
est basé sur des modules de forme DLL, dont parmi eux NRPE, que l'on
retrouve dans la supervision de serveur Unix/Linux.
· Installation
On télécharge la dernière version de
NSClient++ (NSClient++-0.3.8-win32.msi) Puis on double clic sur le setup
l'interface ci-dessous apparait :
|
|
52
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
METHODOLOGIE
2012
Figure 11: installation de
NSClient++
On clique sur 777t et on suit l'installation en
renseignant les champs demandés.
A ce niveau, on choisit l'emplacement où seront
stockés les fichiers de configuration. Généralement, on
utilise
C:\Program Files\NSClient++ ensuite on clique
sur 7777 7
Figure 12: Configuration de
NSClient
A ce stade, il est question de choisir une ancienne
configuration afin de conserver le paramétrage existant. Mais comme nous
sommes à notre première installation, on clique directement sur
7777-en conservant les paramètres par
défaut
|
|
53
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'7777777777t
R7717777117777777777. 7 77'77 7 7 7 77 7 7 7
777777777777777777777
|
|
|
|
Tableau 5: Configuration de
NSClient
L'étape précédente consiste à
indiquer l'adresse IP du serveur NAGIOS la nôtre est
192.168.56.130 ainsi que le mot de passe «
********** » qui sera utilisé pour sécuriser le
transfert de donnée entre l'agent NSClient++ et le moteur NAGIOS, puis
on clique sur l'onglet install
Fin de l'installation et lancement du service.
Figure 13: vérification de
NSClient
|
|
54
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
L'installation étant terminée, on vérifie
que NSClient++ se lance automatiquement au démarrage et pour cela, on
utilise la commande /exécuter/services.msc.
NSClient++ se lance bien au démarrage, on peut maintenant
passer à la configuration de ce dernier.
· Configuration
Configurer NSClient++ consiste à éditer le fichier
NSC.ini. On y accède en suivant le chemin
C:\Program Files\ NSClient++\NSC.ini
Ce fichier est composé de plusieurs parties que sont
[modules ] , [Settings ], [Log ], [ NSClient ], [NRPE ], [ Check
System], [ External Script ], [Script Wrapping ], [External Scripts ], [
External Alias ], [Wrapped Scripts ], [NSCA Agent ], [NSCA Commands ], [NRPE
Client Handlers ].
Mais pour superviser nos machines Windows, on n'utilisera que
les parties concernant les [modules] et les
[Settings] qu'on modifiera comme suit :
On décommente les lignes ci-dessous (initialement
commenté) puis on modifie en fonction de notre serveur les
paramètres du champ [Settings]
[Modules]
NSClientListener.dll FileLogger.dll CheckSystem.dll
CheckDisk.dll
CheckEventLog.dll CheckHelpers.dll FileLogger.dll
CheckSystem.dll CheckDisk.dll
NSClientListener.dll NRPEListener.dll SysTray.dll
CheckEventLog.dll CheckHelpers.dll CheckExternalScripts.dll
NSCAAgent.dll
|
|
55
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
LUAScript.dll
NRPEClient.dll
CheckTaskSched.dll
[Settings]
use_file=1
allowed_hosts=192.168.56.105
Maintenant que les paramètres sont établis et le
lancement du programme automatique au démarrage, on le
redémarre.
· Configuration de NAGIOS
Une fois que l'agent a été installé sur
la machine Windows, il faut configurer le serveur Nagios. Pour qu'il
intègre la supervision de cette dernière dans son système.
On édite donc le fichier de configuration principale.
#nano /usr/local/nagios/etc/nagios.cfg
Puis on décommente la ligne suivante :
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
En décommentant cette ligne, nous avons dit à
Nagios de regarder le fichier "windows.cfg" pour y trouver les
définitions des htotes Windows. Cette méthode est
intéressante car nous pouvons définir toutes nos machines Windows
dans le même fichier.
Puis on édite le fichier de configuration qui contiendra
les Hosts et sondes de notre serveur Windows
#nano /usr/local/nagios/etc/objects/windows.cfg
Pour bien garder la structure du fichier on rajoute en dessous
de « HOST DEFINITIONS » notre client Windows
define host{
use windows-server
host_name ingridx #nom de la machine à superviser
|
|
56
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
alias My Windows Server
address 192.168.56.130 # Adresse ip client
}
Ensuite « HOST GROUP » est déjà
défini, on passe directement à « SERVICE DEFINITIONS »
où l'on va rajouter à la fin du fichier les lignes suivantes :
define service{
use generic-service
host_name ingridx
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}
define service{
use generic-service
host_name ingridx
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}
define service{
use generic-service
host_name ingridx
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
}
define service{
use generic-service
host_name ingridx
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
define service{
use generic-service
host_name pisixcorp
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l
Explorer.exe
}
Ces lignes correspondent au service que l'on souhaite superviser
sur le client Windows.
|
|
57
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'7777777777t
R7717777117777777777. 7 77'77 7 7 7 77 7 7 7
777777777777777777777
|
|
|
|
Pour terminer la configuration, on édite le fichier
commande afin de rajouter le mot de passe que nous avons établi dans la
commande check_nt qui est appelée par chacun de nos services.
#nano /usr/local/nagios/etc/objects/command.cfg
# 'check_nt' command definition
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v
$ARG1$ $ARG2$ -s essentiel2528
}
On vérifie notre fichier de configuration
#/usr/local/nagios/bin/nagios -v
/usr/local/nagios/etc/nagios.cfg
On redémarre le service
#/etc/init.d/nagios restart
On relance l'interface de Nagios
http://localhost/nagios
et on vérifie que notre machine et nos services se sont bien
rajoutés.
|
Configuration de l'hôte Linux
|
|
Nagios ne peut pas lancer seul une commande de
vérification sur les serveurs distants. Nous allons utiliser un agent de
supervision NRPE. NRPE (Nagios Remote Process Executor) est
l'agent déployé classiquement sur les serveurs de type
Linux/Unix. NRPE va permettre à Nagios d'exécuter à
distance les plugins qui seront installés sur le client à
monitorer, ce sera l'intermédiaire.
Du côté serveur Nagios exécutera la
commande checknrpe, une requête sera envoyée
à l'agent NRPE. Elle devra correspondre à une entrée dans
la configuration de l'agent. Cette entrée contient un script qui lancera
le plugin avec les arguments que nous aurons défini côté
client. Une fois lancé, le client transmet les informations au serveur
Nagios.
· Fonctionnement de checknrpe
|
|
58
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
Le plugin Check_nrpe est un plugin qui permet de superviser
des PC dont le système d'exploitation est Windows ou Linux. Check_nrpe
utilise une connexion SSL (Secure Socket Layout) pour aller chercher les
informations sur les postes. Ceci permet de crypter les trames
d'échanges.
Figure 14: fonctionnement du NRPE (source manuel
officiel de Nagios)
Lorsque Nagios veut connaître une information sur un PC,
il exécute le plugin check_nrpe.
Celui-ci envoie nt++ (ou nrpe si
linux) reçoit la requête, va chercher les
informations dans les ressources du PC et renvoie le résultat au serveur
Nagios.
Pour aller chercher les informations sur un PC grâce
à check_nrpe, Nagios exécute une commande ayant la syntaxe
suivante :
check_nrpe -H <adresse de l'hote à superviser> -c
<nom de la commande à exécuter sur le serveur>
Puis sur les postes à superviser, dans le fichier de
configuration nrpe.conf. On doit définir la commande à
exécuter pour chaque nom de commande.
7777777'[777777777777777777777777777777777777777777777777777777777777777777
Ces deux commandes vérifient la charge du processeur.
On remarque alors que la mise en place de nrpe dans une grande
entreprise est très complexe car il faut configurer toutes les commandes
sur chaque hôte à superviser.
|
|
59
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'777777777t
R7717777117777777777. 7 77'77 7 7 7 77 7 7 7
777777777777777777777
|
|
|
|
(Contrairement à check_nt qui ne nécessite pas de
configuration). En revanche, nrpe offre une meilleure sécurité
puisque les échanges client -- serveur sont sécurisés
(grâce à SSL).
· Installation de NRPE
On télécharge la dernière version de la
source sur le site de Nagios puis on exécute les commandes suivantes
:
·
#tar xzf nrpe-2.12.tar.gz #cd nrpe-2.12
#./configure -disable-ssl #pour désactiver le support ssl
#make
#make all
#make install-plugin #make install-daemon #make
install-daemon-config
Configuration de NRPE
On édite le fichier de configuration :
|
#nano /usr/local/nagios/etc/nrpe.cfg
|
|
On modifie la ligne suivante sur le client.
server_address=192.168.56.120 allowed_hosts=192.168.56.105
On ajoute le service NRPE à la liste des ports :
nano /etc/services
nrpe 5666/tcp
Lancement du service.
#/etc/init.d/nrpe start
Vérifications de l'écoute de nrpe
|
|
60
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
netstat -at | grep nrpe
tcp 0 0 *:nrpe *:* LISTEN
Test de NRPE sur le client
/usr/local/nagios/libexec/check_nrpe -H localhost
NRPE V2.12
· Côté Serveur Nagio
Du côté du serveur Nagios, il ne reste plus
qu'à installer le plugin NRPE
#tar xzf nrpe-2.12.tar.gz
#cd nrpe-2.12
#./configure --disable-ssl pour désactiver le support ssl
#make
#make install-plugin
Test de NRPE sur le serveur
#cd /usr/local/nagios/libexec
#./check_nrpe -H IPclient -n -p 5666 -c check_users
On peut maintenant créer nos commandes sur le serveur
Nagios. On commence par tester la sonde sur le serveur.
#cd /usr/local/nagios/libexec
La version de NRPE doit s'afficher en testant la sonde
#./check_nrpe -H AdresseIPclient -n -p 5666
NRPE v2.12
On créée un fichier qui contiendra la
configuration des serveurs à superviser.
#nano /usr/local/nagios/etc/objects/hosts.cfg
Puis on y rajoute la configuration suivante :
|
|
61
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
|
### HOST DEFINITION ###
define host{
use linux-servers
host_name Christian
alias Linux Serveur
address 192.168.1.4
}
### SERVICE DEFINITIONS ### define service{
use generic-service
host_name Christian
service_description Utilisateur connecté
check_command check_nrpe!check_users }
define service{
use generic-service
host_name Christian
service_description Load
check_command check_nrpe!check_load
}
define service{
use generic-service
host_name Christian
service_description Utilisation Memoire
check_command check_nrpe!check_hda1 }
define service{
use generic-service
host_name Christian
service_description Zombie processus
check_command check_nrpe!check_zombie_procs
}
define service{
use generic-service
host_name Christian
service_description Processus Total
check_command check_nrpe!check_total_procs
}
On rajoute les paramètres de la commande qui sera
exécutée.
#nano /usr/local/nagios/etc/objects/commands.cfg
Puis on rajoute la commande
·
#NRPE
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -p 5666 -c
$ARG1$
}
Lancement et vérification de Nagio
Vérification de la configuration
#/usr/local/nagios/bin/nagios -v
/usr/local/nagios/etc/nagios.cfg
Si tout est OK on redémarre le service
#/etc/init.d/nagios restart
Les sondes ne devraient pas tarder à se mettre à
jour sur l'interface web de nagios.
|
Configuration du routeur avec Nagios et SNM
|
|
Pour le monitoring des équipements d'interconnexion tels
que les routeurs, il est nécessaire d'utiliser un plugin nommé
checksnmp
· Mise en place de checksnmp:
o Le plugin check_snmp est à installer sur la machine
NAGIOS. Dans notre cas, checksnmp a été installé
automatiquement (dans le dossier /etc/usr/local/nagios/libexec) lors de
l'installation de Nagios.
o Il faut configurer le routeur pour qu'il accepte les
échanges SNMP
· Fonctionnement de checksnmp :
Figure 15: fonctionnement de check_snmp (source :
manuel officiel de Nagios)
|
|
63
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
Ce protocole se sert essentiellement des MIBs (Management
Information Base), qui est une base de données sur le routeur qui stocke
toutes les informations de celui-ci (statistiques, débit, état
des interfaces...). Lorsque Nagios veut connaître une information sur le
routeur, il exécute le plugin check_snmp. Celui-ci envoie une
requête au routeur. Le routeur reçoit la requête, va
chercher les informations dans sa MIB et renvoie le résultat au serveur
Nagios.
Pour aller chercher les informations sur le routeur grâce
à check_snmp, Nagios exécute une commande ayant la syntaxe
suivante :
check_snmp -H <adresse de l'hote à superviser> -o
<adresse de l'information
à récupérer dans la MIB> -C
<communauté SNMP>
· Configuration
Pour pouvoir monitorer les routeurs et les Switch, il existe un
fichier de configuration pour les Switch
(/usr/local/nagios/etc/objects/switch.cfg)
Dans nagios.cfg, par défaut, la ligne
définissant le chemin où trouver les fichiers de configuration
des switches existe déjà mais elle est commentée, il
suffit donc de la décommenter.
#nano /usr/local/nagios/etc/nagios.cfg
# directive as shown below:
#cfg_dir=/usr/local/nagios/etc/serveurs_windows
#cfg_dir=/usr/local/nagios/etc/serveurs_linux
#cfg_dir=/usr/local/nagios/etc/servers #cfg_dir=/usr/local/nagios/etc/printers
cfg_dir=/usr/local/nagios/etc/switches
#cfg_dir=/usr/local/nagios/etc/routers
Maintenant, modifions notre fichier
/usr/local/nagios/etc/objects/switches.cfg en précisant l'adresse IP du
routeur.
#nano /usr/local/nagios/etc/objects/switches.cfg
64
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
###########################################################################
####
# SWITCH.CFG - SAMPLE CONFIG FILE FOR MONITORING A SWITCH
#
# Last Modified: 10-03-2007
#
# NOTES: This config file assumes that you are using the sample
configuration
# files that get installed with the Nagios quickstart guide.
#
#########################################################################
#
# HOST DEFINITIONS
#
###########################################################################
####
# Define the switch that we'll be monitoring
define host{
use generic-switch ; Inherit default values from a template
host_name LINKSYS-WRT160N ; The name we're giving to this
switch
alias ROUTEUR ; A longer name associated with the switch
address 192.168.56.110 ; IP address of the switch
hostgroups switches ; Host groups this switch is associated
with
}
###########################################################################
####
# Create a new hostgroup for switches
define hostgroup{
hostgroup_name switches ; The name of the hostgroup
alias Les Switches ; Long name of the group
}
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
#/etc/init.d/nagios stop; pkill nagios; /etc/init.d/nagios start
|
|
65
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'7777777777t
R7717777117777777777. 7 77'77 7 7 7 77 7 7 7
777777777777777777777
|
|
|
6. Implémentation de Centreon
PEAR est un framework PHP nécessaire pour l'installation
de Centreon.
#sudo pear channel-update
pear.php.net
#pear upgrade-all cd /usr/local/src
wget
http://download.centreon.com/centreon/centreon-2.2.2.tar.gz
tar xzf centreon-2.2.2.tar.gz cd centreon-2.2.2
./
install.sh --i
Ce script permettra d'installer Centreon et de vérifier
tous les pré-requis nécessaires à l'installation. Il
suffit simplement de suivre les indications en vous aidant des screenshots
cidessous (remplacez selon votre cas mais logiquement si vous avez bien suivi,
il ne devrait pas y avoir de problème) :
Nous allons suivre le script d'installation et renseigner les
champs nécessaires. Si tout se passe bien, nous obtenons la confirmation
suivante :
|
|
66
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'7777777777t
R7717777117777777777. 7 77'77 7 7 7 77 7 7 7
777777777777777777777
|
|
|
Pour continuer l'installation, nous devons nous rendre sur
l'interface web de Centreon. Mais avant cela, nous allons démarrer le
serveur apache.
#/etc/init.d/httpd start /etc/init.d/mysqld start #mysqladmin -u
root password 'mysqlpassword'
Rendons nous donc à l'adresse
http://localhost/centreon/ pour
poursuivre notre configuration.
On clic sur Starrt et on accepte les termes d'utilisation. On
valide ensuite les variables d'environnement de l'installation , puis les
modules PHP et les droits d'accès pour le repertoire de configuration de
Centreon.
Nous devons ensuite définir des accès à la
base MySQL. On teste la connexion à MySQL. Si tout es OK, on
continue.
|
|
67
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'7777777777t
R7717777117777777777. 7 77'77 7 7 7 77 7 7 7
777777777777777777777
|
|
|
cliquant sur Next et en renseignant les champs
nécessaires.
Ceci étant fait, on utilise l'url
http://localhost/centreon/ pour
se connecter à l'interface d'administration. On a donc l'interface
ci-dessous. On peut donc s'authentifier avec le login
`'admin'' et le Password choisie lors de la configuration.
|
|
68
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de Travaux Option Systèmes et
Réseaux, IAI-CAMEROUN. Par GHARINGAM NDANE Awawou Viviane
|
|
|
Figure 16: fenêtre d'authentification de
Centreon
7. Implémentation de Nagvis
Pour le bon fonctionnement de Nagvis, une importante
dépendance est nécessaire. On l'installe avec un apt-get install
graphviz.
Tout est centralisé dans le fichier etc/nagvis.ini.php
donc nous pouvons trouver un template dans etc/nagvis.ini.php-sample.
# sudo --s
# cd /usr/src
#wget
http://ww.nagvis.org/share/nagvis-103-nightly.tar.gz
# tar zxvf nagvis-1.3-nightly.tar.gz
# cd /usr/local/nagios/share/nagios/nagvis
# cp etc/nagvis.ini.php
dbuser= `'ndouser'' dbpassword=''ndopassword''
·
· · ·
|
|
69
|
Mémoire de fin d'études pour l'obtention
du diplôme d'Ingénieur de T777777 777777'7777777777t
R7717777117777777777. 7 77'77 7 7 7 77 7 7 7
777777777777777777777
|
|
|
# chown --R www-data /usr/local/nagios/share/nagvis/ #chmod 664
/usr/local/nagios/share/nagvis/etc/nagvis.ini.php
# chmod 775 /usr/local/nagios/share/nagvis/nagvis/images/maps
#chmod 664 /usr/local/nagios/share/nagvis/nagvis/images/maps/* #chmod 775
/usr/local/nagios/share/nagvis/etc/maps
#chmod 664 /usr/local/nagios/share/nagvis/etc/maps/* #chmod 775
/usr/local/nagios/share/nagvis/var #chmod 664
/usr/local/nagios/share/nagvis/var/*
On peut alors lancer l'interface de configuration :
http://localhost/nagios/nagvis/config.php.
Celle-ci permet de configurer des `'maps `' (graphes) à travers une
interface web.
|