Tuto : cartographier ses ressources avec NagVis

Pour tout projet, il est important de bien se représenter le système d’information ou l’application, afin que tous les membres de l’équipe du projet puissent visualiser les ressources déjà mises en place : type de serveur, applications, technologies…

Une cartographie permet de schématiser et de visualiser graphiquement un système ou une architecture réseau de manière simple. Ces cartographies peuvent être combinées avec un outil de supervision dans le but d’avoir l’état des ressources représentées.

Pour créer vos cartographies, nous vous proposons l’outil NagVis. Voyons ensemble comment installer NagVis, configurer une carte et customiser les objets qui permettent de représenter la carte

Pourquoi utiliser NagVis ?

NagVis est un outil open-source qui permet la création de cartographies et de les connecter avec un outil de supervision comme CheckMK ou Centreon. Lorsque vous avez créé une carte sur NagVis, vous devez choisir quel backend va utiliser cette carte.

Le backend dans le langage NagVis, c’est le module PHP qui va se connecter à une application de supervision pour récupérer les informations (hôtes, services, groupes), afin de pouvoir les utiliser dans la création de la carte.

Lorsque vous ajouterez un objet dans votre carte, il vous faudra choisir à quel objet de supervision, il correspond. De cette façon, la forme de l’objet va changer en fonction du statut de ce dernier.

Comment installer NagVis ?

NagVis requiert Apache 2.4 et PHP. Pour l’exemple, je vais installer l’environnement sur une VM sous Alma Linux 8. Avant tout, mettons à jour le système, et désactiver SELinux :

sudo dnf update
sed -i s/^SELINUX=.*$/SELINUX=disabled/ /etc/selinux/config
reboot

Alma8 dispose d’un pare-feu au niveau de son OS. Pour pouvoir utiliser NagVis, il nous faut ajouter les règles pour autoriser les flux :

firewall-cmd --zone=public --add-service=ssh --permanent  
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent 
firewall-cmd --reload

Ou on peut également désactiver le pare-feu d’Alma8 :

sudo systemctl disable firewalld && sudo systemctl stop firewalld

Ensuite, nous installons Apache et PHP-FPM avec les librairies PHP requises par NagVis :

sudo dnf install wget tar rsync httpd php-fpm graphviz php-pdo php-pdo_mysql php-json
systemctl enable php-fpm httpd

Récupérerons les sources NagVis dans sa version 1.9.34 (août 2022) et lançons le script d’installation fournit dans les sources :

cd /usr/local/src
wget http://www.nagvis.org/share/nagvis-1.9.34.tar.gz
tar -xvf nagvis-1.9.34.tar.gz
cd nagvis-1.9.34
./install.sh -q -n /usr/sbin -p /usr/share/nagvis -u apache -g apache -w /etc/httpd/conf.d -a y

Enfin, créons le fichier de configuration PHP dédié à NagVis :

cat <<EOF > /etc/php-fpm.d/nagvis.conf
[nagvis]
user = apache
group = apache
listen = 127.0.0.1:9043
listen.allowed_clients = 127.0.0.1
pm = ondemand
pm.max_children = 30
pm.process_idle_timeout = 10s
pm.max_requests = 500
rlimit_files = 4096
php_admin_value[error_log] = /var/log/php-fpm/nagvis-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path]    = /var/lib/php/session
php_value[soap.wsdl_cache_dir]  = /var/lib/php/wsdlcache
EOF

Puis redémarrer les services PHP-FPM et Apache :

sudo systemctl restart php-fpm httpd

Une fois ces étapes terminées, nous devrions pouvoir accéder à l’interface de NagVis via l’URL http://{IP_VM}/nagvis

Login NagVis
Source : NagVis

Pour vous connecter, vous pouvez utiliser les credentials admin par défaut (user: admin, password: admin).

Quels sont les différents types de cartes dans NagVis ?

Regular map

Une regular map est le type classique de carte où l’on va ajouter nous-même différents objets que propose NagVis pour composer notre cartographie.

Regular map
Source : NagVis

Geographical map (interactive)

Les cartes géographiques interactives sont des cartes sur lesquelles, vous pouvez ajouter des objets NagVis qui utiliseront (par défaut) le set d’icônes geo. Ce set prend l’apparence de localisation sur une carte.

Geomap Interactive
Source : NagVis

Les coordonnées x et y des objets correspondent dans cette carte aux coordonnées géographiques en degrés décimaux, où x correspond à la latitude et y à la longitude.

Coordonnées géographiques
Source : NagVis

Geographical map (non interactive)

Les cartes géographiques non interactives se basent, quant à elles, sur un fichier CSV où sont renseignés les éléments avec leurs coordonnées géographiques.

Ce fichier csv doit être placé dans le dossier /usr/share/nagvis/etc/geomap puis de le choisir dans les options de la carte.

Fichier Geomap NI
Source : NagVis

Avec le fichier CSV suivant :

ham-srv1;Hamburg Server 1;53.556866;9.994622
muc-srv1;Munich Server1;48.1448353;11.5580067

On obtient :

Geomap non interactive
Source : NagVis

Le CSV utilisera le nom d’hôte renseigné dans le premier champ du fichier CSV pour récupérer les statuts.

Le deuxième champ est une description libre de l’hôte renseigné pour savoir à quoi correspond l’hôte, si le CSV devait être modifié.

Le troisième et quatrième champs sont les coordonnées géographiques, respectivement latitude et longitude, en degrés décimaux (DD)

Automap

Une AutoMap va générer une carte en se basant sur les relations parents-enfants des hôtes définis dans l’outil de supervision.

Automap
Source : NagVis

Vous pouvez modifier le set d’icônes et changer également la méthode d’affichage des relations dans les options de la carte.

Mode de rendu Automap
Source : NagVis

Dynamic Map

Une carte dynamique va générer automatiquement une carte regroupant un certain type d’éléments, avec la possibilité d’ajouter un filtre.

Attention, ce type de carte n’est compatible qu’avec le backend livestatus (CheckMK). Par exemple, paramétrons la carte pour n’afficher que des hôtes ayant dans leur nom “muc-”

Filtre Dynamic Map
Source : NagVis

Ainsi, dès que le backend NagVis détectera un nouvel hôte avec “muc-” dans son nom, il s’ajoutera automatiquement à la carte.

Les filtres sont au format Livestatus Query Language (LQL).

Continuons notre tuto avec la création d’une « regular map » dans NagVis.

Comment créer une carte "regular map" dans NagVis ?

Pour créer une carte, connectez-vous sur votre NagVis et cliquez sur Options > Gérer les cartes.

Création de carte
Source : NagVis

Choisissons « Regular map ».

Création de carte : regular map
Source : NagVis

NagVis va nous rediriger automatiquement vers les détails de la carte « Regular map ». Vous devez choisir un objet de base. Un objet est une représentation d’une ressource supervisée. Parmi les objets, nous avons : les icônes, les lignes, les gadgets et les objets spéciaux.

Chaque objet est lié à une ressource supervisée sur notre outil de supervision : host, service, hostgroup…

Ajout Objet
Source : NagVis

Il est toujours possible de modifier la ressource liée ou l’apparence de l’objet par la suite. Pour ce faire, faisons un clic-droit sur votre objet, puis Unlock, afin de le rendre modifiable.

Unlock un Objet
Source : NagVis

Puis, refaire un clic droit sur le même objet, puis Modify object, onglet Appearance

Modifier un Objet
Source : NagVis
Modifier apparence de l’objet
Source : NagVis

Ci-dessous une représentation de la plupart des objets possible dans NagVis

Représentation des objets
Source : NagVis

Afin de répondre à des besoins spécifiques, il est également possible de pousser plus loin la customisation des objets. Voyons ensemble objet par objet.

Les icônes

Les icônes sont des png qui changent en fonction du statut de l’élément. Elles viennent en set d’image et quelques-unes sont fournies par défaut avec NagVis.

Vous pouvez les trouver dans le dossier /usr/share/nagvis/share/userfiles/images/iconsets du serveur NagVis.

Fichiers Iconset
Source : NagVis

Il est possible de créer son propre set d’icônes pour pousser la customisation, en respectant la norme de nomenclature suivante : NOMICONSET_STATUS(_OPT).png. Il faut créer une icône pour chaque état :

  • Hôtes : UP, DOWN, UNREACHABLE;
  • Services : OK, WARNING, CRITICAL, UNKNOWN) et leurs états de maintenance: ack, dt et stale;
  • Les éléments en attente de leur premier check : unchecked et pending;
  • Les éléments où NagVis a rencontré un problème pour récupérer les informations : error.

Le nom du set d’icônes apparaîtra ensuite dans la liste, lors de la personnalisation de vos objets NagVis. Vous pouvez également préciser quel set d’icônes utilisé par défaut sur votre carte, pour éviter de changer à chaque fois.

Modifier iconset de la carte
Source : NagVis

Les lignes

Les lignes changent de couleur en fonction du statut de l’élément lié. Elles ont différentes formes et peuvent afficher des métriques de bande-passante, si le service lié fournit cette métrique.

Apparence ligne
Source : NagVis
Métrique traffic
Source : NagVis

Les gadgets

Les gadgets sont des apparences gérées par des scripts PHP. Ils permettent des affichages plus complexes. Quelques gadgets sont installés par défaut avec NagVis.

Représentation gadgets
Source : NagVis

Les objets spéciaux

Pour accéder aux objets spéciaux, allons sur l’interface graphique de NagVis et cliquons sur Éditer la carte > ajouter un objet spécial. Vous pouvez choisir votre objet spécial : figure, zone de texte, apatride ligne et container.

Ajout d'objet spécial
Source : NagVis

Les figures sont des images que vous pouvez ajouter à votre carte. C’est idéal pour ajouter le plan d’une entreprise, d’une région ou même un logo. Vous pouvez uploader des images directement depuis l’interface NagVis.

Upload une figure
Source : NagVis

Puis pour l’ajouter à votre carte, utilisez l’objet spécial “Figure”.

Ajout d’une figure à la carte
Source : NagVis

Les zones de texte permettent d’ajouter des textes à votre carte, avec quelques options de mise en forme.

Les Apatrides lignes sont des simples lignes, sans aucun lien avec un élément de supervision, utilisé pour de la mise en forme ou des schéma

Les container permettent d’afficher des pages web directement dans votre carte.

NagVis et centreon

Par défaut, NagVis ne dispose pas de backend pour l’outil de supervision Centreon. Il faut installer un backend développé par Centreon et maintenu par la communauté.

Nous vous recommandons cet article d’Eric Coquard qui vous explique pas à pas comment le mettre en place. Vous y trouverez en bonus un module Centreon, pour afficher les cartes NagVis directement dans l’UI de Centreon.

Conclusion

Les cartographies sont un excellent complément à votre supervision pour visualiser rapidement les impacts des ressources en alerte, ou pour expliquer rapidement la composition de votre système d’information avec son état en temps réel.

Si vous êtes à l’aise avec le PHP, vous pouvez développer vous-même des backend pour vos applications de supervision ou même des gadgets.

YPSI accompagne les entreprise dans la cartographie de son système d’information et de ses applications. N’hésitez pas à nous contacter !

Partagez cet article :

Laisser un commentaire