Installer nConf sur Debian 8
nConf est une application web permettant de générer la configuration de Nagios.
Dans mes précédents billets nous avons installé Adagios, qui lui aussi permet de configurer Nagios via son interface web.
Les deux ne peuvent pas être utilisés en même temps pour générer la configuration ( en tout cas je ne tenterai pas ), il faut faire un choix :
- Utiliser nConf pour la génération de la configuration de Nagios et Adagios pour son portail web qui servira de « dashboard » via l’onglet Status
- Utiliser Adagios pour la configuration
Installation
Prérequis :
apt-get install mysql-server php5-mysql service apache2 restart
Récupération des sources :
wget "http://downloads.sourceforge.net/project/nconf/nconf/1.3.0-0/nconf-1.3.0-0.tgz" tar xzvf nconf-1.3.0-0.tgz mv nconf /var/www/html/ chown www-data:www-data -R /var/www/html/nconf
Préparation de la base de donnée :
mysql -u root -p
CREATE DATABASE DBNAME; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON DBNAME.* TO 'DB_USER'@'localhost' IDENTIFIED BY 'DB_PASS';
mysql -u root -p nconf < /var/www/html/nconf/install/create_database.sql
Rendez vous sur http://votre.addr.ip/nconf/INSTALL.php pour lancer l’installation :
En cliquant sur Next on vous demandera les informations sur la base de donnée que nous venons de créer.
Sur la page d’après, vous devez laisser les paramètres par défaut. Sur celle d’aprés aussi, à moins que vous souhaitiez utiliser l’authentification via mysql.
A la fin de l’installation vous devrez supprimer les fichiers d’installation :
rm -rf /var/www/html/nconf/INSTALL* rm -rf /var/www/html/nconf/UPDATE*
Nous allons copier le binaire de nagios dans le dossier de nconf, cela servira à nconf pour tester la configuration avant de la déployer :
cp /usr/local/nagios/bin/nagios /var/www/html/nconf/bin/ chown www-data:www-data /var/www/html/nconf/bin/nagios
Automatiser le déploiement de la configuration
Dans le fichier /var/www/html/nconf/config/deployment.ini, il faut dé commenter la section LOCAL deployment et changer les target_file :
;; LOCAL deployment ;; [extract config] type = local source_file = "/var/www/html/nconf/output/NagiosConfig.tgz" target_file = "/tmp/" action = extract [copy collector config] type = local source_file = "/tmp/Default_collector/" target_file = "/usr/local/nagios/etc/Default_collector/" action = copy [copy global config] type = local source_file = "/tmp/global/" target_file = "/usr/local/nagios/etc/global/" action = copy reload_command = "sudo /etc/init.d/nagios reload"
Il faut maintenant créer les 2 répertoires de configurations dans le dossier de Nagios :
mkdir /usr/local/nagios/etc/Default_collector mkdir /usr/local/nagios/etc/global chown www-data:www-data Default_collector global
Il faut donner l’autorisation au serveur web de redémarrer Nagios ( via sudo ) :
visudo
Rajoutez la ligne :
www-data ALL=NOPASSWD: /etc/init.d/nagios reload
Configuration de Nagios
Nous devons indiquer à Nagios ou sont stockés les fichiers de configurations générés par nConf.
Dans le fichier /usr/local/nagios/etc/nagios.cfg
Il faut rajouter deux lignes à la fin du fichier :
cfg_dir=/usr/local/nagios/etc/Default_collector cfg_dir=/usr/local/nagios/etc/global
Pour ceux qui suivent mon tutoriel depuis le début, il faut supprimer la ligne d’Adagios ( cfg_dir=/usr/local/nagios/etc/adagios )
Ensuite il vous faut commenter les lignes 29 à 54, toutes celles qui font référence au cfg_file=/usr/local/nagios/etc/objects/
Premier pas avec nConf
Si vous avez suivi mon tutoriel, vous devriez aussi avoir PNP4Nagios d’installé.
La première chose à faire est donc de remettre les fonctions process-host-perfdata-file et process-service-perfdata-file que nous avions manuellement ajouté dans objects/commands.cfg. Vu que nous venons de désactiver ce fichier, nous devons le rajouter dans nconf.
Rendez vous dans « Miscommands », bouton Add et ajouter les 2 commandes :
Ensuite dans « Hosts » vous pouvez supprimer les 3 exemples winserver, hplj2605dn et linksys-srw224p.
Ensuite, rendez vous dans « Generate Nagios config », si aucun warning ou error n’apparaît vous pouvez cliquer sur Deploy
bonjour,
merci infiniment pour ce tutoriel complet 🙂
j’ai une question quand vous dites : »La première chose à faire est donc de remettre les fonctions process-host-perfdata-file et process-service-perfdata-file que nous avions manuellement ajouté dans objects/commands.cfg. Vu que nous venons de désactiver ce fichier, nous devons le rajouter dans nconf. »
Pourriez vous êtres plus explicite , parce que je suis un peu perdu là pourtant j’ai suivi tout les tutoriel jusque là.
Merci infiniment!!!
Bonjour,
Je prépare une mise à jour pour demain, promis 😉
Je viens de relire, et avec l’image qui montre ce qu’il faut faire, je pense que tu peux t’en sortir tout seul. 🙂
Merci, çà été effectivement le cas. Par contre , J’imagine que ce serait un peu trop vous demander (puisque je ne connais pas votre emploi du temps 🙂 ). Mais pourriez vous terminer la série de tutoriel? Je parle ici implémentation et la configuration des fichiers pour justement superviser le système donc vous parliez en introduction de la série? Déjà vous êtes l’une des rares personnes à s ‘être lancer dans se projet avec Debian 8 . Merci
De rien.
Pour la configuration du système à superviser, je ne comptais pas faire de tutoriel.
Il y a déjà pas mal d’article sur le net qui parle de ça.
Je compte d’abord terminer l’implémentation de PNP, Nagvis dans Adagios.
Aprés peut être que je donnerais 2-3 exemples de configuration, mais pas beaucoup plus.
Bonne chance 🙂
Bonjour,
J’ai bien suivi le tutoriel par contre quand j’essaye de générer la configuration Nagios, il m’affiche ce message d’erreur :
Error: Service has no hosts and/or service_description (config file ‘/var/www/html/nconf/temp/Default_collector/advanced_services.cfg’,
J’ai chercher sur internet mais je n’ai rien trouvé.
Est-ce que tu déjà rencontrer ce problème ?
Merci
Bonjour,
Apparemment tu as une erreur dans la configuration.
Peux tu me monter ton fichier « advanced_services.cfg » ?
Bonjour,
Le dossier /var/www/html/nconf/temp/ est vide.
Je viens de réussir à recréer le bug.
Pour le résoure, temporairement ajouter un host bidon et dans la configuration des services lui rajouter tous les advance services.
Aprés c’est OK.
Ou alors il suffit de supprimer aussi les advanced services.
Préparation de la base de donnée : à partir d’ici je suis bloqué je ne comprends pas pourquoi (oui j’avoue j’ai suivis le tuto en mode no brain)
DBHOST DB server
DBNAME DB name
DBUSER DB user name
DBPASS DB user password
Checks
Connect to DB FAILED
Refait le en mode brain ? 🙂
J’ai refait plusieurs fois l’installation en suivant à la lettre ton tuto ainsi que rechercher des informations sur Internet mais le problème est toujours présent.
hi, nconf sowns to me the following error:
[Tue Mar 15 20:29:49.803607 2016] [:error] [pid 11645] [client 192.168.1.7:53197] PHP Warning: Illegal string offset ‘type’ in /var/www/html/nconf/include/modules/deployment/class.deployment.php on line 99, referer: http://192.168.1.26/nconf/generate_config.php
[Tue Mar 15 20:29:49.803675 2016] [:error] [pid 11645] [client 192.168.1.7:53197] PHP Fatal error: Cannot unset string offsets in /var/www/html/nconf/include/modules/deployment/class.deployment.php on line 100, referer: http://192.168.1.26/nconf/generate_config.php
i follow this article to install it, anyone knows some solution? sorry for write in english but i don’t speak french
Do you have all requirements ? Do you fix permission ?
Bonjour,
Super tutoriel et merci encore.
Par contre je suis comme Dridri j’ai la même erreur et le dossier temp qui est vide.
Voici l’erreur exacte :
Error: Service has no hosts and/or service_description (config file ‘/var/www/html/nconf/temp/Default_collector/advanced_services.cfg’, starting on line 120)
Merci d’avance.
Salut,
Même réponse, tu as des services qui ne sont pas rattachés à des hotes, supprimer tout tes hosts / services et ressaie
Je viens de réussir à recréer le bug.
Pour le résoure, temporairement ajouter un host bidon et dans la configuration des services lui rajouter tous les advance services.
Aprés c’est OK.
Ou alors il suffit de supprimer aussi les advanced services.
Bonjour, comme pas mal de personnes j’ai l’erreur suivante :
– Error: Service has no hosts and/or service_description (config file ‘/var/www/html/nconf/temp/Default_collector/advanced_services.cfg’, starting on line 120)
J’ai supprimé tous les hosts et services de nconf mais rien n’y change ( le numéro d’erreur de ligne change).
Nabil dit avoir résolu le problème en dé-commentant la section « local deployement et en modifiant les targets. Cela a été fait comme dans le tuto, mais est-ce que la partie [copy nagios.cfg] doit aussi être décommenté ? Si oui, quel source et target doivent être utilisé car si c’est cela, je dois me montrer de source/target.
Dernièrement, ou la commande « mysql -u root -p nconf < /var/www/html/nconf/install/create_database.sql" doit-elle être effectué ?
Merci de bien vouloir me répondre, car la le service nagios ne démarre même plus …
Bonne soirée,
Cordialement,
Drapht
Salut,
Tu dis avoir supprimé tous les hosts et services, hors il doit en reste et pas forcement dans les catégories host ou services, peut être dans advanced services ou autre.
Le plus simple est d’aller voir manuellement le fichier ‘/var/www/html/nconf/temp/Default_collector/advanced_services.cfg’ pour voir ce que tu as oublié d’enlever dans la config de nconf.
Peux tu mettre ce fichier en ligne sur pastebin ou autre ?
Pour la commande mysql, n’importe ou..
Bonjour,
Le problème est que :
« /var/www/html/nconf/temp/Default_collector/advanced_services.cfg » n’existe pas et est complètement vide.
Je ne comprends pas.
Merci
Je viens de réussir à recréer le bug.
Pour le résoure, temporairement ajouter un host bidon et dans la configuration des services lui rajouter tous les advance services.
Aprés c’est OK.
Ou alors il suffit de supprimer aussi les advanced services.
Merci beaucoup, j’ai reussi a aller un peu plus loin ( en supprimant les advanced services ) mais j’ai une nouvelle erreur désormais :
http://puu.sh/oXnT0/88d8690343.png
Ca c’est un probléme de droit sur les répertoires, as tu bien appliquer les droits avec chown ?
C’est expliqué dans le tuto
C’est bon j’ai réussi, j’avais omis le chown Default-collector global et cela fonctionne 🙂 Je vais continuer maintenant, merci beaucoup de ton aide Zeuth ainsi que pour le tuto qui est top 🙂
Merci beaucoup
Bonjour Zeuth, j’ai un souci lors de la génération de la conf de Nagios avec nconf.
Error
Deployment not possible due to errors in configuration.
Error: Service has no hosts and/or service_description (config file ‘/var/www/html/nconf/temp/Default_collector/advanced_services.cfg’, starting on line 120)
j’ai pourtant tout fait comme dans ce tuto…
j’ai tenté d’ajouter un host tout bidon avec tous les advanced services ou sans les advanced services.
ou bien doit on aussi supprimer tous les advanced services créé par défaut?
un grand merci pour votre aide
Oui il faut tout virer de la configuration par défaut
Merci pour le Tuto, simple et rapide.
Je présice je suis sur une débian 8.2
J’avais aussi des problèmes.
J’ai simplement attribuer un compte user et un mot de passe à la ligne de commande Mysql :
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON nconf.* TO ‘usernconf’@’localhost’ IDENTIFIED BY ‘MotdePassePerso’;
J’ai bien attribué les droits en chmod 777 sur les répertoires :
chmod -R 777 /usr/local/nagios/etc/global/
chmod -R 777 /usr/local/nagios/etc/Default_collector/
chown www-data:www-data /usr/local/nagios/etc/global
chown www-data:www-data /usr/local/nagios/etc/Default_collector/
chown -R www-data:www-data /tmp/
J’ai supprimé les ligne local du fichier /var/www/html/nconf/config/deployment.ini pour les remplacé par celui du tuto.
Tout fonctionne nikel.
Patrick
Bonjour Zeuth,
Dans « Premier pas avec nConf », il est ecris « Rendez vous dans « Miscommands », bouton Add et ajouter les 2 commandes : »
Image ==> http://blog.jolos.fr/wp-content/uploads/2015/11/nconf-perfdata.png
Quel est la valeur exacte du champ « misc command line » ?
Bien cordialement,
Nicolas
Bonjour,
C’est écris dans le tuto
cf : La première chose à faire est donc de remettre les fonctions process-host-perfdata-file et process-service-perfdata-file que nous avions manuellement ajouté dans objects/commands.cfg