Centreon Enterprise Server : Cartographie avec NagVis
Sommaire
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 (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
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.
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.
Tout simplement, cliquez sur le bouton "Installer le module".
Le message "Module installé et enregistré" doit apparaître.
Dans "Administration" vous avez désormais un nouvel onglet nommé "Nagvis" disponible. Accédez à cet onglet.
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".
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".
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)"
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 :
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 !
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.
Bonjour, où je peut trouver les liens host, hostgroup, service, servicegroup dans centreon?
merci d’avence.
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.
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
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
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
L’onglet « Vues » n’est pas visible graphiquement mais est accessible via l’url suivante pour nagvis si ce tuto a été suivi :
http://SRV-CENTREON/centreon/main.php?p=403
L’onglet « Vues » n’est pas visible graphiquement mais est accessible via l’url suivante pour nagvis si ce tuto a été suivi :
http://SRV-CENTREON/centreon/main.php?p=403
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 ?
Aviez-vous une solution à votre problème?
Bonjour Yane,
As-tu trouvé une solution au problème, cela m’intéresse ?
Merci.
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…!
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.