Auteur:
NicoLargo

Date:
18/02/2009

Catégories:
Open-source
Systeme

Tags:



Pour en finir avec NDO

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.

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 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.

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: unux
  • 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

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:

Centreon - IT & Network Monitoring-9.jpg

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

Centreon - IT & Network Monitoring-10.jpg

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:

Centreon - IT & Network Monitoring-14.jpg

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.
 

20 commentaires


  1. ben, le 19/02/2009 (#5999)

    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


  2. NicoLargo, le 19/02/2009 (#6000)

    Ce billet n’est a suivre que si vous avez des problèmes après les parties 2 et 3 du tuto.


  3. GUILLIER Quentin, le 2/03/2009 (#6074)

    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 ??


  4. julow, le 3/03/2009 (#6080)

    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?


  5. Slyers, le 6/03/2009 (#6098)

    @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


  6. Pierrot, le 25/03/2009 (#6185)

    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… :-(


  7. malcolm, le 23/04/2009 (#6299)

    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!


  8. Fouki, le 27/05/2009 (#6450)

    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 !


  9. Pierrot, le 4/06/2009 (#6497)

    Bonjour Nico, une petite question :
    faut-il installer Centreon avant NDO
    ou bien est-ce que l’on peu l’installer après ?


  10. tounarouz, le 8/06/2009 (#6516)

    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 ,


  11. tounarouz, le 8/06/2009 (#6518)

    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


  12. bigtekno, le 15/06/2009 (#6538)

    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)


  13. Bozx, le 1/07/2009 (#6617)

    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


  14. Bozx, le 2/07/2009 (#6622)

    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.


  15. FolKein, le 7/10/2009 (#6932)

    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


  16. sawsen, le 3/12/2009 (#7312)

    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


  17. zeskey, le 23/12/2009 (#7394)

    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


  18. neeemooo, le 20/04/2010 (#7994)

    je suis ce tuto mais ça ne fonctionne même pas, POURQUOI :’(

    # /etc/init.d/ndo2db start
    bash: /etc/init.d/ndo2db : bin/sh : mauvais interpréteur: Aucun fichier ou dossier de ce type


  19. soum, le 28/05/2010 (#8321)

    bonjour,
    le “/etc/init.d/ndo2db start” marche mais quand je regarde les logs ça me met:”[1275002930] ndomod: Still unable to reconnect to data sink. 153761 items lost, 5000 queued items to flush.

    quelqu’un peut m’aider?????
    merci”


  20. Pierro, le 2/06/2010 (#8342)

    Bonsoir,

    Je suis sur un Centos 5.5 avec Nagios 3.2.1 et NDO 1.4b9

    suite à ce message d’erreur : “Starting ndo:Support for the specified database server is either not yet supported, or was not found on your system.”

    j’ai fait l’installation de : “yum install mysql-devel”

    Puis repris :
    # 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*

    En tous cas MERCI NICO. je suis un fan


Laisser un message

Les informations saisies resteront privées.