NConf, une interface Web pour Nagios

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

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

wget http://sourceforge.net/projects/nconf/files/nconf/1.2.6-0/nconf-1.2.6-0.tgz/download

On décompresse l'archive:

tar zxvf nconf-1.2.6-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:

http://adressedevotreserveur/nconf/INSTALL.php

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

  • scyrus

    Bonjour,

    Je viens d’installer NCONF juste après avoir installé Nagios 3.2.3 via le tuto de Nico et j’ai un petit problème…

    En faite, l’ajout d’hôte se fait bien via NCONF mais je ne le retrouve pas dans Nagios…

    J’ai essayé d’ajouter les 2lignes « cfg_dir… » dans nagios.cfg mais du coup nagios ne se lance plus après.

    Si quelqu’un peut m’aider 🙂
    Merci d’avance!

  • zecougar

    Bonjour,

    Tout d’abord merci pour les tuto très clair de ce site 😉
    Comme scyrus j’ai essayé d’installer NCONF en suivant le tuto. Tout semble ok mais l’ajout d’un host dans Nconf ne se retrouve pas dans Nagios.

    Les fichiers sont bien copiés dans /usr/local/nagios/etc/Default_collector mais rien à faire …

    J’ai modifié mon fichier nagios.cfg en ajoutant touts les fichiers de config comme ça :
    cfg_file=/usr/local/nagios/etc/Default_collector/hosts.cfg

    Mais là nagios ne veut plus se lancer : « CONFIG ERROR »

    une idée ?

    Merci 🙂

    • zecougar

      Bon je me répond puisque j’ai trouvé mon problème 😉

      En fait il faut bien modifier le fichier nagios.cfg et rajouter les lignes :
      cfg_dir=/usr/local/nagios/etc/global
      cfg_dir=/usr/local/nagios/etc/Default_collector

      Mais il faut aussi commenter toutes les autres lignes cfg_file et cfg_dir car sinon il y a duplications des configs ….

      😉

      • scyrus

        Bonjour,

        Merci pour ta réponse Zecougar :).
        Je vais tester cela dès Lundi matin!

        Grand merci à tous le monde
        Cdlt,

        Scyrus

      • scyrus

        Bonjour Zecougar,

        J’ai bien essayé de commenter toutes les autres lignes cfg_file et cfg_dir mais visiblement, mon Nagios reste toujours en erreur…

        Peux-tu m’éclairer un peu plus sur ceux que tu commente et ceux qu’ils ne le sont pas.. La marche à suivre ?

        Merci d’avance !
        Scyrus

      • RedOne

        salut, merci pour ta réponse

        le redémarrage de nogios s’effectue maintenant correctement mais il s’est avéré quand même qu’il y a duplication des configs sur tous les hosts, je m’explique :
        dans la colonne « Status Information » de nagios, tous mes hosts importent la configuration de mon serveur Nagios :

        Status Information

        DISK OK – free space: / 31590 MB (92% inode=94%):
        OK – Charge moyenne: 0.25, 0.37, 0.42
        PROCS OK: 0 processus avec ETAT = X,Z
        PING OK – Paquets perdus = 0%, RTA = 0.40 ms

        merci de m’aider si tu as une réponse.

  • nico

    salut,
    tout d’abord merci pour cette bible qu’est ton site.
    Sinon concernant, la mise en place de nconf, je précise juste qu’en ce qui me concerne j’ai du aussi modifier les autorisations pour /usr/local/bin, sinon l’interface n’a pas le droits d’exécuter la vérification de la conf et ne génère rien. (j’étais en nagios/nagios comme propriétaire)
    Donc un
    chown -R nagios:nagiosgrp /usr/local/nagios/bin

    Voila.
    Peut etre que avec les prérequis de ton install il n’y a pas de pb, enfin moi j’ai du passer par la.
    @+ et merci encore pour ton travail de qualité.
    Nicolas.

    • Bonsoir et merci pour le message.

      Si tu suis l’installation de mes billets le groupe est bien nagios et pas nagiosgrp.

      A+

  • cooltrane

    J’ai fait l’install nagios3 sous ubuntu avec les paquets de bases du dépot.

    nconf se lance, mais quand je lui fait générer les conf il me mets des erreurs : pas d’host défini existant, et pas de services.

    J’ai pourtant créer les services et les hosts dans nconf.

    plusieurs questions : j’ai remplacé dans ton script /usr/local/nagios/etc/ par /etc/nagios3/ où sont les confs nagios dans mon install c’est bien ça ?

    Autre question, j’ai déjà des fichiers de conf dans nagios je les récupèrent dans nconf comment ?

    Merci en tout cas pour ton blog qui est une vraie mine…

  • dali

    Bonjour,

    j’ai installé Nconf pour Nagios 3 selon votre guide mais lors de la mise en marche m’affiche le message suivant : »error accessing or executing nagios/icinga binary ‘/usr/local/nconf/bin/nagios’ cannot run the mandatory syntax check »

    Merci d’avance

  • isador999

    Bonjour,
    NCONF est Ok, mais comme le précise scyrus, aucune possibilité de voir les hôtes ajoutés, même après un redémarrage manuel.
    J’ai pourtant bien toutes les informations nécessaires dans Nconf, et il ne met pas Nagios en erreur.

    Es-tu sur de ta tâche planifiée crontab ?
    D’ailleurs je ne parviens pas à retrouver le fichier dans lequel le crontab a été défini.

    Merci pour tes billets en tout cas 😉

    PS : la technique de zecouguar ne change rien dans mon cas.

    • isador999

      En fait, c’est OK.
      Il fallait bidouiller un peu plus le nagios.cfg
      Comme quoi j’avais pas assez cherché avant de poster !

      • Akuma59

        salut , dit j’ais le même problème que toi mon NCONF et OK mes quand je vais dans nagios impossible de voir les hosts j’aurais aimé savoir quelle bidouillage tu a fait dans le « nagios.cfg » ^^ Merci

  • Laikz

    Bonjour Nico,

    Tout d’abord, un grand bravo pour ton blog qui me permet jour après jour d’évoluer dans le monde du monitoring système libre.

    Ensuite, je viens d’installer Nconf sur un serveur de test, tout fonctionne à peu près bien, hormis l’analyse de l’espace disque.

    Apparemment, c’est l’espace disque du serveur qui est pris en compte, et non celui des serveurs monitorés. Aurais-tu une idée de ce qu’il faut bidouiller pour y parvenir ?

    Merci.

    Laikz

  • Hello When I press a nconf « Generate Nagios config » get the error:
    Error accessing or executing Nagios / Icinga binary ‘/ usr / local / www / nconf / bin / nagios’.
    Cannot run the mandatory syntax check.
    In what may be the problem?
    (FreeBSD)

  • Casimir

    Merci à Nico pour ce tuto
    Je vois que je ne suis pas le seul a avoir le problème de  »
    Error accessing or executing Nagios / Icinga binary ‘/usr/local/nagios/bin’.
    Cannot run the mandatory syntax check. »

    Le chemin est valide donc pas besoin de le modifier dans le nconf.php.
    Le fichier .tar n’est pas généré non plus.

    Une idée ?

    • Pour le message « Error accessing or executing Nagios / Icinga binary ‘/usr/local/nagios/bin/nagios’. »
      Éditer le fichier /usr/local/nconf/config/nconf.php et assurez vous du bon chemin pour le binaire Nagios :
      define(‘NAGIOS_BIN’, ‘/usr/local/nagios/bin/nagios’);

  • Casimir

    Bon, je viens de trouver le problème dans le fichier nconf.php il faut bien indiquer le chemin COMPLET (binaire compris), maintenant la génération du fichier .tar fonctionne.

    Il me reste un problème c’est le script, il ne veut pas s’exécuter correctement pourtant il me parait pas trop mal. En exécutant les taches manuellement j’arrive a importer les nouveaux fichiers, mais bon …

  • Pgre

    Bonjour,

    Lors de la génération du fichier de config Nagios,j’ai le message suivant:

    Default_collector: Error generating config
    Nagios Core 3.2.3
    Copyright (c) 2009-2010 Nagios Core Development Team and Community Contributors
    Copyright (c) 1999-2009 Ethan Galstad
    Last Modified: 10-03-2010
    License: GPL

    Website: http://www.nagios.org
    Reading configuration data…
    Error: Cannot open main configuration file ‘/usr/local/nconf/temp/test/Default_collector.cfg’ for reading!
    Error processing main config file!

    • AeoK

      Bonjour,

      tes erreurs viennent d’un problème de droits et de propriétaire sur ton dossier nconf.

      Vérifie que tu ais bien nagios:nagios sur tes dossiers et fichiers et les droits en 755 au moins.
      Bonne journée.
      Pareil, j’espère que cela a pu t’aiguiller même si ta demande date.

      AeoK

  • barto

    slt

    merci pour tout tes Tuto qui me sont d’une grande aide:)

    je suis entrain d’installer nconf par contre au moment de la configuration du server web avec la commande « Alias » j’ai un message qui me dit

    -bash: Alias : commande introuvable

    aurais-tu une solution ?

    car ensuite il va falloir que je me prenne la tete avec nrpe …

    merci pour ton aide 🙂

    • AeoK

      Salut,
      je ne sais pas si cela est toujours d’actualité mais pour ton problème d’Alias :
      Alias n’est pas une commande à proprement parler mais il faut rajouter dans le fichier conf de votre httpd ou apache les informations de connexions web :
      par exemple dans /etc/httpd/conf.d/nconf.conf —>

      Alias /nconf /usr/local/nconf/

      Options Indexes
      AllowOverride AuthConfig Options
      Order allow,deny
      Allow from all

      un restart d’httpd : /etc/init.d/httpd restart

      et le tour est joué, vous pouvez accéder à l’interface de configuration de nConf.

      Bonne journée, en espérant que cela a pu vous aider même si le problème n’est plus d’actualité.

      AeoK

  • Adilomouk

    salut,

    Pour ceux qu’ont un problème avec nconf (génération de la configuration impossible). il faut télécharger la version nconf-1.6.0 et refaire l’installation de nconf.

    enjoy

  • RedOne

    bonjour tout le monde,
    comment puis-je enregistrer les modifs et sortir du mode texte après avoir saisi dans le crontab la commande suivante ?
    */5 * * * * /bin/bash /usr/local/nconf/ADD-ONS/deploy_local.sh 2>&1 > /dev/null
    j’ai essayé quelques commandes mais cela ne marche pas :
    :w
    ^wq
    ZZ
    j’ai vraiment besoin de votre aide, c’est la dernière étape qui me reste. MERCI

    • AeoK

      Tu est dans le crontab avec le mode de vi ?!
      normalement :
      shift + zz devrait être suffisant si tu es en root.
      Sinon :wq(!)

      Si tu as le mode nano : ctrl + x
      et yes 🙂
      Essaye cela et reviens vers nous si besoin.
      AeoK

      • RedOne

        merci beaucoup pour ta réponse, je viens de trouver la solution.
        en fait une fois la commande saisie, il faut simplement taper F2, puis « echap+y »
        je suis en mode vi.
        merci encore une fois 🙂

  • Malick

    Pour enregistrer et quitter on peut faire echap : W Q
    W = write et Q = quit

  • RedOne

    c’est retenu 🙂
    par contre je n’arrive pas à voir au niveau de Nagios mes 2 hosts que j’ai ajouter via Nconf, pourtant j’ai suivi le tuto à la lettre et j’ai le msg ci-dessous:

    Generating config:

    [INFO] Starting generate_config script
    [INFO] Ended generate_config script

    Running syntax check:

    Default_collector: Total Warning: 0 Total Errors: 0

    • AeoK

      Salut,

      as-tu bien renseigné dans la conf de Nagios :
      nagios.cfg : le chemin des services et hosts ajoutés depuis nConf ?!

      cfg_file=/usr/local/nagios/etc/Default_collector/hosts.cfg
      cfg_file=/usr/local/nagios/etc/Default_collector/services.cfg
      cfg_file=/usr/local/nagios/etc/Default_collector/advanced_services.cfg

      Pour moi par exemple, j’ai rajouté ces chemins + après restart de Nagios 🙂

      et dans le crontab :

      */2 * * * * /bin/bash /usr/local/nconf/ADD-ONS/deploy_local.sh 2>&1 > /dev/null

      • RedOne

        en fait je viens de vérifier le chemin : /usr/local/nagios/etc/
        il ne contient pas le sous dossier Default_collector et du coup les fichiers suivants :
        hosts.cfg
        services.cfg
        advanced_services.cfg

  • RedOne

    bonjour,
    après avoir renseigné le chemin des services et hosts ajoutés depuis nconf, j’ai redemarré Nagios et j’ai reçu l’erreur suivante :
    # /etc/init.d/nagios restart
    Running configuration check… CONFIG ERROR! Restart aborted. Check your Nagios configuration.
    merci pour votre aide.

  • RedOne

    la réponse à ma question existe dans un ancien commentaire ci-dessus :
    ==============================================
    zecougar, le 18/02/2011 (#11487)
    Bon je me répond puisque j’ai trouvé mon problème
    En fait il faut bien modifier le fichier nagios.cfg et rajouter les lignes :
    cfg_dir=/usr/local/nagios/etc/global
    cfg_dir=/usr/local/nagios/etc/Default_collector
    Mais il faut aussi commenter toutes les autres lignes cfg_file et cfg_dir car sinon il y a duplications des configs ….
    ==============================================
    le redémarrage de nogios s’effectue correctement mais il s’est avéré quand même qu’il y a duplication des configs sur tous les hosts, je m’explique :
    dans la colonne « Status Information » de nagios, tous mes hosts importent la configuration de mon serveur Nagios :

    Status Information

    DISK OK – free space: / 31590 MB (92% inode=94%):
    OK – Charge moyenne: 0.25, 0.37, 0.42
    PROCS OK: 0 processus avec ETAT = X,Z
    PING OK – Paquets perdus = 0%, RTA = 0.40 ms

  • Pingback: NConf | Pearltrees()