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…







Open-source




abonnez-vous
un commentaire
trackback
14 commentaires au billet “Installation de Nagvis, le plugin de visualisation pour Nagios”
voir le nom de l’instance dans la base mysql nagios :
table nagios_instances –> instance_name = Central (pour moi)
Puis modifier le fichier de configuration nagvis.ini.php de nagvis
avec dbinstancename=”Central”
Dommage que tu poses des screenshots fais avec Visio de MS alors que tu as écrit un bel article sur Dia…
http://blog.nicolargo.com/2008/04/dia-alternative-a-visio-sous-mac-os-x.html
Personnellement j’adore Nagvis, la possibilté de lier plusieurs graphs entre eux, ajouter des liens URL personnalisés, schématiser les flux (perso SMTP et fax avec gestion des dépendances….)
Ca me parait un indispensable à nagios.
Pour corriger l’erreur : Make sure that Nagios and ndo2db are running.
voir le nom de l’instance dans la base mysql nagios :
table nagios_instances –> instance_name = Central (pour moi)
Puis modifier le fichier de configuration nagvis.ini.php de nagvis
avec dbinstancename=”Central”
Le fichier GlobalBackend-ndomy.php n’a pus à être modifier.
Bonjour à tous,
j’aimerais avoir votre avis par rapport à l’outils FAN: Fully Automated Nagios (http://fannagioscd.sourceforge.net/).
Il permet à partir d’une image ISO d’installer une plateforme préconfigurée de monitoring intégrant Nagios, Nagvis, Nareto et Centreon.
????
Merci
Bonjour,
Encore merci pour tous ces tuto qui sont d’une très grande qualité (dans le sens où ils répondent à toutes les questions que je me posais)… Nagios 3 + Centreon 2 + Nagvis 1.3 c’est exactement ce dont j’avais besoin
Vous êtes très didactique.
Merci.
Bonjour ;
Tout d’abord bravo pour les tutos qui sont vraiment super explicites et plus que tops !
J’ai suivi ce tuto et lorsque je veux voir une carte j’ai l’erreur suivante :
backendInstanceNameNotValid: NDOMy: Instance name not valid (Backend ndomy_1)
Est-ce que quelqu’un a une idée ?
Merci par avance ;
J’ai trouvé mon erreur.Un erreur de ma part sur le mot de pass de ndouser dans le ndo2db.cfg
L’erreur signifie que nagvis ne trouve pas de données dans la bdd fournie.
Désolé.
Chez moi j’ai résolu l’erreur des 180 secondes grâce à ce thread:
http://www.nagios-portal.de/wbb/index.php?page=Thread&postID=74370#post74370
Cdt,
Nicolas.
Merci pour le tuto
Faire attention a la valeur dbinstancename=”Central” dans le fichier
nagvis.ini.php qui est mise a “default”.
Si on suit l’install de Nico la bonne valeur est Central (comme indiqué dans le 1er post)
Cette erreur se traduit par le fait que lorsqu’on veut ajouter un host dans la map, dans le menu host_name il n’y a que un choix celui du serveur hébergeant nagios.
Quand la valeur Central est mise, la liste entière de tous les objets configurés dans nagios est sélectionable.
Merci pour le premier post qui donne toute la puissance a Nagvis (j’aurai bien été bloqué sans ca)
Cedric
180 secondes
La valeur 180 seconde peut etre changé aussi dans
/usr/local/nagios/share/nagvis/etc/nagvis.ini.php
maxtimewithoutupdate=3600
cela “corrige” le pb
Cedric
slt nico
d abord un grand merci a vous pour tous ces tutos
j’ai installer nagios 3.0.3 avec centreon, butnu 8, sous u tout marche tres bien, j’ai ajouter le module nagvis,, j’arrive a visualiser l’interface de configuration et les maps, mais quand j’essaie d’ajouter nu host sur la map, la liste host_name est vide, j’ai essayer a plusieurs fois toutes la solution possibles mais sans vain,
j’attends votre reponse
merci a vous
Salut
tu as checker mon post du 30 septembre
dbinstancename=”Central” dans le fichier
nagvis.ini.php qui est mise a “default”.
j’avais le meme souci que toi
oui j ai deja vu ta solution, et je l ai essayer, mais ça n a pas donner de resultat,
voila mon fichier nagvis.ini.php
Tous les droits sur les fichiers sont bien gérés comme indiqué dans le ticket ?
root@nagiosng:/usr/local/nagios/share/nagvis/etc# more nagvis.ini.php
;
; the line above is to prevent
; viewing this file from web.
; DON’T REMOVE IT!
; —————————-
; Default NagVis Configuration File
; At delivery everything here is commented out. The default values are set in the NagVis code.
; You can make your changes here, it’ll overwrite the default settings.
; —————————-
; —————————-
; !!! The Sections/Variables with a leading “;” won’t be recognized by NagVis (commented out) !!!
; —————————-
; global options
[global]
; select language (english,german,french,…)
;language=”english”
; dateformat of the time/dates shown in nagvis (For valid format see PHP docs)
;dateformat=”Y-m-d H:i:s”
; show header (0/1)
;displayheader=1
; refresh time of pages
;refreshtime=60
; default values for the maps
[defaults]
; default backend (id of the default backend)
;backend=”ndomy_1″
; default icons
;icons=”std_medium”
; recognize service states in host/hostgroup objects
;recognizeservices=1
; recognize only hard states (not soft)
;onlyhardstates=0
; background color of maps
;backgroundcolor=”#fff”
; header template
;headertemplate=”default”
; enable/disable hover menu
;hovermenu=1
; hover template
; Timeout of hover menu ajax request (seconds)
;hovertimeout=5
;hovertemplate=”default”
; hover menu open delay (seconds)
;hoverdelay=0
; show childs in hover menus
;hoverchildsshow=1
; order method of childs (desc: descending, asc: ascending)
;hoverchildsorder=”asc”
; sort method of childs (s: state, a: alphabetical)
;hoverchildssort=”s”
; limit shown child objects to n
;hoverchildslimit=”10″
; show map in lists (dropdowns, index page, …)
;showinlists=1
; use gdlibs (if set to 0 lines will not work, all other types should work fine)
;usegdlibs=1
; target for the icon links
;urltarget=”_self”
; options for the wui
[wui]
; auto update frequency
;autoupdatefreq=25
; map lock time (minutes)
;maplocktime=5
; Users which are allowed to change the NagVis configuration (comma seperated list)
;allowedforconfig=EVERYONE
; configuration values for the automap
[automap]
; show the automap in the lists (Map index and dropdown menu in header)
;showinlists=1
; default root host (NagVis uses this if it can’t detect it via NDO)
;defaultroot=”"
; path to the graphviz binaries (dot,neato,…); Only needed if not in ENV PATH
;graphvizpath=”/usr/bin/”
; Default URL parameters for links to the automap
;defaultparams=”&maxLayers=2″
; path options
[paths]
; absolute physical NagVis path
;base=”/usr/local/nagios/share/nagvis/”
; absolute html NagVis path
;htmlbase=”/nagios/nagvis”
; absolute html NagVis cgi path
;htmlcgi=”/nagios/cgi-bin”
; options for the NDO-Backend
; in this example the ID of the Backend is “ndomy_1″ you can define another ID.
[backend_ndomy_1]
; type of backend - MUST be set
;backendtype=”ndomy”
; hostname for NDO-db
;dbhost=”localhost”
; portname for NDO-db
;dbport=3306
; database-name for NDO-db
;dbname=”nagios”
; username for NDO-db
dbuser=”ndouser”
; password for NDO-db
dbpass=”ndopassword”
; prefix for tables in NDO-db
dbprefix=”nagios_”
; instace-name for tables in NDO-db
dbinstancename=”Central”
; maximum delay of the NDO Database in Seconds
maxtimewithoutupdate=3600
; path to the cgi-bin of this backend
;htmlcgi=”/nagios/cgi-bin”
; map rotation pools
; in this example the browser switches between the maps demo and demo2 every 15
; seconds the rotation is enabled by url: index.php?rotation=demo
[rotation_cnet]
; maps to rotate in this pool
maps=”CJ4,CJ4omn,omn_via_interco”
; rotation interval (seconds)
interval=15
[automap]
;showinlists=1
;defaultroot=”localhost”
;graphvizpath=”/usr/local/bin”
;defaultparams=”&maxLayers=2″
;renderMode=”undirected”
; ————————-
; EOF
; ————————-
root@nagiosng:/usr/local/nagios/share/nagvis/etc#
Publier un commentaire
Partager des documents lors des commentaires: Le groupe Scripd Nicolargo