2. Etude de la solution choisie
Cette section va nous édifier sur tout ce qui a savoir
sur Nagios, Centreon et Nagvis.
2.1. Nagios
Nagios est un logiciel libre distribué sous licence GPL
qui permet de superviser un
système d'information complet. Utilisé par de
nombreuses sociétés, il fait l'objet de contribution et recherche
très actives
|
|
29
|
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
|
|
|
|
Etant le successeur de NetSaint dont la première
version date de 1999, ce logiciel est considéré comme une
évolution de ce dernier auquel a été ajoutée, entre
autre, la gestion du protocole SNMP. Il apparaît 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 systèmes Unix. Il
centralise les informations récoltées périodiquement par
le fonctionnement modulaire dont il est caractérisé, ce qui le
rend beaucoup plus attractif que ses produits concurrents. En revanche sa
configuration peut se révéler complexe.
7777777777777s d777777777: 7
Elles sont très nombreuses, mais les plus communes sont
suivantes :
· La supervision des services réseaux (SMTP,
http...), des hôtes et des ressources systèmes (CPU, charge
mémoire...)
· La détermination à distance et de
manière automatique l'état des objets et les ressources
nécessaires au bon fonctionnement du système grâce à
ses plugins.
· Représentation coloriée des états
des services et hôtes définies.
· Génération de rapports.
· Cartographie du réseau.
· Gestion des alertes.
· Surveillance des processus (sous Windows, Unix...).
· Superviser des services réseaux : (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 adaptés à leur tâche (Bash, C++,
Python, Perl, PHP, C#, etc.).
Toutes ces fonctionnalités sont assurées
grâce la gestion et supervision du réseau et ses
différentes entités d'une manière
centralisée. La figure ci-dessous modélise cet aspect :
30
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
METHODOLOGIE
2012
Figure14. Centralisation d'informations par
Nagios
Architecture de Nagio
L'architecture de Nagios se base sur le modèle
serveur-agent. D'une manière spécifique, un
serveur faisant office de point central de collecte des informations tandis que
les autres machines du réseau exécutent un agent chargé de
renvoyer les informations au serveur.
L'architecture globale de Nagios peut etre
décomposée en 3 parties coopératives entre
elles :
· Un noyau qui est le coeur du
serveur Nagios, lancé sous forme de démon et responsable de la
collecte et l'analyse des informations, la réaction, la
prévention, la réparation et l'ordonnancement des
vérifications (quand et dans quel ordre). C'est le principe de
répartition des contrôles au mieux dans le temps qui nous
évite la surcharge du serveur et des machines à surveiller.
|
|
31
|
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
|
|
|
|
· Des exécutants : ce sont les
plugins dont un grand nombre est fourni de base, responsables de
l'exécution des contrôles et tests sur des machines distantes ou
locales et du renvoie des résultats au noyau du serveur Nagios
· Une IHM : C'est une interface
graphique accessible par le web conçue pour rendre plus exploitable les
résultats. Elle est basée sur les CGI (Common Gateway Interface)
fournis par défaut lors de l'installation de Nagios qui
interprètent les réponses des plugins pour les présenter
dans l'interface.
Cette interface sert à afficher de manière
claire et concise une vue d'ensemble du système d'information et
l'état des services surveillés, de générer des
rapports et de visualiser l'historique. D'une manière
générale avoir la possibilité de détecter en un
simple coup d'oeil, les services ou hôtes ayant besoin d'une intervention
de leur administrateur.
Il est possible de coupler Nagios à une base de
données MySQL ou PostgreSQL, lorsque le nombre d'objets à
superviser devient conséquent. La figure suivante modélise
l'architecture de Nagios.
|
Fonctionnement de Nagios
|
|
|
32
|
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
|
|
|
Nagios fonctionne grâce à des plugins écris
en Perl ou en C. Sans eux, il est totalement incapable de superviser et se
résume en un simple noyau.
Ces plugins sont des programmes externes au serveur, des
exécutables qui peuvent se lancer en ligne de commande afin de tester
une station ou service. Ils fonctionnent sous le principe d'envoi de
requêtes vers les hôtes ou services choisis lors d'un appel du
processus de Nagios, et la transmission du code de retour au serveur principale
qui par la suite se charge d'interpréter les résultats et
déterminer l'état de l'entité réseau
testée.
La relation entre le noyau et les plugins est assurée
d'une part par les fichiers de configuration (définitions des commandes)
et d'autre part par le code retour d'un plugin. Cette relation peut se
résumer par le tableau ci-dessous :
Tableau 3:code d'erreur envoyé par les plugins
de Nagios
Code retour
|
Etat
|
Signification
|
1
|
OK
|
Tout va bien
|
2
|
Warning
|
Le seuil d'alerte est dépassé
|
3
|
Critical
|
Le service a un problème
|
4
|
Unknow
|
Impossible de connaître l'état du service
|
Nagios est livré avec un « package » de
greffons standards regroupant les plus utilisés. Pour une utilisation
basique et simple, ils devraient être suffisants. En voilà
quelques exemples:
> checkhttp : Vérifie la
présence d'un serveur web.
> checkload : Vérifie la charge CPU
locale.
> checkping : Envoie une requête Ping
à un hôte.
> checkpop : Vérifie la
présence d'un serveur POP3.
> checkprocs : Compte les processus
locaux.
> checksmtp : Vérifie la
présence d'un serveur SMTP.
> checksnmp : Envoie une requête SNMP
(passée en argument) à un hôte.
> checkssh : Vérifie la
présence d'un service SSH.
> checktcp : Vérifie l'ouverture d'un
port TCP (passé en argument).
> checkusers : Compte le nombre
d'utilisateurs sur la machine locale.
|
|
33
|
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
|
|
|
Il est possible de créer son propre plugin et
l'interfacer avec Nagios tout en respectant les conventions des codes de
retours précédemment expliqués. La vivacité de la
communauté Open Source et celle de Nagios 2 en particulier permet de
disposer d'un grand nombre de plugins supplémentaires. Comme on peut le
constater sur la figure suivante, les plugins peuvent fonctionner soit en
effectuant des tests en local, soit à distance par le biais de divers
moyens comme l'installation des agents NRPE ou
NSClient ou autres.
Bref NAGIOS de façon simplifiée se résume
à cet algorithme :
|
|
Figure 4: Algorithme de fonctionnement de
Nagios Les fichiers de configuration de
Nagios
|
Nagios s'appuie sur différents fichiers textes de
configuration pour construire son
infrastructure de supervision. Nous allons à
présent citer et définir 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 titre
intéressant pour définir des préférences concernant
l'interface web de Nagios.
|
|
34
|
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
|
|
|
|
· Resource.cfg permet de définir
des variables globales réutilisables dans les autres fichiers. Etant
inaccessible depuis les CGI qui génèrent l'interface, ce fichier
peut être utilisé pour stocker des informations sensibles de
configuration.
· Commands.cfg contient les
définitions des commandes externes, telles que celles qui seront utiles
pour la remontée d'alerte.
· Checkcommands.cfg contient les
définitions des commandes de vérification
prédéfinies et celles définies par l'utilisateur.
· Hosts.cfg définit les
différents hôtes du réseau à superviser. A chaque
hôte est associé son nom, son adresse IP, le test à
effectuer par défaut pour caractériser l'état de
l'hôte, etc.
· Services.cfg associe à chaque
hôte ou à chaque groupe d'hôtes l'ensemble des services qui
doivent être vérifiés.
· Hostsgroups.cfg définit des
groupes d'hôtes pour regrouper des hôtes selon
des caractéristiques communes. Un hôte peut appartenir à
plusieurs groupes.
· Contacts.cfg déclare les
contacts à prévenir en cas d'incident et définit les
paramètres des alertes (fréquences des notifications, moyens pour
contacter ces personnes, plages horaires d'envoi des alertes...).
|