WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Etude et mise en œuvre d'un serveur de supervision réseau

( Télécharger le fichier original )
par Awawou Viviane GHARINGAM NDANE
Institut africain d'informatique Cameroun - Ingénieur des travaux informatiques 2012
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

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

$TTL 86400 ; 1 day

@ IN SOA debian.nagios. cm. root.nagios.cm. (

2011081501; serial

604800 ; refresh 1 week

86400 ; retry 1 day

2419200 ; expire 4 weeks

604800 ; minimum 1 week

)

@ IN NS cstey.nagios.cm.

debian A 192.168.56.105

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

 

77777777777

# 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

 

Com

 

 
 

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.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"L'imagination est plus importante que le savoir"   Albert Einstein