[Tuto]Mise en place d’un serveur de monitoring avec Nagios et Centreon

Tweet about this on Twitter0Share on Facebook1Share on Google+1Email this to someone

Nous avons vu dans un précédent tutoriel comment permettre une centralisation des logs du réseau ainsi que leur exploitation. Cependant les logs ne permettent pas de tout savoir sur son réseau. Un log peut vous dire pourquoi tel hôte est en panne mais pas, justement, s’il est en panne. Nagios va permettre de surveiller, via le protocole snmp les hôtes du réseau. On pourra ainsi connaitre plus en détail leur activité (consommation bande passante, fréquence CPU, disponibilité, etc…). A Nagios on ajoute dans la plupart des cas une surcouche graphique permettant une meilleure lisibilité ainsi qu’une administration plus efficace: Centreon.

Nagios et Centreon nécessitent tous deux des logiciels et librairies spécifiques pour fonctionner. En effet l’interface de Nagios donc celle de Centreon sont accessibles via un navigateur Web, il nous a donc fallu installer un serveur LAMP avant d’installer quoi que ce soit. Pour l’installation du serveur LAMP je vous renvoie encore vers ce très bon tuto. Je précise que, afin d’installer tous les programmes et librairies, il faut paramétrer les dépôts de Debian de telle sorte que soient pris en compte les logiciels dit non officiels des dépôts multiverse. La marche à suivre ici.

1ère étape: Installation des librairies requises par Nagios:

Nagios est écrit dans un certain langage (HTML bien sur mais aussi Perl) et en utilise certains autres c’est pourquoi il faut installer le support de ces langages afin que le système puisse les interpréter.

aptitude install bind9-host dnsutils libbind9-40 libdns45 libisc45
libisccc40 libisccfg40 liblwres40 libradius1 qstat radiusclient1

Cette commande permet d’installer le support du protocole DNS de résolution de noms, le support d’un éventuel serveur Radius présent sur le réseau.

La commande ci dessous permet d’installer le support et le démon du protocole SNMP. Le protocole SNMP est un protocole réseau permettant la récupération d’informations sur les hôtes l’exécutant au sein d’un même réseau. Ces informations peuvent être de nature matérielles (Température, fréquence CPU,…) ou logicielle (disponibilité d’un service, configuration,…).

aptitude snmp snmpd
aptitude install rrdtool mailx librrds-perl libapache2-mod-php5
php5 php-pear php5-gd php5-ldap php5-snmp php5-gd

Ici on installe les librairies et correspondances PHP permettant de générer et de gérer des graphiques et des statistiques qui seront affichées dans Nagios. RRDtool en particulier est un outil de gestion de base de données RRD (round-Robin database) utilisé par de nombreux outils open source, tel que Nagios, pour la sauvegarde de données cyclique, le tracé de graphiques et de données chronologiques. Cet outil a été créé pour superviser des données serveur, telles la bande passante et la température d’un processeur.

aptitude install libgd2-noxpm-dev libpng12-dev libjpeg62

pour installer les librairies permettant la création dynamique d’images. Ici ce seront les graphiques qui auront été créés grâce aux librairies installées à l’étape précédente.

Une fois que toutes les librairies et fonctions on été installées notre serveur peut maintenant interpréter et afficher toute information générée par Nagios. Il doit maintenant pouvoir stocker ces données.

2e étape: le paramétrage des utilisateurs

Pour plus de sécurité et de clarté nous avons créé un utilisateur nagios qui aura les droits nécessaires sur l’exécution du programme. Ceci se fait très facilement grâce aux commandes suivantes :

useradd nagios
passwd azerty

Une fois l’utilisateur créé nous allons créer un groupe nagios qui contiendra tous les utilisateurs autorisés à utiliser les fonctions et bases de Nagios :

groupadd nagiosgrp
usermod -G nagiosgrp nagios
usermod -G nagiosgrp www-data

Nous disposons désormais d’un groupe nagiosgrp contenant les utilisateurs nagios et www-data (utilisateur utilisé par le serveur Apache).

3e étape: l’installation de Nagios et de ses plug ins

Premièrement on récupère les sources à l’aide de la commande wget via ces deux adresses :

http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.2.0/nagios-3.2.0.tar.gz

http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.14/nagios-plugins-1.4.14.tar.gz

Ensuite on compile et on installe Nagios de manière assez classique :

tar -zxvf nagios-3.2.0.tar.gz
cd nagios-3.2.0
./configure --with-command-group=nagiosgrp
make all
make install
make install-config
make install-commandmode
make install-init
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Pour administrer Nagios on doit ensuite installer l’interface Web et définir une règle d’accès à cette interface. Les droits d’accès de l’interface web se gèrent avec htpasswd qui est un utilitaire fournit avec le serveur Apache. Ici on définit l’utilisateur nagiosadmin .

make install-webconf
htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

On recharge ensuite le serveur Apache afin qu’il prenne tous les changements en compte.

">/etc/init.d/apache2 restart

Une fois Nagios installé on peut maintenant installer ses plug-ins :

tar -zxvf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.13/
./configure --with-nagios-group=nagios
make
make install

Enfin pour terminer l’installation de Nagios on effectue un test de la configuration afin de déceler d’éventuels problèmes avant de lancer Nagios.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Si des erreurs sont rencontrées elle s’afficheront et nous pourront les corriger. Nous n’avons cependant rencontré aucunes erreurs à ce stade.

Nagios est maintenant entièrement installé et peut être démarré :

/etc/init.d/nagios start

L’interface de Nagios peut être affichée dans le navigateur à partir de l’adresse suivante : http://localhost/nagios/

4e étape: l’installation de NDO

Centreon et Nagios vont fonctionner conjointement à l’aide d’un module et d’une base de données commune. Ceci se fait à l’aide d’un module nommé NDO dont le fonctionnement est résumé dans le schéma suivant :

NDO est composé de deux modules: NDOMOD et NDO2DB. NDOMOD doit être lancé sur le serveur Nagios et permet de récupérer les informations remontées par Nagios pour les transmettre via TCP (ou un socket Unix) vers NDO2DB. NDO2DB est un daemon qui écoute sur un port TCP (ou un socket Unix) et écrit les données reçues dans une base de donnée (MySQL ou PgSQL). Le module ndomod est chargé par Nagios automatiquement, ndo2db par contre nécessite un script d’init .

On doit d’abord créer une base de données commune à NDO et Nagios sur laquelle les utilisateurs auront tous les droits:

mysqladmin -u root -p create ndo
mysql -u root -p
mysql> GRANT ALL ON ndo.* TO "ndo"@localhost IDENTIFIED BY "ndo";
mysql>exit

Ensuite on peut commencer à installer NDOutils :

wget http://prdownloads.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz
tar xzf ndoutils-1.4b9.tar.gz
cd ndoutils-1.4b9
./configure --with-mysql-lib=/usr/lib/mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagiosgrp
make

L’instruction make install n’étant pas possible ici nous avons du effectuer son équivalent pas à pas :

cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db
cp src/log2ndo /usr/local/nagios/bin
cp src/file2sock /usr/local/nagios/bin

On ajoute une ligne supplémentaire au fichier nagios.cfg

vim /usr/local/nagios/etc/nagios.cfg

ajouter :

event_broker=1
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg

On copie ensuite les fichiers de configuration nécessaires dans le répertoire de Nagios

cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg

On doit ensuite éditer les 2 fichiers et modifier les paramètres pour que cela correspondent aux utilisateurs et à l’installation de Nagios précédemment effectuée.

On définit les droits sur les fichiers :

chmod 774 /usr/local/nagios/bin/ndo*
chown nagios:nagiosgrp /usr/local/nagios/bin/*
chown nagios:nagiosgrp /usr/local/nagios/etc/ndo*

Pour finir on remplit, à l’aide du script fourni, la table que l’on a créée au début de l’installation

cd db/
./installdb -u ndo -p ndo -h localhost -d ndo

On charge ensuite les services

/etc/init.d/ndo2db start
/etc/init.d/nagios restart

On peut maintenant passer l’installation de Centreon.

5e étape: l’installation de Centreon

On récupère les sources, on les décompresse et on lance le script d’installation. L’installation de Centreon est entièrement automatisée est très simple, cependant, l’assistant d’installation étant assez long nous avons préféré le joindre en annexe.

L’installation consiste principalement à communiquer à Centreon les différents chemins vers les fonctions dont il aura besoin, définir des droits et mettre à jour le module PEAR pour l’affichage et la génération de graphes.

On crée ensuite une base de données à partir du script fourni dans les sources de Centreon et on lui assigne les droits nécessaires.

cd www/install/
mysql -u root -p ndo < ./createNDODB.sql
mysql -u root -p
mysql> GRANT SELECT , INSERT , UPDATE , DELETE ON ndo.* TO "ndo@localhost" mysql> IDENTIFIED BY "ndo";
mysql> FLUSH PRIVILEGES;
mysql> exit

Une fois l’installation terminée il faut se rendre sur l’interface Web à l’adresse http://localhost/centreon ou un assistant graphique va prendre le relais pour terminer l’installation. La fin de l’installation n’est qu’une étape d’inventaire afin de vérifier que tous les fichiers requis sont à leur place. Cependant, deux étapes sont importantes : ce sont les étapes de configuration de l’utilisateur et de la base de données.

Ici on entre le mot de passe pour les bases de donnés propres à Centreon.

Enfin on entre les paramètres d’utilisateur pour l’accès à l’interface de Centreon ainsi que les informations sur l’administrateur.

L’installation de Nagios/Centreon est maintenant terminée et la solution de supervision est totalement opérationnelle. On doit maintenant ajouter des hôtes et des services à surveiller. Pour cela je vous conseille la recherche sur le net ou peut être, qui sait, un futur tuto !

Articles Similaires: