Utilisateurs de Nagios, votre rêve va bientôt se réaliser ! Une équipe Suisse travaille sur le saint Graal de la supervision système et réseau. En effet leur projet NConf vient répondre à un besoin récurrent des utilisateurs de Nagios: l’impossibilité d’administrer son serveur via une interface Web.
Nous allons dans ce billet tester la version 1.2.5 de NConf sur un serveur Nagios 3.1. Je pars sur l’hypothèse ou le serveur Nagios a été installé en suivant mes deux premiers tutos (1 et 2).
Installation de NConf
On commence par récupérer la dernière version disponible de NConf (la 1.2.5 au moment de l’écriture de ce billet).
wget http://puzzle.dl.sourceforge.net/sourceforge/nconf/nconf-1.2.5-0.tgz
On décompresse l’archive:
tar zxvf nconf-1.2.5-0.tgz
Puis on copie le répertoire nconf à la racine de son serveur Web et on change les droits:
sudo mv nconf /usr/local
sudo chown -R www-data:www-data /usr/local/nconf
Notes: les sous-répertoires suivants doivent avoir les droits en écriture pour l’utilisateur www-data:
./config
./output
./static_cfg
./temp
Création de la base de donnée
La prochaine étape consiste à créer une base de données dédiée ) NConf. Pour créer un base de donnée nommée nconf avec les droits pour l’utilisateur nconfuser (mot de passe: nconfpassword), il faut saisir les commandes suivantes sur son serveur MySQL:
# mysqladmin –user=root -p create nconf# mysql –user=root -p mysql
mysql> GRANT ALL ON nconf.* TO nconfuser@localhost IDENTIFIED BY ‘nconfpassword’;
mysql> flush privileges;
Configuration du serveur Web
Pour rendre accessible le répertoire /usr/local/nconf à partir de votre serveur Web, il faut ajouter le fichier de configuration /etc/apache2/conf.d/nconf.conf dans votre configuration Apache:
Alias /nconf /usr/local/nconf/
<Directory “/usr/local/nconf”>
Options Indexes
AllowOverride AuthConfig Options
Order allow,deny
Allow from all
</Directory>
Puis relancer Apache:
apache2ctl restart
Configuration de NConf
La fin de l’installation se fait via une interface Web. Il faut donc saisir l’URL suivante dans un navigateur:
Ce qui devrait afficher:

On clique sur le bouton Next.
On doit saisir les paramètres de la base de donnée préalablement créées:

On clique sur le bouton Next.
Le test de la BD doit être OK:

On clique sur le bouton Next.
On fixe les répertoires de Nconf et de Nagios (/usr/local/nagios/bin). Attention dans le champs NAGIOS BIN, il faut saisir le chemin complet vers le binaire de Nagios (/usr/local/nagios/bin/nagios) et pas seulement le répertoire comme je l’ai fait dans un premier temps dans cette capture d’écran…

On clique sur le bouton Next.
On fixe un mot de passe (adminpassword) pour l’accès à NConf:

On clique sur le bouton Next.
Le programme d’installation va vérifier la configuration (tout doit être OK):

On clique sur le bouton Finish.
On efface les fichier suivant:
sudo rm -r /usr/local/nconf/INSTALL /usr/local/nconf/INSTALL.php /usr/local/nconf/UPDATE /usr/local/nconf/UPDATE.php
Mise en place de la synchronisation avec Nagios
Comme NConf peut être hébergé sur une machine différente du serveur Nagios, l’importation de la configuration NCOnf vers Nagios doit se faire à la main ou par un script shell. Je préfére bien entendu cette deuxième méthode.
Avant tout, il faut vérifier que le répertoire Nagios à les bon droits en lecture et écriture pour être modifié par l’utilisateur www-data (utilisateur avec lequel le serveur Apache est lancé). Le plus simple est d’ajouter www-data au groupe nagiosgrp:
# vigr
nagiosgrp:x:1002:nagios,www-data
puis de mettre les bons droits au répertoire etc:
chown -R nagios:nagiosgrp /usr/local/nagios/etc
chmod 770 /usr/local/nagios/etc
J’ai ensuite modifié le script ADD-ONS/deploy-local.sh de la manière suivante:
#!/bin/bash
OUTPUT_DIR=”/usr/local/nconf/output/”
NAGIOS_DIR=”/usr/local/nagios/etc/”
TEMP_DIR=${NAGIOS_DIR}”import/”
CONF_ARCHIVE=”NagiosConfig.tgz”
if [ ! -e ${TEMP_DIR} ] ; then
mkdir -p ${TEMP_DIR}
fi
if [ ${OUTPUT_DIR}${CONF_ARCHIVE} -nt ${TEMP_DIR}${CONF_ARCHIVE} ] ; then
cp -p ${OUTPUT_DIR}${CONF_ARCHIVE} ${TEMP_DIR}${CONF_ARCHIVE}
tar -xf ${TEMP_DIR}${CONF_ARCHIVE} -C ${NAGIOS_DIR}
/etc/init.d/nagios reload
fi
exit
Il ne reste plus qu’a l’éxecuter de manière automatique (par exemple toutes les 5 minutes) via un crontab root:
# crontab -e
*/5 * * * * /bin/bash /usr/local/nconf/ADD-ONS/deploy_local.sh 2>&1 > /dev/null
Utilisation de NConf
La première chose à faire est de se connecter à l’interface Web et de s’authentifier (admin/adminpassword). La page suivante devrait s’afficher:

On va tester notre nouvelle interface en ajoutant un nouvel host dans Nagios. Pour cela on clique sur le menu “Hosts Add” de NConf:

On clique ensuite sur Submit.
On peut alors choisir les services à superviser (il est bien sûr possible d’ajouter des services via NConf):

On clique ensuite sur Submit.
Une dernière page s’affiche avec le résumé:

On clique sur Finish.
NConf vient ainsi d’ajouter ce nouvel host dans sa base de donnée. En cliquant maintenant sur le lien “Generate Nagios config“, on va générer les fichiers de configuration de Nagios dans un NagiosConfig.tgz se trouvant dans le répertoire /usr/local/nconf/output.

Il ne reste plus qu’a attendre le prochain lancement du script deploy-local.sh (dans les 5 minutes via crontab) pour que le host apparaisse dans Nagios:

Conclusion
Bien qu’en développement, NConf est très prometteur et comble le vide laissé par Nagios pour l’administration via une interface Web. L’idéal serait maintenant d’intégrer cette interface dans celle de Nagios (le hack ne doit pas être très difficile à faire) afin de ne pas avoir deux interfaces (NConf et Nagios).
A vous de tester maintenant…






Open-source

Abonnez-vous
30 commentaires au billet “NConf, une interface Web pour Nagios”
Quid de centreon ?
je l’utilise depuis pas mal de temps, je n’ai pas grand chose à lui reprocher …
@Jojo: Centreon est une surcouche de Nagios remplacant l’interface Web et apportant des fonctions d’administration. NConf est beaucoup plus léger et est un bon candidat pour une intégration dans l’interface de Nagios.
Merci pour l’info, ce projet merite que j’y jette un coup d’oeil.
Dans le même genre, Il existait déjà depuis pas mal de temps fruity pour Nagios 2 dont le developement est arreté, et maintenant Lilac (fork de fruity) pour Nagios 3 dont une version stable 1.0.2 est sortie au mois d’avril dernier.
Merci pr ce tuto. C’est compatible Nagios V2 ? Impossible de mettre la main sur le répertoire /bin/ dans la V2… :/
@Hwd: Je ne pense pas qu’il y est une imcompatibilité avec Nagios v2. Peux tu décrires un peu plus ton problème de répertoire /bin dans le forum. Je viens de créer un sou sforum pour NConf:
http://forum.nicolargo.com/viewforum.php?id=23
Le problème pour moi qui fait un peu de prod, c’est qu’on ne peut plus toucher aux fichiers de conf à la main sans voir ses modifs écrasées au déploiement suivant. Si Nconf résoud ce genre de choses, alors oui c’est le St Graal pour moi, sinon c’est à mettre au même niveau que tous les autres…
@JB: c’est vrai que moi aussi j’aimerai pouvoir faire les deux (ligne de commande + web). Pour l’instant ce n’est pas possible avec NConf car la fonction d’import de Nagios vers NConf n’est pas encore stable. Mais elle devrais l’être prochainement…
J’ai fais ça http://forum.nicolargo.com/viewtopic.php?id=405 si ça interesse quelqu’un
C’est exactement pourquoi je ne suis jamais passser a un outil de config web car je dois et je veux pouvoir éditer mes fichier de conf à la main
@lawl: je suis totalement d’accord avec toi. Si le/les administrateurs du serveur Nagios sont familiers avec l’environnement GNU/Linux, le mieux est de gérer ses fichiers de conf à la mimine. La solution d’une interface Web peut par contre être utile lors de l’administration d’u réseau par une équipe sous-traitante avec un turn over important au niveau des équipes…
Le top serait que Nconf et Nagios travaille ensemble ! Cela permettrait une meilleure intégration. Cependant, je suis également un fervent utilisateur de la ligne de commande (rien de plus efficace !) mais je vous rejoins sur le fait que l’interface d’origine de Nagios est un peu rebutante (avec des modifs CSS on peut cependant arriver à quelque chose de plus sympa).
Bonjour à tous,
Merci beaucoup pour ce tuto ! Par contre, pour mon cas ça ne fonctionne pas, je ne comprends rien ! Je m’explique au niveau de la conf Nagios c’est OK et de la conf Nconf c’est aussi OK ! Aucune erreur lors de Generate Nagios config ! Mais sur l’interface nagios je ne voit pas les machines définies sur Nconf. Je lance le script deploy_local.sh à la main même combat, ça ne fonctionne pas.
Merci d’avance de votre aide
@lino93: c’est surement un problème de droits… NConf va générer les fichiers de conf pour nagios dans le répertoire /usr/local/nconf/output , il faut donc dans un premier temps vérifier que tu as bien un fichier nommé NagiosConfig.tgz dans ce répertoire. Ensuite c’est le script deploy_local.sh qui fait un boulot assez simple: il prend ce tgz, il le copie dans le répertoire /usr/local/nagios/etc/import/ (il faut vérifier que les droits sont bons…) puis il lance un tar -xf pour décompresser le fichier /usr/local/nagios/etc/NagiosConfig.tgz dans /usr/local/nagios/etc/. Enfin il relance le process Nagios avec un /etc/init.d/nagios reload
PS: si tu n’arrives pas, tu peux tjrs poster ton pb sur le forum du blog dans la section NConf…
Merci pour tes infos ! J’ai vérifié l’ensemble des droits d’accès ça me semble correcte, sinon il ne copie pas effectivement les fichiers décompressés dans le répertoire /usr/local/nagios/etc/ mais le fichier NgaiosConfig.tgz est bien présent dans le répertoire /usr/local/nagios/etc/import/. J’ai observé que lorsque je lance Generate Nagios config il va chercher les fichiers de configuration dans Processing object config file ‘/usr/local/nconf/temp/Default_collector/ et dans rocessing object config file ‘/usr/local/nconf/temp/global/.
Voila ! Merci d’avance
Bonjour je voudrais savoir si il vallait mieux installer centreon ou nconfig, je debute dans nagios et je cherche un outil qui me permete d’ajouter et d’éditer des host simplement
merco
Bonjour, j’ai une erreur qui apparait lors de l’exportation.
“Error accessing or executing Nagios binary ‘/usr/local/nagios/bin/nagios’.
Cannot run the mandatory syntax check.”
En changeant la syntaxe pour les droits ça fonctionne parfaitement:
chown -R nagios:nagiosgrp /usr/local/nagios/
chmod 770 /usr/local/nagios/
Pour importer la conf de Nagios vers Nconf la première fois, faut-il absolulment le faire à la main ? Nconf prend pas en compte la conf actuelle de Nagios.
J’ai réussi a installer nagios et nconf par contre je n’arrive pas a faire la synchronisation.
Bonjour
Bon, j’ai installé Nagios et Nconf à l’aide de ton tuto, rien à faire, lorsque je veux générer les fichiers de conf il me dit : “Error accessing or executing Nagios binary”
Les droits m’ont l’air OK sur “.usr/local/nagios/bin” (nagios:nagiosgrp). Là je vois pas. une idée ?
Cordialement,
Deel.
Bonjour,
super ton tuto, j’ai un pb, il ne me semble pas possible d’affecter un service (check_*) sur un hostgroup ! est-ce normal ?
Merci
A++
Alasta
Bonjour,
Je viens de terminer un maquetage de nagios avec nconf intégré dans le répertoire de nagios. J’ai aussi effectué des modifications sur la fichier nagios.cfg afin qu’il prenne bien en compte la configuration importée. Je vais ensuite terminer l’installation de ndo2db et pnp4nagios pour que cela soit complet.
Dans l’idée, j’ai rassemblé tout ce qui travaille avec Nagios dans /usr/local/nagios, afin de pouvoir ensuite déployer facilement la configuration en faisant un .tgz
Si cela intéresse quelqu’un, je pourrai donner tout cela à Nico pour qu’il rende l’archive disponible.
Ca faisait longtemps que je l’attendais ça !
Bonjour,
super tuto, je n’ai rien trouvé pour charger la conf de mon nagios dans NCONF pour l’initialisé.
J’ai plus de 30 serveurs… je ne me vois refaire tout.
est-ce que quelqu’un à déjà peu charger la conf de nagios dans nConf ?
Bonjour,
Merci pour ce forum que je trouve trs sympa
si quelqu’un peut m’aider je suis dans le step 4 d’installation de NCONF
voila ce que me donne:
———————————————————————–
Check if config files are present
Create basic settings
Creating basic settings for NConf
copy config file (.file_accounts.php) FAILED
copy config file (authentication.php) FAILED
copy config file (main.php) FAILED
copy config file (mysql.php) FAILED
copy config file (nconf.php) FAILED
Check if your webserver can handle these:
Check if config/ is writable for your webserver
Check if config.orig is readable
———————————————————————-
Bonsoir,
As-tu regardé les droits des fichiers en question ?
Pour ma part, le répertoire config est en 755, et les fichiers qu’il contient sont en 644. Le user et le group sont ceux avec lequel s’exécute Apache.
Idem pour le répertoire config.orig
Hope this helps
bonjour!
je suis en plein exploration de NConf mais je rencotre un problème dans l’import Nagios NConf car il n’importe pas les hôtes que j’ajoute dans NConf pourtant tout est ok.
nota: dans mon rep /usr/local/nconf/output il existe bien les fichiers NagiosConfig.tgz et ces fichiers s’ajoute au fur et à mesure que j’ajoute un hôte mais comme ceci:
NagiosConfig.tgz NagiosConfig.tgz.1250288012
NagiosConfig.tgz.1250211626 NagiosConfig.tgz.1250330022
NagiosConfig.tgz.1250249443 NagiosConfig.tgz.1250330234
NagiosConfig.tgz.1250257485 NagiosConfig.tgz.1250333802
NagiosConfig.tgz.1250282371 NagiosConfig.tgz.1250333986
mais dans mon rep /usr/local/nagios/etc/import/ j’ai juste ceci: NagiosConfig.tgz
merci de m’aider
j’ai installé une version de ubuntu 8.10 après tous les prérequis pour déploiement de Nagios. Malheureusement, quand je tape apt-get install nagios3, j’ai le resultat ci-dessous:
root@supervision:~# apt-get install nagios3
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances
Lecture des informations d’état… Fait
E: Impossible de trouver le paquet nagios3
root@supervision:~#
quelqu’un peut-il me donner un coup de main
Salut
j’ai le même problème que Tenke Christ… Mes fichiers se génèrent bien mais il n’y a aucune synchro qui se fait..
est ce que quelqu’un aurrait une idée ?
Merci
@+
Stef
Bonjour,
je n’arrive pas à me connecter à la base de donnée lors de l’installation de nconf,
J’ai toujours l’erreur
“connect to DB FAILED
Could not connect: Access denied for user ‘nconfuser’@'localhost’ (using password: YES)”
savez-vous ce que je dois faire svp? sachant que j’ai éssayé en créant un autre mot de passe.
lors de l’installation de nconf au step1 il me met
NConf config files check FAILED
c’est du a quoi comment réglé se problème ?
Publier un commentaire
Utiliser
pour lier des documents à vos commentaires.
Pour des discutions techniques, merci d'utiliser le forum.