Installation de Nagvis, le plugin de visualisation pour Nagios

Nagvis est un plugin pour Nagios permettant d’apporter des fonctions de visualisations graphiques à Nagios, l’outil de supervision open-source.

Nous allons dans ce billet détailler l’installation et la configuration de Nagvis 1.3 pour une version de Nagios 3 préalablement installée et configurée.

Pré-requis

Avant de commencer, il faut s’assurer que votre configuration de Nagios est opérationnelle et intègre le plugin NDO. Si ce n’est pas le cas, je vous conseille la lecture de ces deux bilets:

Il faut également que le module PHP pour votre serveur Web Apache soit chargé, sinon:

sudo apt-get install apache2 libapache2-mod-php5

Enfin quelques librairie PHP sont nécessaires:

sudo apt-get install php5-gd php5-mysql

Si vous souhaitez utiliser la nouvelle fonction automap de Nagvis, il faut également installer Graphviz:

sudo apt-get install graphviz

Installation de Nagvis

On entre dans le vif du sujet avec l’installation de la version 1.3 (nightly build) de Nagvis. Nous allons partir des sources et les installer dans le répertoire de Nagios.

Les dernières versions de Nagvis sont disponibles à l’adresse suivante: http://www.nagvis.org/downloads

sudo -s

cd /usr/src

wget http://www.nagvis.org/share/nagvis-1.3-nightly.tar.gz

tar zxvf nagvis-1.3-nightly.tar.gz

mv nagvis-1.3-nightly /usr/local/nagios/share/nagvis

Configuration initiale de Nagvis

Tout est centralisé dans le fichier etc/nagvis.ini.php dont vous pouvez trouver un template dans etc/nagvis.ini.php-sample.

cd /usr/local/nagios/share/nagvis

cp etc/nagvis.ini.php-sample etc/nagvis.ini.php

vi etc/nagvis.ini.php

dbuser=”ndouser”

dbpassword=”ndopassword”

Il ne reste plus qu’a changer les droits sur les fichiers (en partant sur le principe ou votre serveur Web Apache est lancé avec l'utilisateur www-data):

chown -R www-data:www-data /usr/local/nagios/share/nagvis/

chmod 664 /usr/local/nagios/share/nagvis/etc/nagvis.ini.php

chmod 775 /usr/local/nagios/share/nagvis/nagvis/images/maps

chmod 664 /usr/local/nagios/share/nagvis/nagvis/images/maps/*

chmod 775 /usr/local/nagios/share/nagvis/etc/maps

chmod 664 /usr/local/nagios/share/nagvis/etc/maps/*

chmod 775 /usr/local/nagios/share/nagvis/var

chmod 664 /usr/local/nagios/share/nagvis/var/*

On peut alors lancer l’interface de configuration: http://localhost/nagios/nagvis/config.php

PS: changer localhost par l’adresse IP de votre serveur Nagios.

Celle-ci permet de configurer des “maps” (graphe) à travers une interface Web. Personnellement, je préfère la solution manuelle décrite ci-dessous.

Configuration des graphes

Ces graphes peuvent comporter des images de fonds, des icônes et des formes. Tout cela intégré dans un template.

Les images de fonds sont à mettre directement dans le répertoire /usr/local/nagios/share/nagvis/nagvis/images/maps/.

Nous allons commencer par ajouter des icônes (par exemple le pack Lemon) à notre configuration de Nagvis:

cd /usr/src

wget http://switch.dl.sourceforge.net/sourceforge/nagvis/NagVis-Iconset-Lemon-02.tar.gz

tar zxvf NagVis-Iconset-Lemon-02.tar.gz

cd lemon/nagvis/nagvis/images.iconsets

cp * /usr/local/nagios/share/nagvis/nagvis/images/iconsets/

chown -R www-data:www-data /usr/local/nagios/share/nagvis/

et voila pour les nouveaux icônes.

Idem pour les formes (exemple donné avec le pack Server-Dropline):

cd /usr/src

wget http://switch.dl.sourceforge.net/sourceforge/nagvis/NagVis-Shapes-Server-Dropline.tar.gz

tar zxvf NagVis-Shapes-Server-Dropline.tar.gz

cd shapes_dropline

cp * /usr/local/nagios/share/nagvis/nagvis/images/shapes/

chown -R www-data:www-data /usr/local/nagios/share/nagvis/

et voili pour les nouvelles formes.

et enfin pour ajouter des templates (skins) (exemple donné avec DarkGlass):

cd /usr/src

wget http://dfn.dl.sourceforge.net/sourceforge/nagvis/NagVis-Template-Darkglass-0.4.tar.gz

tar zxvf NagVis-Template-Darkglass-0.4.tar.gz

cd darkglass

cp -r nagvis /usr/local/nagios/share/nagvis/

chown -R www-data:www-data /usr/local/nagios/share/nagvis/

et voilo pour le nouveau template.

On peut maintenant passer à la création des maps proprement dite.

Création d’une première map

On peut créer ces fichiers “maps” dans le répertoire /usr/local/nagios/share/nagvis/etc/maps (un fichier par “map”). La syntaxe de ces fichiers est décrite sur la page suivante: http://www.nagvis.org/docs/1.3/map_config_format_description

Nous allons faire une première map très simple (juste avec notre serveur Nagios ):

cd /usr/local/nagios/share/nagvis/etc/maps

cp __automap.cfg firstmap.cfg

vi firstmap.cfg

# Definition de la map: firstmap

# On commence par les paramètres globaux

define global {

# Authentification (utilisation des comptes Nagios)

allow_user=EVERYONE

allow_for_config=nagiosadmin

# L’image de fond à utiliser

map_image=nagvis-demo.png

# Les icônes a utiliser

icon_set=lemon

}

Puis on s’assure que les droits d’accès sont bons pour ce fichier:

chown -R www-data:www-data /usr/local/nagios/share/nagvis/

Visualisation des graphes

C’est très simple, il suffit de saisir l’URL suivante:

http://localhost/nagios/nagvis/index.php?map=<mapname>

PS: changer localhost par l’adresse IP de votre serveur Nagios.

Ainsi, pour tester notre premier graphe: http://localhost/nagios/nagvis/index.php?map=firstmap

Vous devriez voir quelque chose comme cela:

Il suffit d’ajouter ces URL dans le menu gauche de Nagios (/usr/local/nagios/share/side.html) afin d’y accéder facilement depuis l’interface Web de Nagios. Attention, toutes mise à jour de Nagios écrasera le fichier side.html, pensez donc à en faire une sauvegarde.

Note:

J'ai rencontré l'erreur suivante lors de la visualisation des graphes:

nagiosDataNotUpToDate: NDOMy: NDO data to old (Backend ndomy_1)
NDO claims that Nagios did no status Update for more than "180" seconds. Make sure that Nagios and ndo2db are running

J'ai posé la question sur un forum, j'attend la réponse... Pour passer outre le problème j'ai commenté les 2 lignes suivantes dans le fichier /usr/local/nagios/share/nagvis/nagvis/includes/classes/GlobalBackend-ndomy.php:

// $FRONTEND = new GlobalPage($this->MAINCFG,Array('languageRoot'=>'backend:ndomy'));
// $FRONTEND->messageToUser('ERROR', 'nagiosDataNotUpToDate', 'BACKENDID~'.$this->backendId.' ,TIMEWITHOUTUPDATE~'.$this->MAINCFG->getValue('backend_'.$backendId,  'maxtimewithoutupdate'));

Fin de la note.

Quelques exemples de graphes

Voici quelques exemples de graphes que l'on peut faire avec Nagvis:

Pas mal non ? je sens que les chefs vont bien aimer...

  • Faust52

    Bonjour tout le monde, je me retrouve dans le même cas de figure que Poumba, j’ai modifié le “default” par “Central” comme c’était dans mon fichier ndomod.cfg et le problème reste le même, je n’ai pas accès :

    backendInstanceNameNotValid: NDOMy: Instance name not valid (Backend ndomy_1)
    The given instance name “Central” in backend “ndomy_1″ is not valid.

  • Poumba

    Bienvenue au club lol

    Le premier qui trouve la solution le dit à l’autre ^^.

  • cchatel2000

    C’est peut-être un peu tard, mais avez vous penser à exporter à partir de Centreon la configuration vers Nagios (Onglet confiuration/Nagios, cocher les deux dernières cases “Move Export Files” et “Restart Nagios”, puis appuyer sur le bouton “Export”)?

    C’est tout bête mais j’avais la même erreur et c’est finalement cette manip, non indiqué dans la doc d’installation que j’ai utilisé, qui a solutionné mon problème.

    SI ça peut servir….

  • Poumba

    Salut cchatel2000, je te remercie de ta réponse, je testerais ca ce soir chez moi tranquillement.

    Tu dit “onglet configuration/Nagios” mais quel onglet ??? car moi je passe pas par Centreon, du moins j’ai jamais eu besoin d’y aller.

  • Pascal G

    J’ai installé Nagvis et j’ai voulu ajouter un bouton puis le supprimer mais il semblerait que j’ai fait une erreur de manipulation.
    En effet, à présent, à chaque fois que veux lancer Nagvis, j’ai droit à l’erreur:
    The must value “host_name” is not set in an object of type “host” in map “__automap”.
    Quelqu’un aurait-il une solution à m’apporter?
    Merci d’avance.

  • Pascal G

    J’ai trouvé une solution il y avait un host de déclaré mais vide.
    Pour ce qui est de l’utilisation de Nagvis, est il possible d’intégrer des zones de texte (j’ai essayé avec les labels mais ce n’est pas tip top, avec un cadre, cela ne s’agrandit pas bien)… peut être une solution plus simple à m’apporter?
    Merci.

  • kimo

    Bonjour tout le monde , j’ai installé Nagios 3.2.3 puis Nagvis mais une fois l’installation de Nagvis est terminé , j’ai voulu lancer :
    http://localhost/nagios/nagvis/nagvis/index.php?map=firstmap
    j’ai eu comme erreur :
    ####################################################
    errorSelectingDb: NDOMy: Error selecting database (Backend ndomy_1)
    Error selecting the database. Maybe wrong database name or insufficient permissions. MySQL-Error: Access denied for user ‘root’@’localhost’ (using password: YES)
    ####################################################
    je pense que j’ai une erreur de config .
    Merci d’avance .

  • kimo

    Re bonjour ,
    quand je tape encore l’url suivante :
    http://192.168.1.80/nagios/nagvis/nagvis/index.php?map=

    je reçois comme érreur :
    ###################################################
    mapCfgNotExists: Map configuration file does not exists
    The map configuration file “/usr/local/nagios/share/nagvis/etc/maps/mapname.cfg” does not exists
    ####################################################

  • crem51

    Bonjour à tous.

    J’ai pris la dernière version de Nagvis (la “1.5.8″) Stable Releases et non Nightly Builds.
    Je rencontre un problème lors du changement de droits sur les dossiers Nagvis. Ces dossiers sont absents :
    “/usr/local/nagios/share/nagvis/nagvis/images/maps” “/usr/local/nagios/share/nagvis/var”

    Pouvez-vous m’aider SVP?

    Merci déjà…

    • http://www.nicolargo.com NicoLargo

      Les répertoires doivent se trouver ailleurs… Pour les rechercher:

      # sudo updatedb
      # sudo locate nagvis

      • crem51

        Merci déjà. J’ai l’honneur de parler avec le grand Nicolargo…

        J’ai trouvé un dossier “images” dans /usr/local/nagios/share/nagvis/share/userfiles/images. C’est le bon?

        Mais j’ai pas le dossier “var” (en faisant “find var”, j’obtiens : aucun dossier ou fichier de ce type).
        Que doit contenir ce dossier?

        Quelle est la différence entre cette manière d’installer Nagvis (en copiant le contenu de nagvis dans “nagios/share) et la compilation de Nagvis?

        • http://www.nicolargo.com NicoLargo

          Le problème vient peut être d’un changement de l’arborescence de Nagvis dans sa version 1.5.8 (c’est effectivement confirmé dans la doc: http://docs.nagvis.org/1.5/en_US/index.html).

          Normalement la nouvelle arborescence se trouve dans /usr/local/nagvis/.

          A voir…

          • crem51

            Dans la doc (http://docs.nagvis.org/1.5/en_US/index.html), il y a une partie “Nagvis installer” et une partie “Nagvis installation”.
            La première partie (Nagvis installer) est une compilation, la deuxième partie (Nagvis installation) est une copie de Nagvis comme dans ta procédure.
            Faut-il faire les deux?

            Dans ton tuto, tu ne fais que la copie, c’est pour ça que je te pose la question.

            Merci encore pour tes conseils

          • http://www.nicolargo.com NicoLargo

            Ce billet date un peu mais si je n’ai pas mis de copie de fichier dans la procédure c’est que l’installation de la version 1.3 devait créer les répertoire…

            Il faut bien sur faire les deux: complication + installation dans ton système.

  • crem51

    Salut.
    J’ai donc lancé le script “./install.sh”. Tout c’est bien passé jusqu’à ce qu’il me demande de mettre à jour nagvis. J’ai dit ok, et depuis, je n’ai plus accès à nagios. Ca me dit :
    Forbidden
    You don’t have permission to access /nagios/ on this server.
    ——————————————————————————–
    Apache/2.2.16 (Ubuntu) Server at 10.51.1.2 Port 80.
    Ca a l’air d’être une question de droit d’accès à un répertoire mais je ne sais pas lesquels.

    Quelqu’un a une idée peut-être??

    • zobi

      bonjour,
      j’ai installé nagios il a un petit moment, je l’ai configuré et tout et tout… tout allé bien !
      puis j’ai installé nagvis, j’ai suivis l’install, et maitenant que nagvis marche : impossible de se reconnecter a nagios !? ” Forbidden
      You don’t have permission to access /nagios3/ on this server.
      Apache/2.2.14 (Ubuntu) Server at ****** Port 80 “…
      j’ai changé le mot de passe de nagiosadmin mais toujours rien…
      Donc la je me sens un peu **** mais je vois pas tres bien le pourquoi du comment.
      Si vous avez une idée, merci

      • Yggdrasill

        Salut zobi,

        je pense que tu devrais regarder la conf de nagios pour apache, notamment ton alias qui devrait être /nagios. Le mot de passe n’a rien à voir.

        tu as mis quelle version de nagvis ?

        • zobi

          Salut
          merci d’avoir rep :)
          je suis avec nagios 3 et nagvis 1.5.9
          Pour les alias j’ai regardé c’est toujours /nagios3/ donc pas de problemes ici, ensuite j’ai rajouter des droits 777 dans tous les sens au cas ou ca soit un prob de droit, j’ai essayé d’enlever :
          AuthName “Nagios Access”
          AuthType Basic
          AuthUserFile /etc/nagios3/htpasswd.users
          # nagios 1.x:
          #AuthUserFile /etc/nagios/htpasswd.users
          require valid-user

          mais ca change pas grand chose…
          J’ai comparé avec nagvis.conf et c’est assez identique ( sauf que les alias sont entre “”, mais meme en changeant ca, bah ca bouge pas )
          merci

          • zobi

            Le truc que je comprend pas c’est :
            pourquoi nagvis aurait changé la conf nagios d’apache ?!

          • zobi

            C’est bon :P
            j’ai trouvé !
            c’etait juste que dans mon fichier de conf de nagios3 dans apache2 il y avait :
            index.php au lieu de index.html

            pourquoi et lequel a chagné vagvis, aucune idée, mais c’est pas grave :)

          • kirika

            Bonjour,

            j’ai exactement le même probleme que toi, hors chez moi c’est bien index.html

            pourrais tu stp jeter un œil sur mon fichier de conf

            root@deb-scs-dev-1:/etc/apache2/conf.d# pwd
            /etc/apache2/conf.d
            root@deb-scs-dev-1:/etc/apache2/conf.d# ls -al
            total 16
            drwxr-xr-x 2 root root 4096 30 juin 14:00 .
            drwxr-xr-x 7 root root 4096 1 juil. 12:00 ..
            -rw-r–r– 1 root root 269 28 juin 14:41 charset
            lrwxrwxrwx 1 root root 25 30 juin 14:00 nagios3.conf -> /etc/nagios3/apache2.conf
            -rw-r–r– 1 root root 1464 28 juin 14:41 security

            # apache configuration for nagios 3.x
            # note to users of nagios 1.x and 2.x:
            # throughout this file are commented out sections which preserve
            # backwards compatibility with bookmarks/config forîolder nagios versios.
            # simply look for lines following “nagios 1.x:” and “nagios 2.x” comments.

            include /etc/nagiosgraph/nagiosgraph-apache.conf

            #ScriptAlias /cgi-bin/nagios3 /usr/lib/cgi-bin/nagios3
            ScriptAlias /nagios3/cgi-bin /usr/lib/cgi-bin/nagios3
            # nagios 1.x:
            #ScriptAlias /cgi-bin/nagios /usr/lib/cgi-bin/nagios3
            #ScriptAlias /nagios/cgi-bin /usr/lib/cgi-bin/nagios3
            # nagios 2.x:
            #ScriptAlias /cgi-bin/nagios2 /usr/lib/cgi-bin/nagios3
            #ScriptAlias /nagios2/cgi-bin /usr/lib/cgi-bin/nagios3

            # Where the stylesheets (config files) reside
            Alias /nagios3/stylesheets /etc/nagios3/stylesheets
            # nagios 1.x:
            #Alias /nagios/stylesheets /etc/nagios3/stylesheets
            # nagios 2.x:
            #Alias /nagios2/stylesheets /etc/nagios3/stylesheets

            # Where the HTML pages live
            Alias /nagios3/phpmyadmin /usr/share/phpmyadmin
            Alias /nagios3 /usr/share/nagios3/htdocs
            # nagios 2.x:
            #Alias /nagios2 /usr/share/nagios3/htdocs
            # nagios 1.x:
            #Alias /nagios /usr/share/nagios3/htdocs

            Options FollowSymLinks ExecCGI

            DirectoryIndex index.html

            AllowOverride All
            Order Allow,Deny
            Allow From All
            SetEnv REMOTE_USER nagiosadmin
            # AuthName “Nagios Access”
            # AuthType Basic
            # AuthUserFile /etc/nagios3/htpasswd.users
            # nagios 1.x:
            #AuthUserFile /etc/nagios/htpasswd.users
            # require valid-user

            # Enable this ScriptAlias if you want to enable the grouplist patch.
            # See http://apan.sourceforge.net/download.html for more info
            # It allows you to see a clickable list of all hostgroups in the
            # left pane of the Nagios web interface
            # XXX This is not tested for nagios 2.x use at your own peril
            #ScriptAlias /nagios3/side.html /usr/lib/cgi-bin/nagios3/grouplist.cgi
            # nagios 1.x:
            #ScriptAlias /nagios/side.html /usr/lib/cgi-bin/nagios3/grouplist.cgi

  • maha

    Bonjour
    je vien d’installer nagvis.quand je vien à changer les droits sur les fichiers j’ai cette erreur:

    chmod: ne peut accéder `/usr/local/nagios/share/nagvis/nagvis/images/maps’: Aucun fichier ou dossier de ce type

    • maha

      bonjour
      lorsque je vien de lancer http://localhost/nagios/nagvis/config.php
      je reçoit ce message:Not Found

      The requested URL /nagios/nagvis/config.php was not found on this server.
      Apache/2.2.16 (Ubuntu) Server at localhost Port 80

  • Rookie

    Bonjour,

    tout d’abord merci pour ce billet qui bien utile. Je me demandais si il y avait un moyen d’ajouter un “bouton” qui permettrait d’ouvrir un terminal pour administrer du matériel(exemple: connection ssh sur un switch)?

    Cordialement.

    • Yggdrasill

      Salut,

      pour cela tu as la possibilité, dans la configuration de tes hôtes dans tes maps.cfg, de rajouter une propriété url=ssh://10.0.0.1
      pour pouvoir lancer un logiciel particulier, tu dois associer dans ta base de registre un logiciel à un protocole. Ainsi, quand tu cliqueras sur ton icône, sa te lancera ton putty par exemple pour te connecter directement à ton équipement.

      • Sycoweb

        Bonjour,
        L’inconvénient de cette solution est qu’on ne va plus vers l’équipement dans NAGIOS en cliquant sur l’icône de la mapp.
        personnellement, j’ai réglé le problème en définissant cette possibilité de Telnet (ou autre!) directement dans NAGIOS, au niveau des Infos étendues de l’équipement (hostextinfo):
        define hostextinfo{
        host_name My_Host_Avec_Telnet
        notes Ce switch est accessible en TELNET : cliquer sur “Extra Host Actions”
        action_url telnet://$HOSTADDRESS$
        icon_image my_routerswitch.gif
        }

        Dans Nagvis,un clic renvoie sur l’équipement sous NAGIOS,
        clique sur l’icone de la colonne HOST “Perform Host Action”,
        Et ça marche super !

        Bonne continuation.
        Syco

  • Yggdrasill

    Bonjour,

    je viens d’installer nagvis en suivant le tutoriel. Tout se déroule bien jusqu’à la fin.

    Mais quand je suis sur le wui et que je fais open map in nagvis, ca me met ” 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 ” at line 1″

    donc si je comprends bien, quand j’ouvre une map dans nagvis, il va chercher des infos dans la base de données (dans ndo probablement).

    Sauf que je ne trouve pas à quel endroit il fait la requête pour essayer de corriger cette erreur.

    Merci par avance pour votre aide.

  • sylveol

    Bonjour j’ai un problème concernant Nagvis.

    Il y a 3 semaines l’utilisateur nagiosadmin et un compte utilisateur pouvaient se connecter a Nagvis.
    Je reviens de vacances et ca ne marche plus.

    Lorsque je m’identifie, ça m’affiche
    You don”t have permission to access /nagios/nagvis on this server.

    J’ai refait les comptes avec la commande htpasswd -c /etc/nagios/htpaww.users nom_utilisateur

    Configuration :
    Distribution FAN 2.0

    Si vous pouviez m’expliquer en détail comment faire.

    Je vous remercie.

    Sylvain

  • Romain

    J’ai suivi l’installation et la config a la lettre, mais les fichier index.php et config.php sont manquant

  • MARLYSE GUINGUINCOIN

    Bonjour je suis actuellement stagiaire dans une société ils ont installer nagios via FAN et moi je doit mettre en place nagvis mais le problème est que j’ai bien configurer nagvis mais lorsque je passe ma souris sur default_automap j’ai le message d’erreur suivant : problem backend ndomy_1 the object localhost doesn’t not exist alors que dans mon fichier ndo2db.cfg et ndomod tous correspond pouvez vous m’aider s’il vous plaît ?