Le serveur de supervision libre – PART 3

Date: 20/01/2009 | Catégories: Nagios,Open-source,Reseau,Systeme | Tags: ,,,,

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

PART 1 - Installation du système d’exploitation GNU/Linux
PART 2 - Installation de Nagios
PART 3 - Installation de Centreon
PART 4 - Installation de Cacti

Centreon offre à Nagios une nouvelle interface et lui apporte de nouvelles fonctionnalités. Il va rendre la configuration de Nagios plus facile et d’avoir 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 soit de commenter/archiver voir 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.


Installation de la base de donnée NDO

Afin de communiquer entre eux, Nagios et Centreon utilise une base de donnée commune (NDO). Nous allons commencer par créer cette base de donnée 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

Installation du plugin NDO pour Nagios 3

De base, Nagios n’écrit pas les informations sur sa configuration dans la base de donnée 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ée choisie (MySQL ou PgSQL).

NDOUtils.pdf (page 9 de 15).jpg

Pour que le système fonctionne, il faut donc que NDOMOD soit chargé par Nagios au démmarrage et que le daemon NDO2DB soit lancé en tache 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 faite 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…

PS: dans mon cas j’ai rencontré une erreur lors de l’installation de la base de donnée (./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’a lancer 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.

Installation de Centreon

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

Note: Les screenshots de ce paragraphe ont été fait à partir de la version 2.0 de Centreon. Il se peut qu'il y ait des changement 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 suivant l’exemple suivant (j'ai juste copié les lignes ou 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ée 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 ce rendre à l’URL suivante pour finaliser l’installation par l’interface Web:

http://<adresseIPserveur>/centreon/

REMARQUE: ne pas oublier le / à la fin…

Puis suivre les étapes suivantes:

Centreon Setup Wizard-1.jpg
Centreon Setup Wizard-2.jpg
Centreon Setup Wizard-3.jpg
Centreon Setup Wizard-4.jpg
Centreon Setup Wizard-5.jpg
Centreon Setup Wizard-6.jpg
Centreon Setup Wizard-7.jpg
Centreon Setup Wizard-8.jpg
Centreon Setup Wizard-9.jpg
Centreon Setup Wizard-10.jpg
Centreon Setup Wizard-11.jpg
Centreon Setup Wizard-12.jpg

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

Centreon - IT & Network Monitoring.jpg

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.

Centreon - IT & Network Monitoring-1.jpg

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

Centreon - IT & Network Monitoring-11.jpg

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

Centreon - IT & Network Monitoring-3.jpg

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.

Centreon - IT & Network Monitoring-12.jpg
Saisir la configuration suivante:
  • Socket type: unixsocket
  • Output: /usr/local/nagios/var/ndo.sock
  • Buffer File: /usr/local/nagios/var/ndomod.tmp
Centreon - IT & Network Monitoring-15.jpg
En revenant à la page principale, le message d’erreur a dû disparaître:
Centreon - IT & Network Monitoring-4.jpg

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

Centreon - IT & Network Monitoring-5.jpg

Ainsi que les 8 services définis:

Centreon - IT & Network Monitoring-6.jpg

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 compatible avec un écriture qui va être faite par Centreon (donc avec l'utilisateur www-data):

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

Nagios reste le coeur 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é dans l'interface de supervision de Centreon.

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

Centreon - IT & Network Monitoring-9.jpg

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

Centreon - IT & Network Monitoring-10.jpg

Cette action est a répéter a 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 ce 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:

Centreon - IT & Network Monitoring-14.jpg

Importation d’une configuration Nagios vers Centreon

Si vous avez déjà une configuration existantes avec des hosts, services, groupes ou autres défini 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.

Des problèmes ?

Si vous avez un problème avec NDO, je vous conseille la lecture de ce billet qui devrait vous aider à résoudre tous vos problèmes. N'oubliez pas de consulter également la page dédiée à la supervision sur ce blog qui regroupe les billets sur ce vaste sujet.