Installation de Nagvis, le plugin de visualisation pour Nagios

Date: 3/07/2008 | Catégories: Open-source,Reseau,Systeme | Tags: ,,

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