10/04/2017
La supervision
avec Nagios Mise en place d’une architecture
système & réseau et sa supervision
CAMARA Fodé Ismaël BTS SIO SISR
Table des matières Introduction ............................................................................................................................................. 2
Prérequis ............................................................................................................................................. 2
GNS3 ........................................................................................................................................................ 2
Configuration de l’hôte accueillant GNS3 ........................................................................................... 3
Installation de la carte réseau de booclage de GNS3 ...................................................................... 3
Teste de fonctionnement de la carte de bouclage dans GNS3 ....................................................... 6
Configuration du routeur ................................................................................................................ 7
Installation et configuration de Nagios ................................................................................................... 9
Installation et configuration du plugin Nagios permettant l’accès via l’interface web .................... 13
Superviser des machines Windows ................................................................................................... 16
Correction du menu MAP .................................................................................................................. 35
Modifier les icônes des hôtes dans Nagios ................................................................................... 37
Configuration des notifications Nagios ............................................................................................. 39
Les notifications par mail :............................................................................................................. 39
Les notifications par SMS .............................................................................................................. 40
Les notifications par twitter .......................................................................................................... 40
Monitorer les routeurs et switch Cisco avec Nagios ......................................................................... 44
Activer le protocole SNMP ............................................................................................................ 44
Installation de l’agent NSClient++ (NSCP) ......................................................................................... 45
NAGIOS
Introduction
Nagios est un logiciel de supervision destiné à informer les administrateurs système et réseau des
éventuels problèmes pouvant survenir dans le système d’informations avant que les utilisateurs de
l’architecture ne le fassent. Il est prévu pour fonctionner sur un système d’exploitation Linux mais
fonctionne également sans problème sur la plupart des variantes UNIX. Le démon de supervision
effectue des contrôles intermittents sur les hôtes et services que vous spécifiez en utilisant des
plugins externes qui retournent un statu d’état à Nagios. Quand des problèmes surviennent, il peut
envoyer des notifications à des contacts administratifs de façons différentes (email, SMS, messagerie
instantanée, twitter, etc…). Les informations d’états courants, les historiques et les rapports peuvent
être consultés à partir d’un simple navigateur.
Il surveille les hôtes et services spécifiés, alertant lorsque les systèmes ont des dysfonctionnements
et quand ils repassent en fonctionnement normal. C'est un logiciel libre sous licence GPL. C'est un
programme modulaire qui se décompose en trois parties :
Le moteur de l'application qui vient ordonnancer les tâches de supervision.
L'interface web, qui permet d'avoir une vue d'ensemble du système d'information et des possibles
anomalies. Les sondes (appelées greffons ou plugins), une centaine de mini programmes que l'on
peut compléter en fonction des besoins de chacun pour superviser chaque service ou ressource
disponible sur l'ensemble des ordinateurs ou éléments réseaux du SI.
Dans cette documentation nous allons voir comment installer et configurer nagios de façon simple et
intelligente afin d’assurer une supervision fine des différents hôtes et service d’une architecture
système et réseau.
Prérequis
Les outils prérequis pour mener à bien cette documentation sont :
o GNS3 : afin de d’émuler du matériel Cisco (routeur et switch) afin de faire des remonter
précise de l’état des matériels réseaux du parc
o Virtualbox pour la virtualisation des hôtes
o Debian 8 jessie
o Nagios
GNS3 GNS3 est un logiciel permettant la virtualisation des outils de commutation notamment les switch et
routeur Cisco. GNS3 signifie Graphical Network Simulator et est composé des outils suivants :
o Dynamips : Émulateur d’IOS Cisco.
o Dynagen : Interface écrite en python et permettant l’interconnexion de plusieurs machines
émulées.
o Qemu : Émulateur de système.
o Virtualbox : Logiciel permettant la création de machines virtuelles
Configuration de l’hôte accueillant GNS3
Installation de la carte réseau de booclage de GNS3
Pour que GNS3 puisse fonctionner correctement sur Windows (dans ce tutoriel Windows8) il est
important de bien configurer son system afin que GNS3 puisse créer son interface réseau virtuel.
Pour commencer il faut connecter GNS3 avec carte réseau physique de l’ordinateur hôte.
Pour cela lancer une invitée de commande cmd et taper la commande suivante :
Une fenêtre s’ouvre pour l’installation de nouveau matériel
Faire suivant et suivre les instructions
Il nous est demander à ce moment de choisir si l’on souhaite rechercher et installer
automatiquement un matériel ou si on souhaite le faire manuellement, dans notre cas nous allons
choisir d’installer manuellement dans la liste
Dans la liste choisir d’installer une carte réseau :
Dans la liste de carte réseau qui suis, sur le côté gauche du tableau sélectionner le type Microsoft et
sur la partie droite du tableau choisir la carte de bouclage Microsoft KM-TEST
Ensuite faire suivant afin d’installer la nouvelle carte et redémarrer l’ordinateur.
Une fois l’ordinateur redémarré se rendre dans les paramètres de notre carte réseau dans le centre
de réseau et partage, afin de partager la connexion de notre carte réseau physique avec celle
fraichement installé. Une nouvelle interface nommer carte de bouclage ou loopback doit apparaître,
faire un clic droit à propriété sur la carte physique ici la carte wifi puis dans la fenêtre qui s’ouvre
dans l’onglet partage cocher la case ‘’ Autorisé d’autre utilisateur à ce connecter via la connection
internet de cet ordinateur’’:
La notation partagée doit apparaître à côté de la carte réseau physique :
À ce stade notre carte réseau de bouclage pour GNS3 dont l’adresse est 192. 168.137.1 est bien
autorisé à se connecter via internet à la carte physique de notre ordinateur. Pour vérifier son adresse
faire clic droit sur la carte de bouclage à propriété à configuration IPV4 :
Teste de fonctionnement de la carte de bouclage dans GNS3
Maintenant rendez-vous dans GNS3. Nous allons ajouter un routeur pour tester le bon
fonctionnement de notre configuration :
Faire un clic droit à configure sur cloud1 qui correspond à notre interface de bouclage pour
renseigner la carte réseau sur laquelle elle doit se connecter, ici Ethernet3 qui correspond à notre
carte réseau de bouclage puis add pour l’ajouter.
Ajouter ensuite une liaison entre cloud1 et le routeur :
Configuration du routeur
Pour cela clique sur le bouton démarrer pour démarrer le routeur puis clic droit à console puis
paramétrer le routage :
Mise en place d’une route par défaut :
Tester avec un ping que notre routeur accède bien à internet :
Puis un traceroute pour voir par où passe notre requête avant d’arriver sur internet :
On voit bien que la requête passe d’abord par l’interface de bouclage puis ensuite par la passerelle
par défaut. Maintenant que notre plateforme GNS3 est fonctionnelle nous pouvons passer à
l’installation de Nagios sur une Debian8 Jessie
Installation et configuration de Nagios
Sur une Debian Jessie pour ce tutoriel commençons par mettre à jour nos dépôts et nos paquets afin
de commencer avec un environnement propre.
Commenter la ligne commençant par CD-Rom dans le fichier source du système pour qu’il nous
demande plus lors d’installation d’un paquet d’inséré le CD
Mettre à jours debian :
Ensuite installons les paquets nécessaires au bon fonctionnement de Nagios (préparer vous un café) :
Lors de l’installation des paquets un mot de passe pour l’utilisateur root de MYSQL vous est demandé
renseigner le mot de passe que vous voulez :
root@nagios: apt-get install apache2 php5 mysql-server php5-mysql daemon
php5-gd sendmail build-essential libgd2-xpm-dev openssl libssl-dev
xinetd apache2-utils apache2 unzip libapache2-mod-php5 make gcc wget
libnet-snmp-perl snmp daemon sendmail-bin
Maintenant que nos dépendances sont fraichement installées, créons un utilisateur du nom de
nagios et ungroupe nagcmd puis ajoutons cet utilisateur dans le groupe nagcmd :
Téléchargeons l’archive de la dernière version de Nagios version 4.1.1
Décompressons l’archive fraichement télécharger :
Maintenant il nous faut lancer le script configure :
root@nagios:/home/bts# useradd -m nagios
root@nagios:/home/bts# passwd nagios
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :
passwd : le mot de passe a été mis à jour avec succès
root@nagios:/home/bts# groupadd nagcmd
root@nagios:/home/bts# usermod -a -G nagcmd nagios
root@nagios:/home/bts# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-
4.1.1.tar.gz
root@nagios:/home/bts# tar -xzvf nagios-4.1.1.tar.gz
Ensuite il faut lancer la compilation des fichiers de Magios avec les commandes make :
make all à Vous devez voir Enjoy.
o make install
o make install-init
o make install-commandmode
o make install-config
Créer les dossiers suivant /etc/httpd et etc/httpd/conf.d
Il nous reste maintenant une dernière compilation de Nagios à réaliser :
Copions maintenant le dossier contrib/eventhandlers/ dans /usr/local/nagios/libexec/
Changeons le propriétaire de ce dossier pour que ce soit l’utilisateur nagios qui en soit le
propriétaire :
./configure --with-command-group=nagios --with-command-group=nagcmd --with-
mail=/usr/bin/sendmail
root@nagios:/home/bts/nagios-4.1.1# chown -R nagios:nagios
/usr/local/nagios/libexec/eventhandlers/
Vérifions que le propriétaire à bien changer avec la commande ls –la :
On remarque bien que le propriétaire de ce dossier et de ses sous-dossiers est bien l’utilisateur
nagios
Vérifions maintenant la bonne configuration de Nagios :
Le retour verbeux de cette commande doit retourner 0 Warning et 0 erreurs :
Maintenant il faut changer le mot de passe de Nagios dans le fichier htpasswd.users (avec
l’option –C pour qu’il soit créé s’il n’existe pas) dont le login par défaut est nagiosadmin.
root@nagios:/home/bts/nagios-4.1.1# /usr/local/nagios/bin/nagios -v
/usr/local/nagios/etc/nagios.cfg
root@nagios:/ /home/bts/nagios-4.1.1# htpasswd -c /usr/local/nagios/etc/htpasswd.users
nagiosadmin
Installation et configuration du plugin Nagios permettant l’accès via l’interface web
Télécharger l’archive du plugin en n’oubliant pas de faire un retour en arrière dans l’arborescence
afin de sortir du dossier nagios-4.1.1 :
Décompressons l’archive fraichement télécharger :
Maintenant nous allons nous rendre dans le dossier nagios-plugins-2.1.1 et effectuer le même
rituel qu’avec Nagios, nous allons exécuter le script configure puis ensuite le compiler avec la
commande make (let’s go) :
Puis on compile maintenant avec la série de make :
o make
o make all
o make install
root@nagios:/home/bts/nagios-4.1.1# wget http://nagio-plugins.org/download/nagios-
plugins-2.1.1.tar.gz
root@nagios:/home/bts/nagios-4.1.1/nagios-plugins-2.1.1# ./configure --with-nagios-
user=nagios --with-nagios-group=nagios
Copions maintenant le fichier nagios.conf
Mise en place d’un lien symbolique entre le fichier conf de nagios que l’on vien de copier et les
sites active d’apache2 :
Redémarrer apache2 :
Redémarrer nagios :
Remarque : Si Nagios ne redémarre, redémarrer la machine
Check du bon fonctionnement de la configuration de Nagios plugins :
Le retour de cette commande doit être 0 Warning et 0 erreurs :
root@nagios:/home/bts/nagios-4.1.1/nagios-plugins-2.1.1# cp
/etc/httpd/conf.d/nagios.conf /etc/apache2/sites-available/
root@nagios:/home/bts/nagios-4.1.1/nagios-plugins-2.1.1# ln -s /etc/apache2/sites-
available/nagios.conf /etc/apache2/sites-enabled/
root@nagios:/home/bts/nagios-4.1.1/nagios-plugins-2.1.1#
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Rendez-vous maintenant sur le navigateur web pour terminer les configurations de Nagios via
http://addresseIP/nagios.
Login nagiosadmin et le password le mot de passe renseigner plus haut avec la commande
htpassd :
Voilà Nagios fonctionne normalement ou presque car il est signalé Not running, pour corriger
cette erreur il faut ajouter l’adresse du serveur dans le fichier de configuration d’apache2 :
Éditons ce fichier pour y ajouter Servername notreaddresseIP et on redémarrer apache2:
Activer les cgi d’apache2 :
root@nagios:/home/bts# a2enmod cgi
Donnons les bons droits à ce dossier pour nous permettre de réaliser certaine action sur
l’interface graphique :
Redémarrer apache2
Redémarrer Nagios :
Remarque : si vous avez toujours l’erreur rebooter le serveur.
Maintenant notre Nagios est fonctionnelle et prêt à superviser notre architecture
Superviser des machines Windows
Éditons le fichier /usr/local/nagios/etc/nagios.cfg pour y dé-commenter la ligne correspondant au
remonter des hôtes windows ;
Ensuite éditons le fichier windows.cfg pour ajouter l’hôte windows à superviser :
Une fois dans ce fichier ajoutons notre hôte. Nous allons modifier juste l’alias, le hostname et
l’adresse ip de la configuration déjà existante cela à titre d’exemple nous verrons plus bas comment
créer nos propre fichier de configuration d’hôte, de service, etc… Dans ce cas-ci nous allons garder le
fichier windows.cfg pour tous les hôtes de type Windows.
Quelques explications sur les arguments :
o use windows-server
o signifie que notre hôte que nous avons déclare hérite du template wndows-server
prédéfinie dans Nagios dans le fichier template.cfg
o host_name
o correspond au nom d’hôte de la machine à supervisé
o alias
o Simple alias d’affichage
o Addrress
o Adresse IP de la machine à supervisé
Il faut maintenant changé le hostname présent dans tous les définition de service présent dans ce
fichier :
Redémarrer nagios :
On peut voir ici que nagios ne veux pas redémarrer car il constate une erreur. Pour localisé les
erreurs il suffit d’utilisé la commande de check d’erreur sur le fichier conf de nagios :
root@nagios:/home/bts# /usr/local/nagios/bin/nagios -v
/usr/local/nagios/etc/nagios.cfg
On constate que notre erreur ce trouve ligne 108 du fichier windows.cfg. Nous allons l’ouvrir avec
l’option –c pour demander à nano de nous montrer le numéro des ligne du fichier.
Une fois l’erreur corrigé on restart nagios.
Nous voyons bien ici que Nagios à bien checker notre hôte :
Nous pouvons aussi voir les services superviser dans l’onglet service :
Remarque : tous les services de notre machine Windows sont rouges donc down, c’est normal, pour
corriger ce problème il faut installer un agent sur les machines Windows pour qu’elles puissent
communiquer correctement avec Nagios. Cet agent c’est NSClient++ ou maintenant appelé NSCP nous
y reviendrons plus tard lorsque nous aurons installé et configurer le check NRPE et les fonctions de
transport NSCA
Pour ce tutoriel j’ai pris la version NSClient++ 0.3.9.328 version 64bits.msi car c’est une version stable
et actuellement l’une des rares versions compatibles avec Windows server 2012 et antérieur.
Donc téléchargeons cette version à cette adresse :
http://d2ubxhm80y3bwr.cloudfront.net/Downloads/op5_downloads_agents/nsclientpp/OP5_NSClie
ntpp-0.3.9.328-x64.msi
Une fois téléchargée lancer l’installation puis cocher la case pour accepter les termes du contrat... :
Faire suivant, pas besoin de renseigner de non d’hôte, d’adresse ip ou de mot de passe on le ffera
plus tard.
Télécharger le NSC.ini valide à cette adresse :
https://drive.google.com/open?id=0B4jyDNd9OKsFcnpDbGgyZ3lZYlE
Se rendre dans C:\Programm\op5\NSClient++ et supprimer le fichier NSC.ini présent et le remplacer
par celui téléchargé ci-dessus :
Une fois que le fichier a été remplacé ouvrons le pour y apporté quelque modification :
Renseigner un mot de passe dans la section setting et l’adresse IP du serveur de supervision suivi de
son masque de sous-réseau
Ensuite appuyer sur les touche Windows+R et taper service.msc pour aller dans le gestionnaire de
service et chercher OP5 NSClient++
Puis clic droit dessus à propriété onglet connexion et cocher la case pour permettre au service snmp
de interagir avec le bureau :
Puis redémarrer le service :
Une fois cela réaliser ce rendre sur le serveur nagios et tester que NSClient remonte les info
nécessaire en testant la commande pour nous renvoyer la version de l’agent :
Dans un premier temps tentons e localiser le plugin check_nt qui permet de lancer les commande
NSClient
Le plugin est présent nous allons donc nous rendre dans le dossier /usr/local/nagios/libexec et taper
la commande suivante :
La commande fonctionne la version du NSClient nous eszt renvoyer et nous somme bien en 0.3.9.328
Maintenant il nous faut aller dans le fichier command.cfg pour aller renseigner le mot de passe de
NSClient++
Redémarrer Nagios et désactiver le par feu de windows ou ajouter la règle permettant de laissé
passer les paquets SNMP dans le firewall.
Notre hôte remonte bien toute ses informations :
On peut aussi voir à présent tous les services :
root@nagios:/# nano /usr/local/nagios/etc/objects/commands.cfg
# 'check_nt' command definition
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ p 12489 -v
$ARG1$ $ARG2$ -s Bts2016$
Remarque le service W3SVC correspond à ISS, n’étant pas installé sur le client c’est normal que ce
soit en jaune et UNKNOW car il ne le trouve pas.
Ensuite la même opération sera à réaliser sur les autre hôtes Windows mais de façon plus simple
cette fois ci.
Pour ajouter un autre hôte Windows a supervisé nous allons tout simplement définir cette hôte et
ajouté sont hostname devant chaque services.
Définition de l’hôte :
Ajout dans les services Windows supervisé :
Redémarrer nagios.
On voit que notre nouveau serveur Windows est bien remonté et supervisé.
Corriger le Explorer effectivement il ce peux que la surveillance de l’explorateur Windows soit en
CRITICAL donc en rouge car dans le fichier windows.cfg il est écrit avec une majuscule au début pour
corriger cette erreur et remplacer le ‘E’ majuscule par un ‘e’ minuscule.
Supervision des hôtes Linux
Pour supervisé des machine linux sauf pour certain service qui sont publique il faut aussi un agent
d’installer sur les machines distante. Il s’agit de NRPE (Nagios Remote Plugin Executor). Nouos aurons
aussi besoin de nagios-plugins.
Client Linux
Installer nagios-nrpe-plugin
Sources NRPE :
Plaçons nous Maintenant dans le répertoire /usr/local/src et télécharger les fichiers nécessaires
pour le plugin NRPE.
Télécharger les sources Nagios plugin :
Décompression des archive:
Quelques dépendances à installer :
Compilé les sources du plugin:
Installer et compiler NRPE :
À ce niveau-là nous aurons besoins de quelques explications concernant NRPE :
NRPE est un agent de supervision que l’on déploie sur les serveurs lorsque l’on ne veut pas exposer
un service à l’extérieur pour le monitorer. Ce qui signifie qu’au lieu de dire au serveur Nagios
d’envoyer la commande de supervision à la machine distante à surveiller et traité la commande, on
va tout simplement dire au serveur d’envoyer la commande au client, qui va lui-même se charger de
traité cette commande en local et ensuite envoyé le résultat à Nagios. Ce mécanisme permet
d’économiser de la ressource au niveau du serveur qui à pas mal de tâche à réaliser mais aussi de
permettre de supervisé des services disponible que localement et dont un accès externe est bloqué
pour des raisons de sécurité évidente.
root@ocsng:/apt-get install nagios-nrpe-server
Cependant pour supervisé des services privée en local le client va déléguer cette tâche à l’agent
NRPE qui parfois aura besoin d’ajouter des arguments fournis par le serveur de supervision et c’est là
que les choses se corse. Depuis l’arrivée de Debian Jessie pour des raisons de sécurité le paquet
NRPE fournis dans les dépôts ne permet plus de donner des arguments à NRPE. Pour remédier à cela
il va falloir bidouiller un tant soit peu les sources du paquet NRPE (pas de panique ce n’est pas
compliqué).
Installer le paquet locate : apt-get install locate puis faire la commande updatedb pour mettre à
jour la base
Mise en place du lien symbolique :
Se rendre dans le dossier nrpe-2.15
Modifier le fichier debian/rules qui définie les rôles attribué à NRPE :
Y ajouter –enable-command-args comme ceci
On peut aussi éditer le fichier debian/NEWS et modifier l’en-tête pour que des mise à jour ne vienne
pas faire sauter notre petit NRPE fait maison en lui faisant croire qu’il est sur une version supérieur à
celle actuelle. Ainsi lors d’une mise à jour il va vérifier cette en-tête et pensé que l’agent est déjà a
jour et ne rien modifier :
La version indiquer au départ est 2.15-1 changeons cela en 2.15-2 comme ci-dessous:
Et on compile tout ça :
Ensuite l’incontournable make all :
Ensuite nous allons repackager les sources pour en faire un paquet en .deb pour cela rien de plus
simple :
Et enfin on l’installe le plus simplement du monde avec la commande dpkg –i :
Voilà notre agent NRPE est installer et près à nous répondre pour tout traitement de commande de
supervision.
Maintenant nous allons compiler les plugins Nagios toujours sur le client:
Aller dans le fichier /etc/nagios/nrpe.cfg pour y ajouter au niveau de allowed_hosts= l’adresse IP du
serveur nagios.