Installation de Nagvis, le plugin de visualisation pour Nagios
Date: 3/07/2008 | Catégories: Open-source,Reseau,Systeme | Tags: nagios,nagvis,ndo
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...