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 ! 1 commentaire