Vu le nombre de messages sur le forum concernant l'installation et la configuration de NDO (la petite boite qui fait le lien entre Nagios et Centreon), je me devais de rédiger ce billet sur le sujet. Nous allons donc voir étape par étape les choses à vérifier et à faire pour faire fonctionner ce bouzin (oui, oui c'est un bouzin).
Dans la suite de ce billet, je pars sur l'hypothése ou vous avez installé Nagios et Centreon en suivant cette série de billets.
NDO c'est quoi ?
NDO est un module additionnel permettant à Nagios d'écrire dans une base de données l'état des machines et services à superviser.
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 recues dans une base de donnée (MySQL ou PgSQL).
Compilation de NDO
Le plugin est a récupérer à l'adresse suivante: http://www.nagios.org/download/addons/ ou en saisissant les commandes suivantes:
# sudo -s
# cd /usr/src
# wget http://dfn.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz
Remarque: la version disponible au moment de l'écriture de ce billet est la 1.4b7 (à modifier par vos soins).
On lance la compilation pour une utilisation d'une base de donnée MySQL:
# tar zxvf ndoutils-1.4b7.tar.gz
# cd ndoutils-1.4b7
# ./configure --disable-pgsql --with-mysql-lib=/usr/lib/mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagiosgrp
# make
La compilation doit se faire sans erreur...
Installation de NDO
NDO ne dispose pas d'un "installateur" standard, il faut donc saisir les commandes suivantes (toujours en mode root):
# cd /usr/src/ndoutils-1.4b7
# cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
# cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db
On écrase les droits par défaut de ces fichiers:
# chown nagios:nagiosgrp /usr/local/nagios/bin/ndo*# chmod 774 /usr/local/nagios/bin/ndo*
Configuration de la base de donnée MySQL
Avant que NDO2DB ne puisse écrire des informations dans la base de donnée, il faut créer et configurer cette dernière.
Création de la base de données MySQL NDO:
# 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
Puis on la configure:
# cd /usr/src/ndoutils-1.4b7/db# ./installdb -u ndouser -p ndopassword -h localhost -d ndo
… Table ‘nagios.nagis_dbversion’ doesn’t exist at ./installdb line 51…
Remarque: vous pouvez ignorer l'erreur.
Configuration de NDO
La configuration de NDO se fait par deux fichiers:
- ndomod.cfg : configuration de NDOMOD
- ndo2db.cfg: configuration de NDO2DB
Leux fichiers doivent être initialisés:
# cp config/ndomod.cfg /usr/local/nagios/etc/# cp config/ndo2db.cfg /usr/local/nagios/etc/
On leurs donne les droits:
# chown nagios:nagiosgrp /usr/local/nagios/etc/ndo*
Puis on les édite de la manière suivante:
# 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
et:
# vi /usr/local/nagios/etc/ndo2db.cfg
ndo2db_user=nagios
ndo2db_group=nagiosgrp
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
Configuration de Nagios
Nous allons configurer Nagios pour qu'il passe les informations automatiquement à NDOMOD. Pour celà, il faut éditer le fichier /usr/local/nagios/etc/nagios.cfg et y ajouter les 2 lignes suivantes:
# 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
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…
Automatisation du lancement de NDO
NDO n'est pas fourni avec un script de démarrage automatique (au démarrage du serveur). Voici donc un procédure à suivre pour une installation sous GNU/Linux Ubuntu (script à adapter à votre distribution).
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
Test de NDO + Nagios
Pour que votre configuration soit prise en compte, il faut lancer NDO et relancer Nagios:
# /etc/init.d/ndo2db start
# /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.
Remarque: vous pouvez ignorer les messages: "No directory, logging in with HOME=/"
Si tout se passe bien, Nagios devrait commencer à écrire les informations dans la base de donnée MySQL. Pour vous en assurer, allez voir du coté du fichier de log si vous avez les messages suivants:
tail -f /usr/local/nagios/var/nagios.log
...
[1234886298] Auto-save of retention data completed successfully.
...
Configuration de NDO pour Centreon
Passons maintenant aux choses sérieuses avec la configuration de NDO pour Centreon. Il faut commencer par modifier la base de donnée MySQL pour prendre en compte Centreon (quand je vous disais bouzin...):
# 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
Nous allons maintenant générer les fichiers de configuration NDO par Centreon. Pour celà, 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: unux
- Socket name: /usr/local/nagios/var/ndo.sock

Modifier le login/password pour l’accès à la base de donnée 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.

- Socket type: unixsocket
- Output: /usr/local/nagios/var/ndo.sock
- Buffer File: /usr/local/nagios/var/ndomod.tmp

Enfin nous allons exporter la configuration de Centreon vers Nagios (et donc normalement écraser les anciens fichiers de configuration de NDO).
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 664 /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:

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

Il faut également penser à vérifier que l'exportation vers le répertoire de Nagios se passe sans problème (il ne faut PAS de message de type KO dans l'écran précédant).
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:

Et voilà, vous devriez avoir un système opérationnel. En cas de problème pour suivre cette procédure, vous pouvez toujours poser une question sur le forum.







Open-source

Abonnez-vous
17 commentaires au billet “Pour en finir avec NDO”
bonjour
je voulais savoir si il fallait suivre ce billet après la part 2 car la part 3 commence avec l'installation de ndoutils puis après enchainer sur l'installation de centreon ou bien faire d'abord toute la parti 3 puis ensuite suivre ce billet
cordialement
Ce billet n'est a suivre que si vous avez des problèmes après les parties 2 et 3 du tuto.
Je ne comprend pas, j'ai tout exploré, et quand je fais mon exportation, tous mes modules sont en KO, et j'ai rien de plus, seulement ça.
Les permissions sont les bonnes...je ne sais plus quoi faire ??
Bonjour! Lors de l'exécution de :
GRANT SELECT , INSERT , UPDATE , DELETE ON ndo . * TO ndouser@localhost IDENTIFIED BY ndopassword;
Je me retrouve avec l'erreur :
ERROR 1064 (42000) : you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax near 'ndopassword' at line 1...
Kezako?
@julow: pas d'espace dans " ndo.* "
identified by 'ndopassword' (bien mettre les apostrophes)
Ca s'est purement du SQL, c'est pas un problème de Centréon.
@Guillier Que(ntin?): même problème que toi...
Quand tu fais, en ligne de commandes:
/usr/local/naigos/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
As-tu des erreurs?
Moi je n'en ai pas dans Centréon, par contre, j'ai des fichiers manquant quand je la fais en ligne de commandes...
Merci
Bonsoir Nico, je ne comprend rien à la création de la database ndo
# 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
Comment je peux la supprimer car on me dit qu'elle existe déjà
Pourrais tu faire un copier coller de ce qu'il faut effectivement écrire dans le terminal pour créer correctement la bd mysql ndo.
Par avance Merci
je pense pouvoir me débrouiller tout seul pour la suite mais la je bloque vraiment...
Bonjour,
Petit soucis lors du démarrage de ndo2db!
Lorsque je lance la commande /etc/init.d/ndo2db start j'ai le message suivant:
starting ndo:support for the specified database server is either not yet supported, or not found on your system.
done.
j'ai suivis le tutoriel à la lettre. D'où peu venir le soucis?
Merci d'avance!
Merci beaucoup NicoLargo pour ce tuto spécifique à NDO.
J'éprouvais les plus grande difficultés à faire communiquer Nagios & Centreon. J'ai résolu mes problème en moins de 10min avec ce tuto.
Bonne continuation !
Bonjour Nico, une petite question :
faut-il installer Centreon avant NDO
ou bien est-ce que l'on peu l'installer après ?
Bonjour Nico , j'ai suivi vos billets qui m'ont beaucoup aidé, je les touvent super , merci Nico , mais je me suis arreter au niveau de la connection de la base de données ndo quand je suis sur centreon / home il m'affiche toujours le message ""Connection Error to NDO DataBase ! "" , alors que j'ai fais exactement ce que vous avez fait dans votre tutoriel,
Si vous avez une solution aidez moi , Merci a vous tous,
je suis en stage et j'ai comme projet de fin d'étude Nagios 3.0.2 , sous ubuntu 8.10 , sur VMware 6 ,
re bonjour
bon voila j'ai trouver le problème en poursuivant ce billet Merci Nico
voila mon prob j'avais une erreur au niveau de mysql -u root -p mysql
avant ça n'a pas marché , il me donne une erreur quand je tape la commande (((GRANT ALL ON ndo.* TO ndouser@localhost IDENTIFIED BY "ndopassword";)))
4 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ndopassword' at line 1
Mais aprés avoir bien remarqué j'ai tapé le (;) alors mnt le prob est corrigé
voila ce qui me donne : et ça marche
mysql> GRANT ALL ON ndo.* TO ndouser@localhost IDENTIFIED BY "ndopassword"
-> ;
Query OK, 0 rows affected (0.02 sec)
mysql> FLUSH PRIVILEGES ;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
@ bientot
je suis confronté à un problème avec l'install de l'ensemble nagios/centreon/ndo, j'ai installé par apt-get , et là je trouve pas l'équivalent de /usr/local/nagios/bin/ . car vai apt-get il s'installe sur /usr./share/nagios3.
moi c'est au moment de la copie de /ndomod-3x.o et ndo2db-3x à partir de /usr/lib/ndoutils/ndo2db-mysql-3x que je bloque.
# cp src/ndomod-3x /usr/local/nagios/bin/ndomod.o ( je cherche l'équivalent de cette ligne)
# cp src/ndo2db-3x src/ndo2db-3x /usr/local/nagios/bin/ndo2db ( je cherche l'équivalent de cette ligne)
Très bon Tuto, merci.
J'ai néanmoins un petit Pb qd je... '# /etc/init.d/ndo2db start'
Starting ndo:Support for the specified database server is either not yet supported, or was not found on your system.
done.
Je n'ai rien modifié dans le script que tu as fournis, dois je changer qlq chose ?
Merci
C bon ça fonctionne, cela venait de l'emplacement de mes lib/mysql , j'ai refait une compile avec cette option (--with-mysql-lib=/var/lib/mysql) et ça marche
# make clean
# ./configure --disable-pgsql --with-mysql-lib=/var/lib/mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagiosgrp
# make
#cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
#cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db
# chown nagios:nagiosgrp /usr/local/nagios/bin/ndo*
#chmod 774 /usr/local/nagios/bin/ndo*
# /etc/init.d/ndo2db start
done.
Bonjour,
J'ai suivi à la lettre le tuto mais lorsque j'exporte la configuration voila les erreurs :
Nagios Core 3.2.0
Copyright (c) 2009 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 08-12-2009
License: GPL
Website: http://www.nagios.org
Reading configuration data...
Read main config file okay...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/hosts.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/services.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/misccommands.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/checkcommands.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/contactgroups.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/contacts.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/hostgroups.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/servicegroups.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/timeperiods.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/escalations.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/dependencies.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/hostextinfo.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/serviceextinfo.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/meta_commands.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/meta_contact.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/meta_contactgroup.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/meta_dependencies.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/meta_escalations.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/meta_host.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/meta_hostgroup.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/meta_services.cfg'...
Processing object config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/meta_timeperiod.cfg'...
Error Could not expand member contacts specified in contactgroup (config file '/usr/local/centreon/filesGeneration/nagiosCFG/1/contactgroups.cfg', starting on line 26)
Error processing object config files!
***> The name of the main configuration file looks suspicious...
Make sure you are specifying the name of the MAIN configuration file on
the command line and not the name of another configuration file. The
main configuration file is typically '/usr/local/nagios/etc/nagios.cfg'
***> One or more problems was encountered while processing the config files...
Check your configuration file(s) to ensure that they contain valid
directives and data defintions. If you are upgrading from a previous
version of Nagios, you should be aware that some variables/definitions
may have been removed or modified in this version. Make sure to read
the HTML documentation regarding the config files, as well as the
'Whats New' section to find out what has changed.
Centreon : All configuration files copied with success.
Running configuration check... CONFIG ERROR! Restart aborted. Check your Nagios configuration
J'ai essayé de recommencer l'installe mais rien n'y fait.
Pouvez vous m'aider ?
Cordialement,
FolKein
bjr à tous,
au niveau de la configuration de centreon j'ai l'erreur suivante (sous configuaration/nagios)
Error Contact 'pfe pfe' has no service notification commands defined!
Error Contact 'pfe pfe' has no host notification commands defined!
Warning Contact 'pfe pfe' has no service notification time period defined!
Warning Contact 'pfe pfe' has no host notification time period defined!
quequn peu m'aider??????
s'il vous plai c tré urgen
merci d'avance et bonne journé à tous
merci pour tous ces tuto j'ai suivi tous tes billets pour insaller nagios et centreon nagios fonctionne a merveille cé pas le cas de centreon j'ai fini de le parametrer en ligne de commande mais lorsque je vais sur l'interface pour poursuivre l'installation tout les services sont ok sauf a l'etape "DATABASE CONFIGURATION" il me retourne ces erreurs las
MySQL version CRITICAL
Access denied for user 'root'@'localhost' (using password: NO)
MySQL InnoDB Engine status CRITICAL
Access denied for user 'root'@'localhost' (using password: NO)
si quelqu'un a une solution pour moi je lui en serai très reconnaissant merci d'avance j'utilise ubuntu 9.10 la version de centreon que j'ai installer est 2.1.4
Publier un commentaire
Utiliser
pour lier des documents à vos commentaires.
Pour des discutions techniques, merci d'utiliser le forum.