Nagios

Présentation

 * Enseignants : Georges-Pierre Bonneau, Didier Donsez (EA2013)
 * Auteur : Bianco Jean-Francois 
 * Télécharger : Présentation

Abstract
The supervision is to monitoring a IT system. It can prevent and detect the problems in real time, and give alert if necessary. Nagios is an open source monitoring system. It offers monitoring and control for Server,Router,Switch and all devices using Simple Monitor Network Protocol (SNMP).

Keywords
supervision,monitoring,SNMP

Résumé
La supervision est une méthode qui permet d’avoir une vue d’ensemble d’une plateforme informatique. Celle-ci offre la possibilité d’analyser son fonctionnement ainsi que de prévenir et de réagir aux problèmes pouvant atteindre le système. Pour cela, il existe trois méthodes de supervision :
 * L’analyse des logs (avec des outils tels que « Analog » ou « pflogsumm »)
 * Exécution de script et méthode à distance
 * Utilisation du protocole SNMP (Simple Network Management Protocol)

Nagios est un outil de supervision open source, permettant de surveiller l’ensemble des périphériques composant un réseau informatique (Serveur, Routeur, Switch…) utilisant le protocole SNMP. Il offre un système de plugin, permettant à l'utilisateur de configurer et d'adapter Nagios à ses besoins.

Mots-clés
Supervision, Analyse, Prévention, Alerte, Réseau, Administration

SNMP (Simple Network Management Protocol)
SNMP est un protocole réseau permettant l’administration, le contrôle et la supervision de la majorité des équipements réseau. Il repose sur un principe de « client-serveur », le serveur étant le manager SNMP, et le client étant l’agent SNMP, comme le montre le schéma suivant :



Le manager va permettre d'interroger les agents SNMP afin d'obtenir des informations sur leurs état, ou leur envoyer une commande. Pour cela, le manager va pouvoir exécuter deux types de requêtes. Le premier correspond à des requêtes d'interrogation (get-request,get-next-request), auquel l'agent SNMP va répondre (get response). Le second type de requêtes est une requête d'édition, ou le manager va pouvoir mettre à jour des informations présentes sur l'agent SNMP (set-request). Le protocole possède un dernier type de requête, utilisé par les agents SNMP. Cette requête, dite "trap", consiste à envoyer une alerte au manager SNMP en cas de défaillance détectée par l'agent SNMP. Le manager va recevoir cette requête, et pouvoir la traitée en fonction de sa configuration.

MIB (Management Information Base)
Les agents SNMP stockent les informations dans une base de données normalisée, MIB (Management Information base). Celle-ci est hiérarchisé afin d’être facilement lisible et modifiable par les manager SNMP. La structure générale d’une MIB est la suivante :



Pour réaliser une demande, on utilise les identifiants universel, les OIDs (Object Identifier), definit par l’International Telecommunication Union(ITF). Un OID est composé d'une suite d'entier, chacun représentant un noeud. Pour consulter une valeur, on se déplace dans la base à l'aide des différents identifiant de noeuds. Par exemple, si l’on souhaite connaître la valeur de l’état ADSL sur un modem, il suffit d’interroger celui-ci avec l’OID suivant 1.3.6.1.2.1.10.94.1 (iso.org.dod.internet.mgmt.mib2.transmission.adslMIB.adslLineMib). L'ensemble de la base MIB standard de l'IETF

Historique
L'outil de supervision Nagios est basé sur le logiciel NetSaint (1999), un logiciel de supervision système réalisant la supervision des hôtes et des services, mais ne réalisant pas d'analyse réseau. En 2002, NetSaint devient Nagios. La première version de Nagios core est sortie en novembre 2002. Trois nouvelles ont été réalisées : 2.0 en 2006, 3.0 en 2008 et enfin 4.0 en 2013.

Principe
Nagios est basé sur un système de plugins, qui utilise un ordonnanceur de commandes fourni par Nagios Core. Ainsi, Nagios n'est un outil de supervision que lorsqu'on l'utilise avec des plugins adaptés. Ces plugins vont utiliser le noyau de Nagios en lui transmettant différentes commandes :



L'ordonnanceur va trier les commandes à exécuter en fonction de leurs priorité. En fonction du résultat, on va pouvoir effectuer des traitements complémentaires, qui peuvent être une autre commande ou une notification à un autre plugin. Les plugins Nagios sont des programmes exécutables écrit dans différents languages(C,Shell,Perl...) qui vont retourner une valeur, qui sera interprété par Nagios core. Ces valeurs sont les suivantes :

En plus de cette valeur de retour, le plugin doit afficher sur la sortie standard un message texte correspondant à la signification de la valeur de retour (80 caractères maximum), qui sera utilisé lorsque Nagios notifiera le résultat du plugin.

Nagios peut-être utilisé de façon centralisé (un manager et tous les plugins sur le même hôte), ou de façon décentralisée, via un plugin particulier (NRPE), qui va communiquer avec les machines ou l'on délègue l'exécution des plugins. Il existe des Plugins mis à disposition des utilisateurs sur le site du projet

Version Centralisée


Dans cette version, Nagios est exécuté sur une seule machine, et les plugins interroge l'ensemble des hôtes distant dans le réseau. L'avantage de cette version est qu'elle est simple à mettre en oeuvre. Il suffit d'activer le protocole SNMP sur ses équipements réseaux, et de configurer la surveillance via les plugins fournis par l'installation de base (dont une interface Web). Les inconvénients sont que l'on se limite au contenu des MIBs présentent dans les équipements, et que le protocole SNMP possède une faible sécurité réseau. Cette utilisation est donc conseillée uniquement pour les réseaux locaux.

Version Décentralisée


Dans cette version, Nagios est exécuté sur une machine, mais délègue l'exécution des plugins sur des machines distantes, via le plugin NRPE. La machine distante va mettre en oeuvre le plugin, et communiquer le résultat au serveur Nagios via le plugin NRPE. Ce plugin utilise SSL pour crypter les échanges, afin qu'ils soient entièrement sécurisés. Le serveur va interpréter le résultat comme ci c'était lui qui avait exécuter le plugin. L'avantage de ce système est de pouvoir exécuter les plugins sur différentes machines, ce qui rend possible la supervision sur plusieurs sites, la communication entre le serveur Nagios et l'hôte distant étant sécurisée. L’inconvénient est que ce système demande plus de ressources, et que le plugin NRPE soit adapté aux machines ou il est exécuté.

Exemple plugin
Ce plugin permet de vérifier l'espace disque disponible sur l'hôte : used_space=`df -h / | grep -v Filesystem | awk '{print $5}' | sed 's/%//g'` case $used_space in [1-84]*) echo "OK - $used_space% of disk space used." exit 0 [85]*) echo "WARNING - $used_space% of disk space used." exit 1 [86-100]*) echo "CRITICAL - $used_space% of disk space used." exit 2 echo "UNKNOWN - $used_space% of disk space used." exit 3 esac
 * 1) !/bin/bash

Démonstration
thumb|center|upright=6|alt=Screenshot Demo Nagios |Capture démonstration nagios Une démonstration de Nagios est disponible sur le site du projet : Démonstration

Liens

 * Protocole SNMP :
 * Principe du protocole SNMP
 * Simple Network Management
 * Nagios :
 * Site projet Nagios
 * Documentation Nagios Core
 * Cours Outils de supervision Erwan Ben Souiden - Université Paris XVIII
 * Les outils d’administration et de supervision réseau Thierry Briche, Matthieu Voland - Université de Pau