Cours sur l’outil de supervision Nagios, tutoriel & guide de travaux pratiques en pdf.
La supervision par nagios
Nagios est un logiciel qui fournit un ensemble de moyens et services pour assurer une supervision particulièrement simple, fiable, évolutive et non-propriétaire d’un parc informatique.
Présentation de Nagios
Nagios est un logiciel de supervision de réseau libre sous licence GPL qui fonctionne sous Linux.
Il a pour fonction de surveiller les hôtes et services spécifiés, alertant l’administrateur des états des machines et équipements présents sur le réseau.
Bien qu’il fonctionne dans un environnement Linux, ce logiciel est capable de superviser toutes sortes de systèmes d’exploitation (Windows XP, Windows 2000, Windows 2003 Server, Linux) et également des équipements réseaux grâce au protocole SNMP.
Cette polyvalence permet d’utiliser Nagios dans toutes sortes d’entreprises, quelque soit la topologie du réseau et les systèmes d’exploitation utilisés au sein de l’entreprise.
Figure IV.1 : l’interface graphique
Architecture de Nagios
L’architecture de base de Nagios est simple :
un ordonnanceur : Nagios est d’abord un moteur gérant l’ordonnancement des vérifications, ainsi que les actions à prendre sur incidents (alertes, escalades, prise d’action corrective) ;
une IHM : la partie graphique visible à travers un simple serveur web, tel Apache est basée (pour les versions jusqu’à la 2.0) sur des CGI ;
des sondes : les sondes de Nagios (les greffons ou plugins) sont de petits scripts ou programmes qui sont la base des vérifications.
Le projet Nagios fournit en standard bon nombre de greffons de base, mais la simplicité de leur mode de fonctionnement nous a permis d’en écrire un certain nombre pour nos besoins propres, que ce soit pour superviser dans notre environnement ou pour vérifier que nos clients peuvent bien se connecter chez nous. [7]
Figure IV.2 : Architecture de nagios
Les plugins
Les plugins (greffons) sont des programmes exécutables ou des scripts (perl, Shell, etc..) qui peuvent être lancés depuis une ligne de commande pour tester un hôte ou un service. Le résultat de l’exécution d’un plugin est utilisé par Nagios pour déterminer le statut des hôtes ou des services sur le réseau.
Les principaux plugins utilisés par nagios sont :
check_disk : Vérifie l’espace occupé d’un disque dur
check_http : Vérifie le service « http » d’un hôte
check_ftp : Vérifie le service « ftp » d’un hôte
check_mysql : Vérifie l’état d’une base de données MYSQL
check_nt : Vérifie différentes informations (disque dur, processeur …) sur un système d’exploitation Windows
check_nrpe: Permet de récupérer différentes informations sur les hôtes
check_ping: Vérifie la présence d’un équipement, ainsi que sa durée de réponse
check_pop: Vérifie l’état d’un service POP (serveur mail)
check_snmp : Récupère diverses informations sur un équipement grâce au protocole SNMP.
Fonctionnement de nagios
Nous pouvons distinguer deux modes de fonctionnement complémentaires de Nagios : le mode actif, ou de polling et le mode passif ou de traps.
Figure IV.3 : Les deux modes de fonctionnement de Nagios
En mode polling, Nagios exécute un plugin pour réaliser un test à des intervalles de temps réguliers. Il analyse ensuite la réponse et adopte un comportement en fonction de celle-ci. Ce mode de fonctionnement entraîne une génération du trafic sur le réseau.
En mode passif, Nagios reste à l’écoute de tout ce qu’on peut lui dire. Pour communiquer avec lui, il suffit d’installer le programme client send_nsca sur les serveurs à superviser et de faire tourner le démon nsca sur le serveur Nagios. Dans notre configuration, c’est le démon snmptrapd de Net-SNMP qui utilise ce programme client via le script ‘traitement-trap’.
Quelque soit le mode de fonctionnement, Nagios remonte des alertes aux administrateurs définis dans ses fichiers de configuration, que soit par mail, sms. Nagios met aussi en permanence à jour sont interface web qui reflète donc en temps réel l’état du réseau et des services.
Il est possible d’utiliser des agents de supervision permettant de récupérer des informations à distances. Ils offrent la possibilité de profiter de la puissance offerte par les plugins. Il existe 2 types d’agents :
Les agents NRPE
Les agents NCSA
Le principe de fonctionnement des agents NRPE (pour Nagios Remote Plugin Executor) est simple : les plugins sont installés sur l’équipement à superviser, compilés en fonction de son architecture car c’est elle qui va les exécuter, ainsi que le démon NRPE faisant office de serveur. Sur la plateforme de supervision Nagios, le plugin check_nrpe fera alors office de client nrpe, récupérant les informations en interrogeant le démon nrpe sur l’équipement concerné.
Le plugin check_nrpe sur le serveur Nagios initiera une connexion vers l’agent nrpe de la machine cible et lui demandera alors l’exécution d’une vérification. L’agent nrpe lancera alors le plugin configuré en local pour obtenir l’information et retournera le code retour de l’exécution ainsi que sa sortie standard.
Les agents ncsa (pour Nagios Service Check Acceptor) diffèrent des agents nrpe car la vérification est plannifiée en local sur l’équipement supervisé, exécutée, puis le résultat est envoyé au serveur Nagios. De même que pour nrpe, l’architecture ncsa demande la présence du plugin check_ncsa sur la plateforme Nagios.
Pour notre projet, nous avons décidé d’utiliser le type de récupération active, c’est-à-dire que Nagios prend l’initiative d’envoyer une requête pour obtenir des informations. Ceci évite donc de configurer les postes à superviser. [5]
La demande d’informations se fait grâce à l’exécution d’une commande de la part de Nagios. Une commande doit obligatoirement comporter des arguments afin de pouvoir chercher les bonnes informations sur les bonnes machines.
Ces arguments sont l’adresse IP de l’hôte sur lequel aller chercher l’information, la limite de la valeur de l’information recherchée pour laquelle l’état ‘attention’ sera décidé, idem pour la valeur ‘critique’, et enfin d’autres options qui varient selon le plugin utilisé.
Pour ne pas devoir à créer une commande par machine supervisée et par information recherchée, nous pouvons remplacer les arguments par des variables, et ainsi réutiliser la commande plusieurs fois, en remplaçant la bonne variable. Nous avons alors la possibilité de travailler avec des services. Lors de la création d’un service, il faut l’associer à un ou plusieurs hôtes puis à une commande.
Ensuite Nagios remplace automatiquement la variable de l’adresse IP dans la commande, grâce à la liste d’hôtes associée au service.
Puis on doit définir manuellement dans le service les autres variables nécessaires à la commande.