Professional Documents
Culture Documents
DETUDE
LASTIC3
Elabor par
Othman Souli
Encadr par :
Mr Guemazi Mohamed
Socit daccueil :
ThinkTank
Ddicace
A mes chers parents qui mont tellement donn et qui je dois tout, en signe de
gratitude et de reconnaissance.
A ma femme et ma petite fille qui ont apport le bonheur et la paix a ma vie.
QuAllah les protge tous.
Othman Souli
Remerciements
Le travail prsent dans ce rapport de stage de fin dtude a t effectu pour le compte de la socit
de service et dingnierie Think Tank , sous la bienveillance du grant Mohamed Guermazi que je tiens
remercier pour mavoir accord lopportunit de raliser ce stage dans la socit en parallle avec mes taches
quotidiennes comme administrateur rseaux et de mavoir encadr.
Introduction gnrale
Actuellement toutes les entreprises sont quipes dun rseau local au minimum, et de rseaux de
longues distances pour les plus importantes dentre elles. Leurs parcs informatiques englobent une dizaine
voir une centaine dquipements, engendrs par des serveurs de bases de donnes et des serveurs de
traitements.
Vu que ces systmes informatiques sont au cur des activits des entreprises, leur maitrise devient
primordiale. Ils doivent fonctionner pleinement et en permanence pour garantir la fiabilit et lefficacit
exiges, et surtout travailler rduire les problmes de dfaillances, les pannes, les coupures et les diffrents
problmes techniques qui peuvent causer des pertes considrables.
De ce fait, les administrateurs rseau font appel des logiciels de surveillance et de supervision de
rseaux afin de vrifier l'tat du rseau en temps rel de l'ensemble du parc informatique sous leur
responsabilit. Et tre aussi informs automatiquement (par email, par SMS) en cas de problmes. Grce
un tel systme, les dlais d'interventions sont fortement rduits et les anomalies peuvent tre aussitt prises
en main avant mme quun utilisateur peut sen apercevoir.
Ainsi, la supervision des rseaux savre ncessaire et indispensable. Elle permet entre autre davoir
une vue globale du fonctionnement et des problmes pouvant survenir sur un rseau mais aussi davoir des
indicateurs sur la performance de son architecture.
Dans ce cadre, le prsent rapport se base sur trois axes principaux :
-
Prsenter les notions de base de la supervision informatique et de ses logiciels les plus utiliss
actuellement.
1. Prsentation de la socit
Think Tank est une socit de services et d'ingnierie informatique qui, partant de ses comptences
dans les processus et les technologies adapts aux systmes dinformations, a su dvelopper un savoir faire
spcifique dans plusieurs domaines tel les mthodologies Oriente Objet, du langage JAVA, et de la
plateforme J2EE.
Elle sappuie en outre sur son centre de comptences Architecture et Infrastructure qui runit un
rseau dexperts dans les domaines suivants : systmes et rseaux, scurit et bases de donnes.
Ses prestations stendent du conseil en architecture technique jusqu lexploitation globale du
systme dinformation conu, dans des centres de comptences scuriss.
1999
Historique :
2001
-Signature d'un contrat de Partenariat avec la socit Think Tank Business Solutions
AG.
2003
2004
2005
2007
2008
Participation des experts de Think Tank dans l'action de mise niveau du systme
d'information du dpartement de proprit industrielle de l'INNORPI lance par le
PMI
2009
2. Etude de lexistant
2.1
Description de lexistant
Ce prsent travail sest droul dans un environnement comportant un parc informatique compos
dune dizaine de machines et de serveurs locaux et distants, dont le nombre est capable de se dupliquer en
fonction du temps et des clients. La figure 1 prsente larchitecture de Think Tank :
Think Tank possde un trs grand nombre de serveurs locaux en Tunisie, ainsi quelle hberge une
dizaine de serveurs pour ses clients dans un centre dhbergement en Allemagne (Housing Center).
2.2
Critique de lexistant
Ayant un trs grand nombre de serveurs grer, ladministrateur est incapable de vrifier leurs
disponibilit (en ligne ou pas), de dterminer la qualit des services quils offrent, ni dtecter la dfaillance
des quipements (charge CPU, Etat mmoire, surcharge du disque.), ni les surcharges et pnurie
temporaire des ressources. Le seul moyen de dtecter ces anomalies ne peut se faire que par la rception des
diffrentes plaintes et rclamations des clients.
Se souciant de sa rputation et concern par la satisfaction et le confort de ses clients, la socit veut
tout prix viter la confrontation des clients mcontents do viter le risque de les perdre, et ce en
travaillant offrir une meilleure qualit de services ses clients en anticipant les pannes et en vitant les
arrts de longue dure gnant les services qui peuvent causer de lourdes consquences aussi bien financires
quorganisationnelles.
Le but de ce projet est donc de trouver une solution optimale pour la gestion des serveurs et le
monitoring de ses quipements en premier lieu, offrir la possibilit de devenir pro actif face aux
problmes rencontrs en un second lieu, et finalement et le plus important, de pouvoir dtecter et interprter
en un simple coup dil les causes et origines des problmes rencontrs afin de les fixer le plus rapidement
possible.
2.3
Solution propose
La gestion des serveurs distants et le monitoring de ses quipements tant le plus grand souci de
ladministrateur, jai jug ncessaire de mettre en vidence un outil pour contrler le fonctionnement du
rseau, dtudier les donnes collectes et de dfinir des seuils dalertes qui peuvent
servir pour le
3. Etude de choix
De nombreuses plateformes de supervision existent aujourdhui. Certaines se contentent de grer
temps rels ltat du rseau et prserve une vue globale sur le fonctionnement de son architecture, dautres
permettent galement de connatre ltat des diffrents services, et dautres qui offrent la possibilit de
ressortir de nombreuses statistiques du rseau permettant une analyse assez fine.
3.1
dans des produits permettant la supervision et une meilleure gestion des rseaux.
Deux familles apparaissent, celle proposant des solutions gnralistes pour la supervision des
rseaux, des serveurs, des applications, des sites web, comme les logiciels Patrol (BMC), dUnicenter
(Computer Associate), de la gamme openview (HP)...
Dautres offrent une supervision des domaines plus spcifiques citant comme logiciel panorama
(Altaworks) qui gre uniquement laspect scurit ou PathWAI (Candle) qui se penche principalement sur la
supervision des applications.
Ces solutions nont quun seul point commun : un prix lev.
3.2
3.3
Choix du logiciel
Les diffrentes solutions commerciales dj prsentes (HPOpenview, Patrol, BigBrother, etc..)
ncessitent un investissement important pour leur mise en place, et pour des raisons propres lentreprise,
toutes ces solutions sont carter de mon liste de choix.
Parmi les solutions les plus connues, recommandes et surtout Libres, on citera Nagios et Zabbix.
Voici un tableau comparatif des deux logiciels choisis.
Zabbix
Prsentation
Fonctionnalits
Architecture
Nagios
Avantages
-Multiplateforme.
-Utilise peu de ressources
-Plus lger grce son homognit
(Pas de plug-in ajouter).
-Mise jour facile.
-Configuration et utilisation aise.
-Interface vaste mais claire.
Inconvnients
Parmi ces solutions libres, les deux logiciels Zabbix et Nagios sont les plus rpandus et les plus
utiliss. Par rapport mon projet, se sont les deux solutions les plus adaptes permettant de satisfaire
pratiquement tous les besoins de la socit, par les diffrentes fonctionnalits quelles offrent. Et compte
tenu de ce critre Zabbix et Nagios restent galit et il me sera impossible de les dpartager.
Une des particularits captivantes de Nagios est sa modularit, on a ainsi estim que Nagios a t
plus adapt aux besoins de mon projet que Zabbix. En effet, grce ses plugins, Nagios possde une
architecture facilement adaptable lenvironnement. Ces derniers pouvant tre ajouts, modifis ou mme
personnaliss et permettent de spcifier les tches pour aboutir au rsultat voulu.
De plus Nagios est une solution stable, dispose dune grande communaut de dveloppeurs et est
utilis aussi bien dans les petites et moyennes infrastructures que dans les grands parcs informatiques et
utilis surtout par plusieurs entreprises de renomm, tels que Yahoo (100 000 serveurs), Yellow pipe Web
Hosting (7000 serveurs)
Bien que ce dernier soit rput par sa configuration fastidieuse, il peut tre coupl Centreon un
logiciel qui lui servira de couche applicative afin de faciliter la configuration et dtablir des interfaces IHM
plus ergonomiques et comprhensibles.
4. Conclusion
Ce chapitre a t conu pour familiariser lenvironnement du travail en prsentant lentreprise
daccueil et larchitecture rseau dont elle dispose.
Les problmes que rencontre la socit se sont imposs suite ltude de lexistant et sa critique, ce
qui ma permis de cerner la problmatique de mon projet. Jai par la suite propos des solutions et leur tude
a mon grant et finalement nous avons pos notre choix sur la solution que nous jugeons la plus convenable
la socit et la formation que nous estimons acqurir qui est le logiciel de supervision libre Nagios .
Le chapitre suivant attaquera une tude approfondie de la solution choisie.
Dans ce prsent chapitre, Je commene par dfinir la notion de la supervision et ses objectifs ensuite,
analyser de prs les fonctionnalits de la solution propose, son architecture, et les diffrents services quelle
offre et finir par numrer les diffrents fichiers de configurations sur quoi se base cette solution.
1. La supervision
1.1
Dfinition
La supervision de rseaux peut tre dfinie comme lutilisation de ressources rseaux adaptes dans
le but dobtenir des informations (en temps rel ou non) sur lutilisation ou la condition des rseaux et de
leurs lments afin dassurer un niveau de service garanti, une bonne qualit et une rpartition optimale et de
ceux-ci.
La mise en place dune supervision rseau, a donc pour principale vocation de collecter intervalle
rgulier les informations ncessaires sur ltat de linfrastructure et des entits qui y sont utiliss, de les
analyser et de les rapporter.
1.2
Objectifs
Lobjectif dune supervision de rseaux peut ainsi se rsumer en trois points :
Etre ractif en alertant ladministrateur (e-mail ou sms) en cas de dysfonctionnement dune
partie du systme dinformation.
Etre pro actif en anticipant les pannes possibles.
Cibler le problme ds son apparition afin dagir rapidement de la faon la plus pertinente
possible.
10
2. Nagios
2.1
Prsentation
Nagios est un logiciel libre distribu sous licence GPL qui permet de superviser un systme
dinformation complet. Utilis par de nombreuses socits, il fait lobjet de contribution et recherche trs
actives.
Etant le successeur de NetSaint dont la premire version date de 1999, ce logiciel est considr
comme une volution de ce dernier auquel a t ajoute, entre autre, la gestion du protocole SNMP. Il
apparat sous le nom de Nagios le 10 mai 2002 aux conditions de la GNU General Public License.
Cet outil repose sur une plate-forme de supervision, fonctionnant sous Linux et sous la plupart des
systmes Unix. Il centralise les informations rcoltes priodiquement par le fonctionnement modulaire
dont il est caractris, ce qui le rend beaucoup plus attractif que ses produits concurrents. En revanche sa
configuration peut se rvler complexe.
2.2
Fonctionnalits
Les fonctionnalits de Nagios sont trs nombreuses, parmi les plus communes nous pouvons citer les
suivantes :
La supervision des services rseaux (SMTP, http), des htes et des ressources systmes
(CPU, charge mmoire)
La dtermination distance et de manire automatique ltat des objets et les ressources
ncessaires au bon fonctionnement du systme grce ses plugins.
Reprsentation colorie des tats des services et htes dfinies.
Gnration de rapports.
Cartographie du rseau.
Gestion des alertes.
Surveillance des processus (sous Windows, Unix).
Superviser des services rseaux : (SMTP, POP3, HTTP, NNTP, ICMP, SNMP, LDAP, etc.)
La supervision distance peut utiliser SSH ou un tunnel SSL.
Les plugins sont crits dans les langages de programmation les plus adapts leur tche
(Bash, C++, Python, Perl, PHP, C#, etc.)
11
Toutes ces fonctionnalits sont assures grce la gestion et supervision du rseau et ses diffrentes
entits dune manire centralise. La figure 2 modlise cet aspect :
2.3
Architecture
Larchitecture de Nagios se base sur le paradigme serveur-agent. Dune manire spcifique, un
serveur faisant office de point central de collecte des informations tandis que les autres machines du rseau
excutent un agent charg de renvoyer les informations au serveur.
Larchitecture globale de Nagios peut tre dcompose en 3 parties coopratives entre elles :
Un noyau qui est le cur du serveur Nagios, lanc sous forme de dmon et responsable de la
collecte et lanalyse des informations, la raction, la prvention, la
rparation et
Une IHM : Cest une interface graphique accessible par le web conue pour rendre plus
exploitable les rsultats. Elle est base sur les CGI (Common Gateway Interface) fournis par
dfaut lors de linstallation de Nagios qui interprtent les rponses des plugins pour les
prsenter dans linterface.
Cette interface sert afficher de manire claire et concise une vue densemble du systme
dinformation et ltat des services surveills, de gnrer des rapports et de visualiser lhistorique. Dune
manire gnrale avoir la possibilit de dtecter en un simple coup dil, les services ou htes ayant besoin
dune intervention de leur administrateur.
Il est possible de coupler Nagios une base de donnes MySQL ou Postgres, lorsque le nombre
dobjets superviser devient consquent. La figure 3 modlise larchitecture de Nagios.
2.4
Plugins
Nagios fonctionne grce des plugins cris en Perl ou en C. Sans eux, il est totalement incapable de
La relation entre le noyau et les plugins est assur dune part par les fichiers de configuration
(dfinitions des commandes) et dautre part par le code retour dun plugin. Cette relation peut se rsumer par
le tableau 3:
Code retour
Etat
Signification
OK
Tout va bien
Warning
Critical
Le service a un problme
Unkown
Nagios est livr avec un package de greffons standards regroupant les plus utiliss. Pour une
utilisation basique et simple, ils devraient tre suffisants. En voil quelques exemples:
check_http : Vrifie la prsence d'un serveur web.
check_load : Vrifie la charge CPU locale.
check_ping : Envoie une requte Ping un hte.
check_pop : Vrifie la prsence d'un serveur POP3.
check_procs : Compte les processus locaux.
check_smtp : Vrifie la prsence d'un serveur SMTP.
check_snmp : Envoie une requte SNMP (passe en argument) un hte.
check_ssh : Vrifie la prsence d'un service SSH.
check_tcp : Vrifie l'ouverture d'un port TCP (pass en argument).
check_users : Compte le nombre d'utilisateurs sur la machine locale.
Il est possible de crer son propre plugin et linterfacer avec Nagios tout en respectant les
conventions des codes de retours prcdemment expliqus.
La vivacit de la communaut Open Source et celle de Nagios 2 en particulier permet de disposer
d'un grand nombre de plugins supplmentaires.
Comme on peut le constater sur la figure 4, les plugins peuvent fonctionner soit en effectuant des
tests en local, distance par le biais de divers moyen comme linstallation des agents NRPE ou NSClient ou
autres.
14
2.5
supervision. Nous allons prsent citer et dfinir ceux qui sont les plus importants :
Nagios.cfg est le fichier de configuration principal de Nagios. Il contient la liste des autres
fichiers de configuration et comprend l'ensemble des directives globales de fonctionnement.
Cgi.cfg contient un certain nombre de directives qui affectent le mode de fonctionnement des
CGI. Il peut tre intressant pour dfinir des prfrences concernant l'interface web de
Nagios.
Resource.cfg permet de dfinir des variables globales rutilisables dans les autres fichiers.
Etant inaccessible depuis les CGI qui gnrent l'interface, ce fichier peut tre utilis pour
stocker des informations sensibles de configuration.
Commands.cfg contient les dfinitions des commandes externes, telles que celles qui seront
utiles pour la remonte d'alerte.
Checkcommands.cfg contient les dfinitions des commandes de vrification prdfinies et
celles dfinies par l'utilisateur.
Hosts.cfg dfinit les diffrents htes du rseau superviser. A chaque hte est associ son
nom, son adresse IP, le test effectuer par dfaut pour caractriser l'tat de l'hte, etc.
Services.cfg associe chaque hte ou chaque groupe d'htes l'ensemble des services qui
doivent tre vrifis.
15
Hostsgroups.cfg dfinit des groupes d'htes pour regrouper des htes selon des
caractristiques communes. Un hte peut appartenir plusieurs groupes.
Contacts.cfg dclare les contacts prvenir en cas d'incident et dfinit les paramtres des
alertes (frquences des notifications, moyens pour contacter ces personnes, plages horaires
d'envoi des alertes...).
3. Conclusion
Le prsent chapitre a t introduit avec une brve prsentation de la notion de supervision et ses
enjeux. Ensuite jai dcrit laspect de ma solution, numr ses fonctionnalits et modlis son architecture.
Finalement une partie a t consacre pour la dfinition des diffrents fichiers de configuration gnrs par
la solution de supervision Nagios, prcde par lnumration des diffrents plugins de base responsable de
lexcution des tests ncessaires.
16
Dans ce chapitre je vais prsenter tout outils ou complments que jenvisage ajouter Nagios afin de
mettre en valeur les fonctionnalits quelle offre optimiser , enrichir et garantir la mise en place dune
solution complte, facile administrer et qui rpond aux besoins dj fixs.
1. NDOutils
1.1
Utilits
Il faut dabord savoir que lorsque les greffons effectuent des tests, ils retournent au
processus/ordonnanceur Nagios, deux types de donnes qui sont les tats des htes et leurs services, ainsi
que les donnes de performances qui par la suite seront enregistres dans des fichiers plats.
Pour obtenir une information Nagios est oblig de lire et traiter ces fichiers en entier. Aussi chaque
rafraichissement dune page web depuis linterface de Nagios implique une analyse complte de ces fichiers.
NDOutils vient alors optimiser lexploitation de ces donnes en les exportant vers une base de
donnes MySQL, ce qui a les avantages suivantes :
Stockage des donnes long terme.
Permettre un logiciel tiers comme Centreon daccder de manire optimise aux
donnes dtats et performances de Nagios et de partager ses donnes.
Optimisation de lexploitation des donnes et amlioration des performances ; il est plus
rapide de rechercher des informations dans une base de donnes structure, plutt que dans un
fichier de journalisation quil faut parcourir entirement chaque utilisation.
17
1.2
Prsentation
NDOutils est un greffon charg de transmettre les donnes remontes par Nagios (configuration des
serveurs superviss, les tats des htes, les donnes de performance) vers une base de donnes MySQL
plutt que de ne les garder que dans les fichiers plats.
De cette faon, les donnes seront plus souples grer. Grace la possibilit de stockage long
terme, les donnes sont facilement exploites et linformation devient aisment transformable de la manire
que lon souhaite.
NDOutils interagi avec Nagios indpendamment de Centreon.
1.3
Architecture
NDOutils se compose de deux modules :
Ndomod : lanc automatiquement avec Nagios et responsable de lexportation des donnes
extraits des fichiers plats pour les dposer dans un socket (Unix, tcp).
Ndo2db : dmon ncessitant un script dinitialisation et responsable de louverture de socket
(Unix ou TCP) et place les donnes trouves dans une base de donne MySQL.
La figure 5 dcrit larchitecture de NDOutils.
18
2. Centreon
2.1
Utilits
Sans aucun doute, Nagios est considr comme tant une solution trs puissante. Cependant, on peut
lui reprocher dtre trs complique configurer vu le nombre important de fichiers dont elle dispose.
La modification manuelle de ces fichiers de configuration, chaque ajout une hte, un service, une
commande.., augmentera le risque daffronter beaucoup plus derreur.
On a donc choisi de coupler Nagios Centreon pour remdier ce problme en vitant la
modification la main de ces fichiers textes. Centreon nayant pas seulement le grand avantage de grer
automatiquement les nombreux fichiers de configuration de Nagios mais aussi une interface
multiutilisateurs, intuitive et personnalisable avec intgration des droits daccs en plus dun compte rendu
graphique plus pratique et lgant que celui offert par Nagios.
2.2
Prsentation
Centreon est une couche applicative Web venant se greffer Nagios pour offrir une administration
construit ses propres graphiques grce aux RRDTools, des bases de donnes
2.3
Architecture
Centreon et Base de donnes
Centreon interagit principalement avec la base de donnes MySQL pour remonter les donnes
19
Lors de son installation Centreon cre automatiquement trois schmas dans la base de donnes
MySQL :
Centstatus: Cest la base dans laquelle NDOUtils stocke les donnes extraites des fichiers
plats de Nagios et sur laquelle Centreon pointe pour pouvoir remonter les mmes donnes.
Ces donnes sont visualises dans linterface monitoring de Centreon.
Centstorage: Traite et stocke les donnes de performances remonts de Nagios via NDOutils
vers la base de donnes MySQL, avant leurs intgration en base RRD. Responsable de la
cration des parties mtrologiques de Centreon qui sont le reporting et la gnration des
graphs.
Ces donnes sont visualises dans la partie Reporting et Views de Centreon.
Centreon: Collecte les informations de configuration, et stocke les fichiers objets de Nagios
(Host, Services, Priodes, etc...). Grce aux fonctions d'Import/Export, Centreon peut gnrer
de nouveaux fichiers de configuration pour Nagios.
Centreon et dmons
Pour un fonctionnement sain, Centreon a besoin que ses deux dmons soient lancs :
Centstorage : Centstorage est l'outil qui exploite les donnes remontes par Nagios pour
Centreon. C'est un programme crit en Perl, associ Centreon. A chaque modification du
fichier de donnes perfdata, centstorage met jour deux bases de donnes Centstorage et
RRD .
Centcore : Dans le cas o larchitecture adopte est distribue (serveur centrale pour la
supervision et dautres serveurs fils), Centcore
20
La figure 6 est un schma rcapitulatif dcrivant linteraction entre les diffrentes couches logicielles
de lassociation entre Nagios3/Centreon2.
21
Prsentation :
Cest un plugin permettant de rcuprer un nombre important dinformation surveiller sur une
machine Windows.
Le plugin se livre avec un ensemble de commandes check qui nous permet de dgager dimportantes
informations comme :
CLIENTVERSION : retourne la version de lagent NSClient.
CPULOAD : Retourne la charge moyenne du systme.
UPTIME : Retourne la dure coule depuis le dernier redmarrage de la machine.
USEDDISKSPACE : Retourne la taille et le pourcentage du disque utilis.
MEMUSE : Retourne la taille de la mmoire utilise, et la taille restante.
SERVICESTATE : Retourne le statut (dmarr, arrt) dun ou plusieurs services Windows.
PROCSTATES : Vrifie si un ou plusieurs processus sont dmarrs.
COUNTER : Interroge nimporte quel compteur de performance.
3.2
Architecture
NSClient se base sur une architecture client/serveur (Figure 7). La partie cliente nomme check_nt,
doit tre disponible sur le serveur Nagios et on doit vrifier son existence parmi les plugins dlivrs avec
Nagios-plugins sinon linstaller. La partie serveur NSClient++ est installer sur chacune des machines
Windows surveiller.
22
Prsentation
NRPE (Nagios Remote Plugin Executor) est un agent de supervision qui vous permet de rcuprer les
informations distance lors de la supervision dun serveur Linux. Il a le grand avantage dexcuter les
commandes dans la machine superviser ce qui permet ainsi de rpartir les charges.
Il est livr avec un ensemble de commandes check dfinis par dfaut dans son fichier de
configuration et ncessite linstallation des plugins Nagios aussi.
4.2
Architecture
NRPE se base sur une architecture client/serveur (Figure 8). La partie cliente nomme check_nrpe,
doit tre disponible sur le serveur Nagios et on doit vrifier son existence parmi les plugins dlivrs avec
Nagios-plugins sinon linstaller. La partie serveur NRPE est installer sur chacune des machines Windows
surveiller.
Procdure de fonctionnement :
Le serveur Nagios demande l'excution dun plugin sur la machine distante.
Le daemon NRPE hberg sur la machine distante, reoit la requte d'excution du plugin.
Le plugin est excut sur la machine distante.
Le daemon NRPE de la machine distante envoie le rsultat du plugin au serveur Nagios.
Le serveur Nagios interprte les rsultats reus.
23
5. Conclusion
Le but de ce chapitre tait de prsenter les complments que jai choisis Nagios. Certains ont t
choisis pour leur ncessit comme les greffons NRPE et NSClient, et dautres participaient surtout
lamlioration de la manipulation et lutilisation de Nagios, et surtout facilit de sa configuration.
Le chapitre suivant entamera laspect technique de mon projet, de la mise en place jusquaux
exemples dutilisations.
24
1. Chronogramme
Le chronogramme suivant a t suivi tout au long de la ralisation de mon projet
Environnement matriel
Phase de test : jai au cours de cette phase install une machine virtuelle sur ma machine
personnelle pour tester la solution choisie et sadapter sa mise en place, mais aussi de
sassurer si elle rpond vraiment aux besoins fixs par la socit avant de passer la phase de
production, et ce en essayant de tester deux serveur serveurs distants Windows et Linux.
Phase de production : Une douzaine de serveurs Windows et Linux superviser.
Jai install un serveur Linux (hardware et system exploitation) pour y dployer
Nagios/Centreon qui a les caractristiques suivantes ;
Systme Suse Linux entreprise 11 (i589).
Microprocesseur Intel Pentium de vitesse 2.80GHz.
Connexion internet.
25
2.2
Environnement logiciel
La solution de supervision Nagios-3.2.3.
Les greffons de Nagios, Nagios-plugins-1.4.15
La couche applicative associe Nagios pour faciliter sa configuration et son administration
Centreon-2.1.10
Le plugin NDOutils-1.4b9 pour le stockage des donnes de Nagios dans la base de donnes
MySQL et le partage de ces donnes avec Centreon.
Le plugin NSClient pour la supervision des serveurs Windows.
Le plugin NRPE-2.1.12 pour la supervision des serveurs Linux.
Pr-requis Nagios/Centreon
En plus des plugins Nagios a besoin de satisfaire certaines dpendances.
Les pr-requis linstallation sont donc :
Dpendances LAMP : Apche2, PHP5, MySQL
Librairies Perl
Les librairies graphiques : GD, libgd libpng, libjpeg
Compilateur : gcc, gcc-gc++
3.2
Installation de Nagios/Centreon
Les tapes dinstallation et de configuration de Nagios3-2.3 et ses plugins Nagios-plugins-
3.3
Installation de NSClient
Pour la supervision des serveurs Windows, je vais installer le greffon NSClient sur la machine
distante et vrifier la prsence de la commande check_nt parmi les plugins install de Nagios. Les tapes
dinstallation seront dtailles dans lannexe B.
26
3.4
Installation de NRPE
Pour la supervision des serveurs Linux, je vais installer le greffon NRPE-2.1.12 sur la machine
distante et vrifier la prsence de la commande check_nt parmi les plugins install de Nagios. Les
dinstallation tapes seront dtailles dans lannexe C.
4.Interfaces de Nagios/Centreon
4.1
Centreon
Authentification
La premire tape faire avant daccder linterface de Centreon cest douvrir un navigateur web
27
Tactical Overview
La figure 11 est la premire vue aprs lauthentification, elle nous propose lessentiel des
informations importantes qui sont : ltat de fonctionnement du systme dinformation supervis, le nombre
dalertes actuelles, etc.
Sant globale
Cette vue
Statistique de Nagios
Dans cette vue, on retrouve les performances de notre supervision (temps de check, latence etc..) et
des graphiques traant lhistorique de performance de chacun de nos instances.
Graphique de performance
Monitoring
Cette vue va nous permettre daccder nos htes et nos services superviss.
Les htes
Les services
Event logs
Dans
cette
vue,
nous
aurons
accs
tout
lhistorique
des
journaux
dvnements
Cette vue permet de voir, de crer, de paramtrer des Templates de graphiques pour les exploiter
ensuite pour vos htes et services.
Reporting
Cette vue vous permet davoir des statistiques de fiabilit de chaque hte sur une priode de temps
donnes.
5. Exemple dUtilisations
5.1
Voici les tapes ncessaires pour lajout et la supervision dun serveur Windows depuis linterface de
Centreon :
Etape1 : Ajout des commandes dans linterface suivante de Centreon :
Dans linterface Configuration/Commands, On doit ajouter les commandes checks qui nous
permettront de relever les informations de supervision voulues depuis le serveur distant.
Commandes
Syntaxes
Significations
Check-Wind-CPU
check_nt -H $HOSTADDRESS$ -v
CPULOAD -s admin -p 12489 -l
2,90,95
Check-Wind-C
Check-Wind-D
Check-Wind-E
(-l)
(-l)
(-l)
Check-Wind-UPTIME
Check-Wind-MEMUSE
check_nt -H $HOSTADDRESS$ -v
UPTIME -s pdw -p 12489
34
35
Loption add nous ramne une interface o nous devrons dfinir notre nouvelle
Template.
Toutes les Services Templates cres dans la partie prcdentes doivent sassocier notre
Host Template nomme Windows-Servers-Template . Comme on le voit dans
linterface commands>Hosts>Templates>Relation, une liste des services Templates
apparat, on doit donc slectionner et ajouter les services quon voudra lier ce WindowsServers-Templates .
En fait lorsque nous modifions la configuration dans Centreon, nous ne faisons que modifier
ltat de la base Centreon. Les modifications ne sont pas encore prises en compte par les diffrents
collecteurs Nagios.
36
Pour effectuer cette mise jour, il faut se rendre au menu Configuration / Nagios puis cliquer sur les
boutons:
"Move export files": pour dplacer physiquement les fichiers de configuration dans
l'arborescence Nagios.
"Restart Nagios": Pour le redmarrage de Nagios afin que la configuration soit prise en
compte.
Puis cliquer sur "Export"
Si tout se passe bien, nous ne devrions pas avoir de messages d'erreurs comme suit:
Quelques minutes aprs l'exportation, lhte ajout apparaitra dans l'interface Monitoring de
Centreon, accompagn de ses services. On peut remarquer dans cette figure, la figure 26, lapparition du
nom de la nouvelle hte, encercl par la couleur rouge, ainsi que ses services relatifs comme le prouve la
figure 27.
37
Les services apparaissent automatiquement avec lajout dhte, ce qui st claire dans cette interface :
38
La mme hte et ses services apparaissent dans linterface de Nagios aprs lexportation de Centreon
vers Nagios :
39
5.2
machine Linux distante superviser, on doit avoir cet ensemble de commandes dfinies dans le fichier de
configuration nrpe.cfg de la machine superviser.
Ligne ajoute
Significations
Command[check_users]=/usr/local/nagios/libexec/check_users
Command[check_load]=/usr/local/nagios/libexec/check_load w
15,10,5 c 30,25,20
Permet de dterminer le
nombre dutilisateurs
connects.
Permet de dterminer la charge
CPU
Permet de dterminer lespace
Command[check_hda1]=/usr/local/nagios/libexec/check_disk w
20% -c 10% -p /dev/hda1
Command[check_/]=/usr/local/nagios/libexec/check_disk w 20%
-c 10% -p /
Command[check_zombie_procs]=/usr/local/nagios/libexec/check_
procs
Permet de dterminer le
/dev/hda1
-s Z
Command[check_zombie_procs]=/usr/local/nagios/libexec/check_
procs
Command[check_memory]=/usr/local/nagios/libexec/check_mem
ory.plw 10% -c 5%
Permet de dterminer le
nombre de processus.
Permet de dterminer la taille
restante de la mmoire.
40
la variable check_memory est un script perl ajouter parmi ceux dj existants dans
/usr/local/nagios/libexec. Voir [annexe D]
Ces commandes seront appels depuis le serveur nagios seulement par leur nom indiqu entre
[ ] et de la manire suivante :
Check_nrpe
<@machine distante> -c
<nom de la commande>
Voici les tapes ncessaires pour lajout et la supervision dun serveur Linux depuis linterface de
Centreon :
Etape1 : Ajout des commandes dans linterface suivante de Centreon :
Dans linterface Configuration>Commands, On doit ajouter les commandes checks qui nous
permettront de relever les informations de supervision voulues depuis le serveur distant.
41
Lappuie sur add nous ramne linterface suivante pour la dfinition des commandes:
42
Loption Add encercl par la couleur rouge, comme le montre la figure 32, nous renvoie
vers une interface ou nous devons dfinir notre Service Template et lassocier sa
commande relative.
Ainsi on dfinit les Templates propre chaque commande cre dans la partie 1.
Etape 3 : Associer les Services Templates un Host Template :
Dans linterface prsent par la figure 33, on cre le Template Linux_servers
43
5.3
lenvoi des mails pour indiquer la perte dun hte ou dun service. Cela permet davoir des informations
supplmentaires, et davoir un historique de lactivit durant la nuit lorsque lon ouvre sa boite mail le matin.
En premier lieu on aura besoin dinstaller les lments postfix et mailx et avoir accs un serveur
SMTP (propre la socit). Voir [Annexe C]
Nagios possde dj les commandes de notification host-notify-by-email et service-notify-byemail dans la partie configuration> commands>notifications qui seront paramtres des htes ou services
lors de leur cration, ainsi on gardera la mme configuration chaque nouvel ajout.
Il nous reste qu informer le systme des utilisateurs et groupes dutilisateurs notifier lors de
lapparition dun problme et de slectionner la dure de notification.
44
6. Conclusion
Dans ce chapitre jai penchs sur laspect pratique de mon projet, en dtaillant les tapes de la mise
en place et lutilisation de ma solution, et jai ainsi pu prouver lapport important de Centreon Nagios, qui
est principalement, la facilit de la configuration, mais aussi la livraison de comptes rendus et danalyses
plus rapidement et dune manire beaucoup plus prcise pour le seul but de gagner et optimiser la gestion de
son temps.
46
Conclusion gnrale
47
Rfrences netographiques
1.
2.
3.
http://www.nagios.org/support/
4.
5.
6.
48
Annexe A
Installation de Nagios-3.2.3
Installation des librairies et pr-requis ncessaires
Installation de puis le yast :
Apache2 :apache2, apache2-mod-php5, apache2-mod-perl
PHP5 : php5, php5-gd,php5-Ldap,php5-mysql
Libraries GD: gd, libpng, libjpeg
Compilateur: gcc, gcc-c++
Interprteur perl: perl,perl-config-Inifiles,perl-crypt-dos,perl-digest-hmac
Installation de Nagios
Pour viter des problmes de scurit, il est prfrable de lancer Nagios avec un compte utilisateur
normal.
Cration dun compte utilisateur et un groupe ddi au processus nagios.
Cration d'un groupe "nagcmd" permettant l'excution des commandes externes travers
l'interface web.
Rajout des utilisateurs Nagios et Apache l'intrieur du groupe "nagcmd".
# cd /usr/sbin
# useradd nagios
# passwd nagios
# groupadd nagios
# groupadd nagcmd
# usermod -G nagios,nagcmd nagios
# usermod -G nagcmd wwwrun
49
cd /usr/local/src
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
tar xzf nagios-3.2.3.tar.gz
cd nagios-3.2.3
./configure prefix=/usr/local/nagios with-command-group=nagcmd enable-event-broker
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
dapache2.
Cration dun compte nagiosadmin pour se connecter la page web nagios.
# htpasswd2 -c /usr/local/nagios/etc/htpasswd.users
nagiosadmin
# cd /user/local/src
#wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
# 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
50
# make install
On peut tester sil ya aucune erreur dans la configuration de nagios suite lexcution de la
commande suivante :
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Installation NDOUtils-1.4b9
Installation des librairies et pr-requis ncessaires
Installation de puis le yast :
Installation de NDOutils
# cd /usr/local/src
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz
# tar xzf ndoutils-1.4b9.tar.gz
# cd ndoutils-1.4b9
#
./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql
ndo2db-user=nagios --with-ndo2db-group=nagios --with-mysql=/usr/lib/mysql
# make
51
--with-
Installation des binaires et installation des fichiers de configuration des binaires Ndo2db et ndomod.
#
#
#
#
#
#
#
#
cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
cp src/ndo2db-3x
/usr/local/nagios/bin/ndo2db
cp src/log2ndo
src/file2sock /usr/local/nagios/bin
cp config/ndo2db.cfg-sample
/usr/local/nagios/etc/ndo2db/cfg
cp config/ndomod.cfg-sample
/usr/local/nagios/etc/ndomod.cfg
chmod 774 /usr/local/nagios/bin/ndo*
chown nagios:nagios /usr/local/nagios/bin/ndo*
chown nagios:nagios /usr/local/nagios/etc/ndo*
# cp daemon-init /etc/init.d/ndo2db
# chmod +x /etc/init.d/ndo2db
Installation Centreon-2.1.10
#
#
#
#
#
cd /usr/local/src
wget http://downloads.centreon.com/index.php?id=144
tar xzf centreon-2.1.10.tar.gz
cd centreon-2.1.10
./install.sh -i
52
54
Annexe B
Installation de NSClient
Partie Serveur (Machine Windows Distante)
Il faudra installer et configurer NSClient++ sur le serveur Windows
Tlcharger la version NSClient-0.3.8.75.
Dzipper le client sous le rpertoire C:\NSClient++-Win32-0.3.8.
Ouvrir une commande DOS (cmd.exe)
Entrer les commandes suivantes :
C:\cd NSClient++-Win32-0.3.8
C:\cd NSClient++-Win32-0.3.8\NSClient++.exe/install
Linstallation est donc acheve, vrifions donc que le service est autoris "Interagir avec le bureau"
(marquer Local system account et Allow service to interact with desktop dans longlet Log On du
gestionnaire de service) en ouvrant le gestionnaire des services.
55
[Setting]
;# OBFUSCATED PASSWORD
; This is the same as the password option but here you can store the password in an
obfuscated manner.
; *NOTICE* obfuscation is *NOT* the same as encryption, someone with access to
this file can still figure out the
; password. Its just a bit harder to do it at first glance.
;obfuscated_password=Jw0KAUUdXlAAUwASDAAB
# PASSWORD
This is the password (-s) that is required to access NSClient remotely. If you leave
this blank everyone will be able to access the daemon remotly.
password=admin
# ALLOWED HOST ADDRESSES
This is a comma-delimited list of IP address of hosts that are allowed to talk to the
all daemons. If leave this blank anyone can access the deamon remotly (NSClient still
requires a valid password).The syntax is host or ip/mask so 192.168.0.0/24 will allow
anyone on that subnet access
allowed_hosts= 192.168.0.107
Dmarrage NSClient:
C:\cd NSClient++-Win32-0.3.8\NSClient++.exe/start
Arrt NSClient
C:\cd NSClient++-Win32-0.3.8\NSClient++.exe/stop
56
#cd /usr/local/nagios/libexec
#./check_nt -H 62.245.223.181 s admin p 12489 v CLIENTVERSION
NSClient++ 0.3.8.75
Maintenant que tout est prt dans la machine Windows distante superviser, on a plus qu
ajouter la machine au serveur Nagios et essayer de rcuprer les informations ncessaires grce la
commande check_nt qui permet dinterroger distance lagent NSClient.
57
Annexe C
Installation de NRPE
Partie Cliente (Serveur Linux)
Accder au serveur Linux superviser en tant que root et suivre les tapes suivantes :
# cd /usr/sbin
# useradd nagios
# passwd nagios
# groupadd nagios
# usermod -G nagios nagios
#mkdir downloads
#cd downloads
#wget http://osdn.dl.sourceforge.net/sourceforge/nagiosaplug/nagios-plugins-1.4.15.tar.gz
# tar xzf nagios-plugins-1.4.6.tar.gz
#cd nagios-plugins-1.4.6
#./configure
#make
#make install
#chown nagios.nagios /usr/local/nagios
#chown R nagios.nagios /usr/local/nagios/libexec
58
#wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
#tar xzf nrpe-2.12.tar.gz
#cd nrpe-2.12
#./configure
#make all
#make install-plugin
#make install-daemon
#make install-daemon-config
#make install-xinetd
5666/tcp
# NRPE
# /etc/init.d/xinetd stop
# /etc/init.d/xinetd status
# /etc/init.d/xinetd restart
59
#cd /usr/local/nagios/libexec
#./check_nrpe H @serveur-distant
Vrifier que les requtes (TCP sur port 12489) ne sont pas bloques par un firewall
sinon ajouter une rgle pour autoriser le Firewall IPtable.
60
Annexe D
Notification par mail
Dfinitions
Serveur SMTP
Serveur smtp signifie Serveur Simple Mail Transfert Protocol et se traduit par protocole simple
de transfert de courrier en franais. Un serveur smtp est un serveur de courrier. Il gre le transfert du
courrier lectronique vers les diffrents serveurs de messagerie lectronique. De plus, il permet l'envoi de
mail partir des ordinateurs clients. C'est pourquoi, il est utile de spcifier un serveur pop et un serveur smtp
lors de la configuration du logiciel du mail
Postfix
Il sert lenvoi des notifications vers votre serveur de messagerie.
Mailx :
Offrant un binaire mail commande qui permet de tester lenvoie des mails.
Installations
Installer mailx et posix depuis les sources, travers linterface yast ou la commande
61
Configuration :
Modifier le fichier /etc/potfix/mail.cfg comme suit :
myhostname = MoniterServ
mydestination = rfronteau-laptop, localhost.localdomain, localhos
relayhost = smtp.orange.fr
Myhostname : Le nom du myhostname doit tre quivalent au nom de votre machine (nom
Le mydestinitation doit tre identique au myhostname. En aucun cas cest 2 valeurs doivent
relayhost sert renseigner lIP ou le nom DNS du serveur de messagerie utiliser pour router
votre courrier.
/usr/bin/printf
"%b"
"*****
*****\n\nType:$NOTIFICATIONTYPE$\nHost:
$HOSTSTATE$\nAddress:
$HOSTOUTPUT$\nDate/Time:
centreon
Notification
$HOSTNAME$\nState:
$HOSTADDRESS$\nInfo:
$DATE$/$TIME$"
62
-s
"Host