Le serveur de supervision libre (partie 3)

Installation de Centreon

Nicolas Hennion

Cela fait maintenant un petit moment que ce blog existe. Il aborde bien des sujets autour des logiciels libres, mais il y en a un qui suscite plus d'intérêt que les autres : la supervision système et réseau. La complexité de ces logiciels et la faible documentation francophone (bien que ce soit en train de changer) y sont sûrement pour quelque chose.

Je propose donc de commencer une série d'articles sur l'installation d'un serveur de supervision basé uniquement sur des solutions libres :

- Partie I - Installation du système d'exploitation GNU/Linux ;

- Partie II - Installation de Nagios ;

- Partie III - Installation de Centreon ;

- Partie IV - Installation de Cacti.

Cet article traitera de l'installation de Centreon.

N'hésitez pas à commenter cet article ! Commentez

- Titre : Le serveur de supervision libre (partie 3)

- Auteur : Nicolas Hennion

- Parution : 30 octobre 2013

- Licence : Le contenu de cet article est rédigé par nicolargo et est mis à disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transposé. Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright ® 2013 Developpez.com.

Sommaire

- I. Installation de Centreon

- I-A. Installation de la base de données NDO

- I-B. Installation du plugin NDO pour Nagios 3

- I-C. Installation de Centreon

- I-D. Exportation d'une configuration Centreon vers Nagios

- I-E. Importation d'une configuration Nagios vers Centreon

- I-F. Conclusions

I - Installation de Centreon

Les deux premiers billets de cette série nous ont permis d'installer le cœur de notre serveur de supervision : le logiciel Nagios. Nous allons donc maintenant nous occuper de l'enrobage : l'interface Web d'administration Centreon.

Centreon offre à Nagios une nouvelle interface et lui apporte de nouvelles fonctionnalités. Il va rendre la configuration de Nagios plus facile et offrir une interface graphique améliorée. C'est une interface qui pour moi n'est pas obligatoire, mais qui peut s'avérer utile dans certains cas :

- si une équipe doit gérer le serveur Nagios, il sera plus facile de les former en utilisant Centreon ;

- si vous êtes allergique aux fichiers de configuration au format texte ;

- si vous êtes un « accro » aux interfaces Web.

Attention toutefois, Centreon va générer des fichiers de configuration de Nagios à sa manière. Vous allez donc perdre tout le contrôle sur ces fichiers… Bref si vous êtes un administrateur système soigneux, qui prend soin de commenter/archiver, voire gérer en configuration ce type de fichiers, je vous conseille de passer votre chemin et d'attendre le prochain billet de cette série.

I-A - Installation de la base de données NDO

Afin de communiquer entre eux, Nagios et Centreon utilisent une base de données commune (NDO). Nous allons commencer par créer cette base de données sur notre serveur MySQL (installé dans la première partie de cette série de billets).

# mysqladmin -u root -p create ndo
# mysql -u root -p mysql
mysql> GRANT ALL ON ndo.* TO "ndouser"@"localhost" IDENTIFIED BY "ndopassword";
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit

I-B - Installation du plugin NDO pour Nagios 3

De base, Nagios n'écrit pas les informations sur sa configuration dans la base de données NDO. Pour cela, il faut installer un plugin : NDOUtils. Ce dernier est composé de deux briques : NDOMOD et NDO2DB. Le premier va prendre les événements à partir du daemon Nagios et les envoyer via une socket (TCP ou UNIX) vers le second qui va les convertir dans un format compatible avec la base de données choisie (MySQL ou PgSQL).

Pour que le système fonctionne, il faut donc que NDOMOD soit chargé par Nagios au démarrage et que le daemon NDO2DB soit lancé en tâche de fond. Nous allons voir ça dans ce paragraphe, mais commençons par installer les NDOUtils.

Le plugin étant en développement (version 1.5 au moment de l'écriture de ce billet), il faut faire l'installation à la main…

# sudo -s
# cd /usr/src
# wget http://dfn.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.5.tar.gz

Pensez à remplacer le lien de téléchargement des NDOutils (http://dfn.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.5.tar.gz) ainsi que la version (ndoutils-15.tar.gz au moment de la rédaction de ce billet) par la dernière version disponible (à chercher ici).

# tar zxvf ndoutils-1.5tar.gz
# cd ndoutils-1.5
# ./configure --disable-pgsql --with-mysql-lib=/usr/lib/mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagios
# make
# cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
# cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db
# vi /usr/local/nagios/etc/nagios.cfg
event_broker_options=-1
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
# cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
# vi /usr/local/nagios/etc/ndomod.cfg
instance_name=Central
output_type=unixsocket
output=/usr/local/nagios/var/ndo.sock
tcp_port=5668
output_buffer_items=5000
buffer_file=/usr/local/nagios/var/ndomod.tmp
# cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
# vi /usr/local/nagios/etc/ndo2db.cfg
ndo2db_user=nagios
ndo2db_group=nagios
socket_type=unix
socket_name=/usr/local/nagios/var/ndo.sock
tcp_port=5668
db_servertype=mysql
db_host=localhost
db_name=ndo
db_port=3306
db_prefix=nagios_
db_user=ndouser
db_pass=ndopassword
# chmod 774 /usr/local/nagios/bin/ndo*
# chown nagios:nagios /usr/local/nagios/bin/*
# chown nagios:nagios /usr/local/nagios/etc/ndo*

Attention, si vous faites un copier/coller pour ajouter les lignes de configuration dans le nagios.cfg, il faut faire attention à la ligne :

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

qui est sur une seule ligne et pas en deux lignes…

Puis on initialise la base de données MySQL :

# cd db
# ./installdb -u ndouser -p ndopassword -h localhost -d ndo
… Table ‘nagios.nagis_dbversion' doesn't exist at ./installdb line 51…

P.-S. Dans mon cas, j'ai rencontré une erreur lors de l'installation de la base de données (./installdb) mais sans conséquence sur le bon fonctionnement du système.

Pour automatiser le lancement de NDO au démarrage du serveur, il faut ajouter le script suivant dans le fichier /etc/init.d/ndo2db). Il faut le rendre exécutable :

# sudo chown root:root /etc/init.d/ndo2db
# sudo chmod 755 /etc/init.d/ndo2db

On automatise le lancement du processus ndo2db au démarrage du serveur :

# sudo update-rc.d ndo2db defaults

On lance ensuite NDO :

# /etc/init.d/ndo2db start

Il ne reste plus qu'à relancer Nagios :

# /etc/init.d/nagios restart
Running configuration check…done.
Stopping nagios: No directory, logging in with HOME=/
done.
Starting nagios:No directory, logging in with HOME=/
No directory, logging in with HOME=/
done.

I-C - Installation de Centreon

Passons maintenant aux choses sérieuses avec l'installation de Centreon version 2.3.8 sur notre serveur de supervision.

Les screenshots de ce paragraphe ont été faits à partir de la version 2.0 de Centreon. Il se peut qu'il y ait des changements de forme par rapport à la dernière version.

Nous allons commencer par récupérer la dernière version de Centreon sur le site officiel. Pensez à remplacer le lien de téléchargement de Centreon (http://download.centreon.com/index.php?id=144) ainsi que la version (centreon-2.3.8 au moment de la rédaction de ce billet) par la dernière version disponible.

# sudo -s
# cd /usr/src
# wget http://download.centreon.com/index.php?id=144
# tar zxvf centreon-2.3.8.tar.gz
# cd centreon-2.3.8

Il faut ensuite lancer l'assistant d'installation et répondre aux questions en s'inspirant de l'exemple suivant (j'ai juste copié les lignes où il faut une intervention de votre part) :

# ./install.sh -i
Do you accept GPL license ?
[y/n], default to [n]:
> y
Do you want to install : Centreon Web Front
[y/n], default to [n]:
> y
Do you want to install : Centreon Nagios Plugins
[y/n], default to [n]:
> y
Do you want to install : Centreon Snmp Traps process
[y/n], default to [n]:
> y
Do you want me to create this directory ? [/usr/local/centreon]
[y/n], default to [n]:> y
Path /usr/local/centreon OK
Do you want me to create this directory ? [/usr/local/centreon/log]
[y/n], default to [n]:> y
Do you want me to create this directory ? [/etc/centreon]
[y/n], default to [n]:> y
/usr/local/nagios/bin/nagios OK
Where is your NDO ndomod binary ?
default to [/usr/sbin/ndomod.o]> /usr/local/nagios/bin/ndomod.o
/usr/local/nagios/bin/ndomod.o OK
Do you want me to configure your sudo ? (WARNING)
[y/n], default to [n]:> y
Configuring Sudo OK
Do you want to add Centreon Apache sub configuration file ?
[y/n], default to [n]:> y
Create ‘/etc/apache2/conf.d/centreon.conf' OK
Configuring Apache OK
Do you want to reload your Apache ?
[y/n], default to [n]:> y
Reloading Apache service OK
Do you want me to create this directory ? [/var/run/centreon]
[y/n], default to [n]:> y
Path /var/run/centreon OK
Do you want me to create this directory ? [/var/lib/centreon]
[y/n], default to [n]:> y
Path /var/lib/centreon OK
Do you want me to install CentStorage init script ?
[y/n], default to [n]:> y
CentStorage init script installed OK
Do you want me to install CentStorage run level ?
[y/n], default to [n]:> y
Do you want me to install CentCore init script ?
[y/n], default to [n]:> y
CentCore init script installed OK
Do you want me to install CentCore run level ?
[y/n], default to [n]:> y
Do you want me to create this directory ? [/var/lib/centreon/centplugins]
[y/n], default to [n]:> y
Path /var/lib/centreon/centplugins OK

Un dernière étape (merci à WAtt pour l'information), consiste à modifier la base de données NDO pour qu'elle fonctionne de manière optimisée avec Centreon :

# cd /usr/src/centreon-2.0/www/install
# mysql -u root -p ndo < ./createNDODB.sql
# mysql -u root -p
mysql> GRANT SELECT , INSERT , UPDATE , DELETE ON `ndo` . * TO 'ndouser'@'localhost' IDENTIFIED BY 'ndopassword';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)
mysql> exit
# cd /usr/src/centreon-3.8/

On peut maintenant se rendre à l'URL suivante pour finaliser l'installation par l'interface Web :

http://<adresseIPserveur>/centreon/

Ne pas oublier le « / » à la fin…

Puis, les étapes suivantes :

L'installation est maintenant terminée. Vous devriez être redirigé vers la page de connexion de Centreon (http://<adresseIPserveur>/centreon/).

Le message d'erreur suivant devrait apparaître : « Connection Error to NDO DataBase ! ».

C'est normal, il faut maintenant configurer Centreon pour qu'il puisse se connecter avec la base de données NDO.

Pour cela, il faut aller dans le menu Configuration/Centreon, puis cliquer sur le lien ndo2db.cfg dans le menu de gauche et cliquer sur le lien principal.

Saisir la configuration suivante dans l'onglet General (Socket type : Unix et fichier socket /usr/local/nagios/var/ndo.sock) :

- Socket type: unix ;

- Socket name: /usr/local/nagios/var/ndo.sock

Modifier le login/password pour l'accès à la base de données NDO (ndouser/ndopassword) :

Il faut ensuite aller dans le menu Configuration/Centreon, puis cliquer sur le lien ndomod.cfg dans le menu de gauche et cliquer sur le lien principal.

Saisir la configuration suivante :

- Socket type: unixsocket ;

- Output: /usr/local/nagios/var/ndo.sock ;

- Buffer File: /usr/local/nagios/var/ndomod.tmp.

En revenant à la page principale, le message d'erreur a dû disparaître :

En allant dans le menu Monitoring/Hosts Groups Summary vous devriez trouver la supervision de votre serveur Nagios (défini par défaut lors de l'installation de Nagios) :

Ainsi que les huit services définis :

I-D - Exportation d'une configuration Centreon vers Nagios

La première chose à faire est de vérifier que les droits du répertoire /usr/local/nagios/etc (et de tout ce qui a dessous) sont compatibles avec une écriture qui va être faite par Centreon (donc avec l'utilisateur www-data) :

# chmod -R 774 /usr/local/nagios/etc

Nagios reste le cœur de notre système de supervision. Ainsi quand un host/service est créé dans l'interface de Centreon (menu configuration/Hosts/Add), il faut ensuite exporter cette nouvelle configuration pour qu'elle soit prise en compte par Nagios et donc affichée dans l'interface de supervision de Centreon.

Il faut pour cela se rendre dans le menu Configuration/Nagios et saisir le formulaire suivant :

Le résultat de la commande doit être le suivant :

Cette action est à répéter à chaque fois que vous souhaitez ajouter une configuration depuis Centreon vers Nagios.

Après quelques minutes, les informations sur l'état de vos machines/services devraient remonter dans Centreon à travers le module NDO. Pour vérifier que tout se passe bien à ce niveau, il faut se rendre dans le menu Monitoring/Event logs et vérifier qu'il n'y a pas d'erreur au niveau ndomod :

I-E - Importation d'une configuration Nagios vers Centreon

Si vous avez déjà une configuration existante avec des hosts, services, groupes ou autres définis dans votre serveur Nagios, il faut passer par une phase d'importation avant de les voir apparaître dans Centreon. En effet, si vous utilisez Nagios depuis un moment, il peut être utile d'importer la configuration existante dans Centreon. Pour cela il faut suivre une procédure simple, mais assez longue. Pour ne pas faire de copier/coller du Wiki de Centreon, reportez-vous à cette page pour consulter cette procédure.

I-F - Conclusions

L'équipe « Réseaux » de Developpez.com tient à remercier Nicolargo pour la rédaction de cet article. Retrouvez tous les articles de nicolargo sur cette page.

L'équipe de rédaction Developpez.com tient à remercier ClaudeLELOUP pour la relecture orthographique de cet article.

N'hésitez pas à commenter cet article ! Commentez