Centreon Enterprise Server : Cartographie avec NagVis

I. Présentation

La solution de supervision Centreon Enterprise Server (CES) n'intègre pas nativement la possibilité de réaliser une cartographie de votre infrastructure. Pour répondre à ce besoin il y a plusieurs solutions, notamment d'utiliser "Centreon Map" mais vous devez disposer au minimum de la version Essentials de CES et celle-ci est payante. Si vous souhaitez utiliser la version Standard logo-centreon1(gratuite), vous pouvez vous tourner vers la solution NagVis qui est gratuite et complète. J'ajoute même que NagVis est un produit réputé.

L'objectif est de disposer d'un outil permettant de créer différentes cartes du réseau, avec dessus des points d'états quant aux hôtes et services.

Attention, ce tutoriel s'applique à la configuration de NagVis pour Centreon Enterprise Server (fonctionnel sur l'édition gratuite), si vous êtes sur une installation manuelle sous Debian il y a des différences (chemins, utilisateurs, etc.). On utilisera Nagvis 1.7.10 car la dernière version n'est pas officiellement supportée sur CES.

II. Installation de Nagvis

Avant de se lancer dans l'installation de Nagvis, installez Graphviz qui est un prérequis.

yum install graphviz

centreon-nagvis-1

Pour débuter l'installation, connectez-vous en shell sur le serveur CES et exécutez la suite de commandes suivante :

# Dossier d'installation de nagvis
cd /usr/local/
# Récupérer les sources de Nagvis
wget http://sourceforge.net/projects/nagvis/files/NagVis%201.7/nagvis-1.7.10.tar.gz/download
# Décompresser les sources de Nagvis
tar -xzvf nagvis-1.7.10.tar.gz
# Renommer le répertoire en "nagvis"
mv nagvis-1.7.10 nagvis
# Accès au répertoire de nagvis
cd nagvis/
# Exécuter le script d'installation de Nagvis
./install.sh

Maintenant, une suite d'étape va s'enchaîner pour parvenir à l'installation de Nagvis. Ci-dessous, une configuration fonctionnelle pour que ça fonctionne avec CES.

Note : Sous CES, l'utilisateur du service web est "apache" mais sous Debian il s'agira de "www-data" que vous connaissez certainement.

Lorsque aucune valeur n'est indiquée, c'est que la valeur par défaut est conservée.

+------------------------------------------------------------------------------+
| Welcome to NagVis Installer 1.7.10                                           |
+------------------------------------------------------------------------------+
| This script is built to facilitate the NagVis installation and update        |
| procedure for you. The installer has been tested on the following systems:   |
| - Debian, since Etch (4.0)                                                   |
| - Ubuntu, since Hardy (8.04)                                                 |
| - SuSE Linux Enterprise Server 10 and 11                                     |
|                                                                              |
| Similar distributions to the ones mentioned above should work as well.       |
| That (hopefully) includes RedHat, Fedora, CentOS, OpenSuSE                   |
|                                                                              |
| If you experience any problems using these or other distributions, please    |
| report that to the NagVis team.                                              |
+------------------------------------------------------------------------------+
| Do you want to proceed? [y]: y
+------------------------------------------------------------------------------+
| Starting installation of NagVis 1.7.10                                       |
+------------------------------------------------------------------------------+
| OS  : Centreon Enterprise Server                                             |
|                                                                              |
+--- Checking for tools -------------------------------------------------------+
| Using packet manager /bin/rpm                                          found |
|                                                                              |
+--- Checking paths -----------------------------------------------------------+
| Please enter the path to the nagios base directory [/usr/local/nagios]: /usr/share/centreon/
|   nagios path /usr/share/centreon/                                     found |
| Please enter the path to NagVis base [/usr/local/nagvis]:
|                                                                              |
+--- Checking prerequisites ---------------------------------------------------+
| PHP 5.3                                                                found |
|   PHP Module: gd php                                                   found |
|   PHP Module: mbstring php                                             found |
|   PHP Module: gettext compiled_in                                      found |
|   PHP Module: session compiled_in                                      found |
|   PHP Module: xml php                                                  found |
|   PHP Module: pdo php                                                  found |
|   Apache mod_php                                                       found |
| Do you want to update the backend configuration? [n]:
| Graphviz 2.26                                                          found |
|   Graphviz Module dot 2.26.0                                           found |
|   Graphviz Module neato 2.26.0                                         found |
|   Graphviz Module twopi 2.26.0                                         found |
|   Graphviz Module circo 2.26.0                                         found |
|   Graphviz Module fdp 2.26.0                                           found |
| SQLite 3.6                                                             found |
|                                                                              |
+--- Trying to detect Apache settings -----------------------------------------+
| Please enter the web path to NagVis [/nagvis]:
| Please enter the name of the web-server user [apache]:
| Please enter the name of the web-server group [apache]:
| create Apache config file [y]:
|                                                                              |
+--- Checking for existing NagVis ---------------------------------------------+
| NagVis 1.7.10                                                          found |
| Do you want the installer to update your config files when possible? [y]:
| Remove backup directory after successful installation? [n]:
|                                                                              |
+------------------------------------------------------------------------------+
| Summary                                                                      |
+------------------------------------------------------------------------------+
| NagVis home will be:           /usr/local/nagvis                             |
| Owner of NagVis files will be: apache                                        |
| Group of NagVis files will be: apache                                        |
| Path to Apache config dir is:  /etc/httpd/conf.d                             |
| Apache config will be created: yes                                           |
|                                                                              |
| Installation mode:             update                                        |
| Old version:                   1.7.10                                        |
| New version:                   1.7.10                                        |
| Backup directory:              /usr/local/nagvis.old-2015-07-30_08:58:15     |
|                                                                              |
| Note: The current NagVis directory will be moved to the backup directory.    |
|       The backup directory will be NOT removed after successful installation |
|       Your configuration files will be copied.                               |
|       The configuration files will be updated if possible.                   |
|                                                                              |
| Do you really want to continue? [y]: y
+------------------------------------------------------------------------------+
| Starting installation                                                        |
+------------------------------------------------------------------------------+
| Moving old NagVis to /usr/local/nagvis.old-2015-07-30_08:58:15..       done  |
| Creating directory /usr/local/nagvis...                                done  |
| Creating directory /usr/local/nagvis/var...                            done  |
| Creating directory /usr/local/nagvis/var/tmpl/cache...                 done  |
| Creating directory /usr/local/nagvis/var/tmpl/compile...               done  |
| Creating directory /usr/local/nagvis/share/var...                      done  |
| Copying files to /usr/local/nagvis...                                  done  |
| Creating directory /usr/local/nagvis/etc/profiles...                   done  |
| Creating main configuration file...                                    done  |
|   Adding webserver group to file_group...                              done  |
| Creating web configuration file...                                     done  |
| Setting permissions for web configuration file...                      done  |
|                                                                              |
| Restoring custom map configuration files...                            done  |
| Restoring custom geomap source files...                                done  |
| Restoring conf.d/ configuration files...                               done  |
| Restoring custom map images...                                         done  |
| Restoring custom gadget images...                                      done  |
| Restoring custom iconsets...                                           done  |
| Restoring custom shapes...                                             done  |
| Restoring custom templates...                                          done  |
| Restoring custom template images...                                    done  |
| Restoring custom gadgets...                                            done  |
| Restoring custom scripts...                                            done  |
| Restoring custom stylesheets...                                        done  |
|                                                                              |
+------------------------------------------------------------------------------+
| Handling changed/removed options                                             |
+------------------------------------------------------------------------------+
| Removing allowedforconfig option from main config...                   done  |
| Removing autoupdatefreq option from main config...                     done  |
| Removing htmlwuijs option from main config...                          done  |
| Removing wuijs option from main config...                              done  |
| Removing showautomaps option from main config...                       done  |
| Removing usegdlibs option from main config...                          done  |
| Removing displayheader option from main config...                      done  |
| Removing hovertimeout option from main config...                       done  |
| Removing allowed_for_config option from map configs...                 done  |
| Removing allowed_user from map configs...                              done  |
| Removing hover_timeout from map configs...                             done  |
| Removing usegdlibs from map configs...                                 done  |
+------------------------------------------------------------------------------+
| HINT: Please check the changelog or the documentation for changes which      |
|       affect your configuration files                                        |
|                                                                              |
+--- Setting permissions... ---------------------------------------------------+
| /usr/local/nagvis/etc/nagvis.ini.php-sample                            done  |
| /usr/local/nagvis/etc                                                  done  |
| /usr/local/nagvis/etc/maps                                             done  |
| /usr/local/nagvis/etc/maps/*                                           done  |
| /usr/local/nagvis/etc/geomap                                           done  |
| /usr/local/nagvis/etc/geomap/*                                         done  |
| /usr/local/nagvis/etc/profiles                                         done  |
| /usr/local/nagvis/share/userfiles/images/maps                          done  |
| /usr/local/nagvis/share/userfiles/images/maps/*                        done  |
| /usr/local/nagvis/share/userfiles/images/shapes                        done  |
| /usr/local/nagvis/share/userfiles/images/shapes/*                      done  |
| /usr/local/nagvis/var                                                  done  |
| /usr/local/nagvis/var/*                                                done  |
| /usr/local/nagvis/var/tmpl                                             done  |
| /usr/local/nagvis/var/tmpl/cache                                       done  |
| /usr/local/nagvis/var/tmpl/compile                                     done  |
| /usr/local/nagvis/share/var                                            done  |
|                                                                              |
+------------------------------------------------------------------------------+
| Installation complete                                                        |
|                                                                              |
| You can safely remove this source directory.                                 |
|                                                                              |
| For later update/upgrade you may use this command to have a faster update:   |
| ./install.sh -n /usr/share/centreon -p /usr/local/nagvis -u apache -g apache -w /etc/httpd/conf.d -a y
|                                                                              |
| What to do next?                                                             |
| - Read the documentation                                                     |
| - Maybe you want to edit the main configuration file?                        |
|   Its location is: /usr/local/nagvis/etc/nagvis.ini.php                      |
| - Configure NagVis via browser                                               |
|   <http://localhost/nagvis/config.php>                                       |
| - Initial admin credentials:                                                 |
|     Username: admin                                                          |
|     Password: admin                                                          |
+------------------------------------------------------------------------------+

Enfin, on redémarre le service web pour terminer l'installation de nagvis :

service httpd restart

Nagvis est installé, il fonctionne en tant qu'application indépendante pour le moment. Vous pouvez vous connecter sur l'interface web (/nagvis) pour vérifier cela, il contient par défaut des cartes de démo.

Pour faire le nettoyage et supprimer ces cartes de démo, exécutez cette commande :

rm /usr/local/nagvis/etc/maps/*.cfg

III. Configurer Nagvis

Maintenant pour la configuration de Nagvis on va commencer par compléter deux étapes :

  • Installer le connecteur pour Centreon-Broker
  • Configurer Nagvis pour Centreon

A. Connecteur Centreon-Broker

Commencez par installer Git si vous ne l'avez pas :

yum install git-core

On se positionne dans le répertoire src et on récupère une copie du connecteur sur GitHub :

cd /usr/local/src
git clone https://github.com/centreon/centreon-nagvis-backend.git

Ensuite, on copie le fichier PHP du connecteur dans le répertoire de Nagvis en lui donnant les bonnes autorisations pour l'utilisateur apache :

mv /usr/local/src/centreon-nagvis-backend/GlobalBackendcentreonbroker.php /usr/local/nagvis/share/server/core/classes/
chown apache: /usr/local/nagvis/share/server/core/classes/GlobalBackendcentreonbroker.php
chmod 664 /usr/local/nagvis/share/server/core/classes/GlobalBackendcentreonbroker.php

Passons à la suite.

B. Configurer Nagvis

Effectuez une sauvegarde du fichier de configuration de Nagvis avant modification (pensez à déplacer ce fichier de backup) :

cd /usr/local/nagvis/etc/
cp nagvis.ini.php nagvis.ini.php.bak

Editez le fichier de configuration :

vi nagvis.ini.php

Dans le fichier, indiquez cette configuration (adaptée de la configuration fournie sur le site Centreon : Nagvis conf) :

; <?php return 1; ?>
; 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, they'll overwrite the default settings.
; ----------------------------

; ----------------------------
; !!! The sections/variables with a leading ";" won't be recognised by NagVis (commented out) !!!
; ----------------------------

[global]
authmodule="CoreAuthModSQLite"
authorisationmodule="CoreAuthorisationModSQLite"
dateformat="Y-m-d H:i:s"
file_group="apache"
file_mode=660
language_detection="user,session,browser,config"
language="en_US"
refreshtime=60
sesscookiedomain="auto-detect"
sesscookiepath="/"
sesscookieduration=86400
startmodule="Overview"
startaction="view"

[paths]
base="/usr/local/nagvis/"
htmlbase="/nagvis"
htmlcgi="/centreon"

[defaults]
backend="centreonbroker"
backgroundcolor="#ffffff"
contextmenu=1
contexttemplate="default"
event_on_load=0
event_repeat_interval=0
event_repeat_duration=-1
eventbackground=0
eventhighlight=1
eventhighlightduration=30000
eventhighlightinterval=500
eventlog=0
eventloghidden=1
eventscroll=1
headermenu=1
headertemplate="default"
headerfade=1
hovermenu=1
hovertemplate="default"
hoverdelay=0
hoverchildsshow=1
hoverchildslimit=10
hoverchildsorder="asc"
hoverchildssort="s"
icons="std_medium"
onlyhardstates=0
recognizeservices=1
showinlists=1
showinmultisite=1
urltarget="_parent"
hosturl="[htmlcgi]/main.php?p=20201&o=svc&host_search=[host_name]&search=&poller=&hostgroup=&output_search="
hostgroupurl="[htmlcgi]/main.php?p=20209&o=svcOVHG"
serviceurl="[htmlcgi]/main.php?p=20201&o=svcd&host_name=[host_name]&service_description=[service_description]"
servicegroupurl="[htmlcgi]/main.php?p=20212&o=svcOVSG"
mapurl="[htmlcgi]/main.php?p=403&map=[map_name]"
view_template="default"
label_show=1

[index]
backgroundcolor="#ffffff"
cellsperrow=4
headermenu=1
headertemplate="default"
showmaps=1
showgeomap=0
showrotations=1
showmapthumbs=0

[automap]

[wui]
maplocktime=5
grid_show=0
grid_color="#D5DCEF"
grid_steps=32

[worker]
interval=10
requestmaxparams=0
requestmaxlength=1900
updateobjectstates=30

[backend_centreonbroker]
backendtype="centreonbroker"
statushost=""
dbhost="localhost"
dbport=3306
dbname="centreon_storage"
dbuser="centreon"
dbpass="votre-mot-de-passe"
dbinstancename="default"
htmlcgi="/centreon"

[states]

; -------------------------
; EOF
; -------------------------

La configuration ci-dessus est fonctionnelle, seul le paramètre "dbpass" doit être modifié pour indiquer le mot de passe de votre base de données Centreon. Pour le reste, les directives sont classiques mais l'essentiel est surtout situées au niveau de quatre directives qui permettent d'indiquer vers quelle URL il faut rediriger dans l'interface de Centreon lorsque l'on clic sur un objet (hôte, service).

  • hosturl : URL pour un hôte
  • hostgroupurl : URL pour un groupe d'hôtes
  • serviceurl : URL pour un service
  • servicegroupurl : URL pour un groupe de services

Vous pouvez adapter ces liens, il suffit d'aller dans l'interface de Centreon et de regarder l'URL qui apparaît lorsque l'on choisit un affichage particulier, de copier ce lien et de l'adapter avec les variables dans Nagvis [host_name] - [service_description].

On a également définit le Centreon-Brocker come backend par défaut dans Nagvis avec la directive "backend".

IV. Installer l'extension centreon-nagvis

Dans cette quatrième étape, nous allons intégrer Nagvis à Centreon par l'intermédiaire d'une extension gratuite. Comme nous sommes sous CES, on peut directement installer l'extension "centreon-nagvis" depuis les dépôts par l'intermédiaire de yum :

yum install centreon-nagvis

Note : Sous Debian, les sources de l''extension doivent être téléchargées manuellement.

centreon-nagvis-3

L'installation est téléchargée mais elle n'est pas pour autant installée. Pour réaliser l'installation, connectez-vous sur l'interface de Centreon, allez dans "Administration" puis "Extensions". Une extension nommée "centreon-nagvis" doit apparaître, cliquez tout à droite sur le bouton pour installer le module.

centreon-nagvis-5

Tout simplement, cliquez sur le bouton "Installer le module".

centreon-nagvis-6

Le message "Module installé et enregistré" doit apparaître.

centreon-nagvis-7

Dans "Administration" vous avez désormais un nouvel onglet nommé "Nagvis" disponible. Accédez à cet onglet.

centreon-nagvis-10

La configuration doit être éventuellement modifiée uniquement au niveau "Nagvis authentication" car il y a deux modes disponibles :

  • Single user

Tout simplement on utilise un compte créé directement dans l'application Nagvis, à savoir "admin" par défaut mais on va plutôt définir un utilisateur spécifique avec uniquement un accès en lecture seule.

  • Centreon User

Ce mode permet de gérer le multi-utilisateurs en associant un utilisateur Centreon à un utilisateur Nagvis, ceci permet de gérer différents niveaux de droits.

Dans le cadre de ce tutoriel, indiquez "centreon_nagvis" dans l'interface Centreon et laissez le mode "Single User". Il faut par contre qu'on le crée dans l'interface de Nagvis.

Connectez-vous sur l'interface (http://serveur/nagvis) et dans le menu cliquez sur "Menu personnel" et "Gérer les utilisateurs". Dans la zone "Créer un utilisateur", indiquez "centreon_nagvis" et choisissez un mot de passe. Cliquez sur "Créer un utilisateur".

centreon-nagvis-11

Ensuite, dans la zone "Modifier un utilisateur", choisissez celui que l'on vient de créer. Sur la gauche cliquez sur "Users (read-only)" et cliquer sur la flèche pour le déplacer vers les rôles sélectionnés. Cliquez sur "Modifier un utilisateur".

centreon-nagvis-12

La configuration de Nagvis est terminée, l'intégration à CES également. Il ne reste plus qu'à créer votre carte, pour cela il faut apprendre à manipuler l'interface de Nagvis et quelques paramètres de base mais ce n'est pas l'objet de ce tutoriel.

Dans l'interface de Centreon, dans "Vues" et "Nagvis" vous pourrez visualiser vos cartes.

V. Erreur accès onglet "Nagvis"

Lorsque vous accéderez pour la première fois à l'onglet "Vues" et "Nagvis" pour visualiser votre carte, vous pourrez obtenir le message d'erreur comme ci-dessous. Il s'agit d'une erreur de configuration, que nous allons corriger.

"Error: (0) strftime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2,0/DST' instead (/usr/share/centreon/GPL_LIB/Smarty/libs/Smarty_Compiler.class.php:400)"

centreon-nagvis-8

L'objectif est d'ajouter un fuseau horaire dans la configuration de PHP, pour cela éditez le fichier "/etc/php.ini" et décommentez la ligne 946 (supprimer le point-virgule). Ajoutez ensuite la timezone que vous souhaitez, pour l'Europe indiquez "Europe/Paris" comme ceci :

centreon-nagvis-9

Il ne reste plus qu'à redémarrer le service httpd :

service httpd restart

VI.  Créer une carte Nagvis

Avant de vous laisser dans le grand bain avec Nagvis entre les mains, voici rapidement comment créer une carte.

Connectez-vous sur Nagvis, et dans le menu cliquez sur "Options" et "Gérer les cartes".

Remplissez la zone "Créer une carte" et cliquez sur "Créer", votre carte est créée et prête à être construite !

centreon-nagvis-13

Il est à noter que pour le moment Nagvis ne supporte pas l'automap avec Centreon, c'est à dire le fait de générer automatiquement la carte selon votre configuration de Centreon. En espérant que cette fonctionnalité finisse par arriver.

Pour le fond de carte, il est astucieux d'utiliser un schéma de votre réseau (réalisé avec un outil comme Visio) et ensuite placez les icônes d'état sur ce schéma.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5471.Voir tous les posts

12 thoughts on “Centreon Enterprise Server : Cartographie avec NagVis

  • Bonjour, où je peut trouver les liens host, hostgroup, service, servicegroup dans centreon?
    merci d’avence.

    Répondre
  • Bonjour,

    A propos de l’extension centreon-nagvis, j’ai procédé à l’installation du module comme décrite sur ce très bon tutoriel.

    Je suis sous la dernière version de Centreon, la 2.7.1 du coup dans l’interface il n’y a plus “Vues” et encore moins “Nagvis”. Quelqu’un aurait-il des informations concernant cette incompatibilité?

    Merci d’avance pour vos réponses.

    Répondre
    • bonjour,

      J’ai exactement pareil j’ai plus l’onglet vues dans ces 3.3 ou 3.2 avec nagvis en 1.7/1.8/1.9 je crois que cela viens soit du pack de langue fr ou de la mise a jour 2.7.1 qui pose problème avec nagvis ou peut être une histoire de thème, ça fait une semaine que j’essaye sans réussir a avoir l’onglet

      Merci

      Répondre
      • Bonjour,

        Au dernière nouvelle, Nagvis n’est pas compatible avec la dernière version de CES, l’extension qui relie les deux applications n’est pas fonctionnelle. Il va falloir patienter un peu qu’une mise à jour sorte.

        Bon week-end
        Florian

        Répondre
      • J’ai trouvé une solution temporaire en regardant un peu les urls et en naviguant sur les différentes fonctionnalités de l’interface web centreon.

        L’onglet « Vues » n’existe pas graphiquement mais correspond à l’url suivante :

        http://SRV-CENTREON/centreon/main.php?p=403

        Répondre
  • Bonjour,
    L’option pour creer un hostgroup ne marche pas avec centreon 2.7. il me parait que la configuration:
    hostgroupurl= »[htmlcgi]/main.php?p=20209&o=svcOVHG »
    est incompatible.
    J’ai essayé de la corriger, mais centreon 2.7 utilise le [hostgroup_id] dans l’url pour afficher la page du groupe, alors que nagvis ne peut compléter le [hostgroup_id] par son vrai id.

    Auriez vous une solution svp ?

    Répondre
    • Aviez-vous une solution à votre problème?

      Répondre
  • Bonjour Yane,

    As-tu trouvé une solution au problème, cela m’intéresse ?

    Merci.

    Répondre
  • Bonjour, j’ai procédé à l’installation d’un full Centreon en dernière version et j’y ai ajouté Nagvis, mais j’ai deux gros soucis que je n’arrive pas à régler…
    -Mon module centreon-nagvis va chercher les cartes et les confs en /usr/local/nagvis alors que Nagvis lui même va chercher tout ça en /usr/lib/nagvis/ …
    -Sur mes cartes Nagvis (Que ce soit sur le Nagvis ou son module) quand je clique sur un hôte ou un service il va chercher des fichiers qui n’existent pas sur mon serveur…
    (Du type: « The requested URL /nagios/cgi-bin/extinfo.cgi was not found on this server. »)
    Avez-vous des solutions? Je vous en remercie par avance…!

    Répondre
  • hi
    i am using ces-standard-3.3 and installed nagvis in centreon i am able to see nagvis module

    but when i am trying open http: // server / nagvis page is not displaying

    Please help me.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.