This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved. |
1. Qu'est-ce que NagVis ?
Dans l'article consacré aux principes de base de la supervision, vous avez pu voir la carte de la topologie d'un réseau basée sur les relations parent-enfant. C'est NagVis qui est chargé de générer ces cartes. Cette extension permet de visualiser, par exemple, des infrastructures, des serveurs, des ports ou des processus.
Le fonctionnement de NagVis est en principe très simple : Checkmk, ou plus précisément Livestatus, fournit des données backend telles que les ordinateurs hôtes, les services, les groupes d’hôtes et les groupes de service. Ces éléments issus de votre supervision peuvent être placés sous forme d’icônes sur différentes cartes. Ces icônes dynamiques peuvent alors afficher l’état actuel de chacun des ordinateurs hôtes et services. Des informations supplémentaires plus détaillées peuvent être fournies par des infobulles. Enfin, les icônes et autres éléments constituent également des liens vers les objets Checkmk qu’ils représentent. Parmi les autres éléments disponibles, on trouve des lignes, des affichages de performances (gadgets) et des conteneurs pour du contenu externe.
Pour mieux comprendre ce qu’il est possible de réaliser avec NagVis dans Checkmk, voici trois exemples :
Cartes géographiques basées sur OpenStreetMap pour la gestion des emplacements.
Cartes topologiques automatiques à partir des relations parent-enfant.
Cartes de commutateurs individuels ou de salles de serveurs pour permettre un aperçu des ports et du matériel.
À condition que les relations parent-enfant aient été définies, vous pouvez, sans autre action, afficher une carte dans Checkmk en utilisant Monitor > Overview > Parent / Child topology. Aucune étape supplémentaire n'est nécessaire ici.

2. Configuration de NagVis
NagVis est entièrement intégré à Checkmk et configuré de manière à ce que vous puissiez immédiatement commencer à ajouter des éléments de votre supervision aux cartes.
Pour démarrer NagVis, ouvrez d'abord la section contenant les snap-ins disponibles pour la barre latérale via
en bas de la barre latérale.
Sélectionnez ici le snap-in « NagVis maps », puis lancez NagVis à l'aide du bouton « Edit ».

Avant de créer votre première carte, nous vous recommandons de consulter la configuration principale dans Options > General Configuration. Vous y trouverez plus de 100 options pour les paramètres de base, tels que les formats de données et les paramètres linguistiques, allant de l'affichage des objets sur les cartes à la pondération des états des ordinateurs hôtes et des services disponibles.

À ce stade, nous préférons ne pas fournir de description exhaustive de l'utilisation de NagVis, et en particulier de ses options de configuration. NagVis dispose en effet d'une documentation très complète et détaillée, dans laquelle toutes les options de la configuration principale sont également expliquées. Dans ce qui suit, nous nous limiterons aux principes de base les plus essentiels pour générer des cartes simples et utiles à l'aide de NagVis dans Checkmk.
3. Création de cartes
3.1. Les différents types de cartes
NagVis propose au total cinq types de cartes différents : les cartes géographiques standard, dynamiques, automatiques et interactives/non interactives.
La carte standard est le type de carte classique. Elle permet de visualiser n’importe quel scénario souhaité, qu’il s’agisse de ports du switch, de salles de serveurs ou d’infrastructures complètes. Les éléments (icônes, lignes, etc.) sont ajoutés individuellement aux cartes à partir des inventaires des ordinateurs hôtes et des services Checkmk.
La carte dynamique ressemble largement à la carte standard, avec toutefois une différence significative : les hôtes, les services, les groupes d’hôtes et les groupes de service ne sont pas spécifiés explicitement, mais à l’aide de filtres sous forme d’expressions régulières ; pour être plus précis, sous forme de filtres Livestatus valides. De cette manière, les nouveaux hôtes et services, ainsi que toute modification, apparaissent automatiquement sur la carte sans qu’aucune action manuelle supplémentaire ne soit requise.
Vous connaissez déjà Automap. Il s'agit de la carte de topologie réseau mentionnée au début de cet article, qui est générée de manière entièrement automatique à partir des relations parent-enfant définies dans Checkmk.
La carte géographique est une carte dont l'arrière-plan est rendu à l'aide de données cartographiques issues du projet OpenStreetMap (OSM).
3.2. Création d’une automap
L'Automap est le moyen le plus rapide de créer une carte représentative.
Créez une nouvelle carte de type « Automap based on parent/child relations » via Options > Manage Maps > Create Map.
Dans « ID », saisissez le nom interne « myautomap », et dans « Alias », votre nom « My Automap » pour l'affichage.

La carte elle-même apparaîtra immédiatement dans la zone de contenu, et le lien correspondant s'affichera dans le snap-in NagVis maps. Les paramètres spécifiques à Automap peuvent ensuite être personnalisés dans Edit Map > Map Options > Automap. L'entrée render_mode est particulièrement intéressante car elle définit la disposition fondamentale des nœuds sur la carte.

De plus, la racine de la carte peut être spécifiée ici – bien qu’il soit plus simple d’y parvenir en cliquant avec le bouton droit sur une icône de la carte, puis en sélectionnant l’entrée du menu contextuel « Make root ».

3.3. Création d'une carte standard
Les cartes standard sont les cartes les plus courantes dans NagVis. Afin de vous familiariser avec les procédures de NagVis et ses éléments les plus importants, nous allons vous montrer comment créer une petite carte d’un rack de serveurs. Cela permettra de visualiser un ordinateur hôte sur un arrière-plan individuel et de fournir des alertes visuelles et sonores lorsque l’ordinateur hôte n’est pas OK.
Pour créer la carte, ouvrez les options via Options > Manage Maps.
Ici, dans Create Map, donnez à la carte le nom mymap et l'alias My Map.
Pour l'Map Type, sélectionnez Regular map et confirmez en cliquant sur le bouton Create.

Importez ensuite une image du rack en cours de supervision comme arrière-plan. Pour ce faire, utilisez Options > Manage Backgrounds. Sélectionnez le fichier local et confirmez en cliquant sur le bouton Upload.

L'image importée doit maintenant être définie comme arrière-plan de la carte actuelle. Ouvrez les options de la carte via « Edit Map > Map Options » et accédez à l'onglet « Appearance ». Activez ici l'option « map_image » et sélectionnez l'image souhaitée dans le menu. Ne sauvegardez pas pour l'instant : un réglage dans les options de la carte est encore nécessaire.

Accédez à l'onglet « Obj. Defaults ». Vous pouvez y activer l'option « label_show ». Cette option permet d'afficher les noms des hôtes et des services sur les icônes correspondantes de la carte ; sans cela, les icônes ne seront identifiées que par leurs infobulles. Enfin, enregistrez ces paramètres.

Il est maintenant temps d’ajouter l’hôte. Cliquez sur « Edit Map > Add Icon > host », puis placez le curseur (qui apparaît désormais sous la forme d’une croix) à l’endroit de la carte où l’icône doit être placée — à ce stade, la boîte de dialogue « Create Object » s’ouvrira. Dans l’onglet « General », sélectionnez simplement l’hôte souhaité dans le menu déroulant « host_name » et enregistrez. Si vous gérez plusieurs instances Checkmk, une source de données alternative peut être utilisée via « backend_id ».

L'icône est désormais positionnée sur la carte et fournit des informations détaillées via une infobulle. En cliquant sur l'icône, vous accédez directement à l'ordinateur hôte dans Checkmk — tous les objets positionnés dans NagVis sont des liens vers vos objets Checkmk.

Le mode édition doit être activé pour pouvoir déplacer ou modifier une icône. Cliquez avec le bouton droit de la souris sur l'icône pour ouvrir son menu contextuel, puis sélectionnez « Unlock ».
Vous pouvez désormais déplacer l'icône ou ouvrir à nouveau le menu contextuel. Vous y verrez alors apparaître plusieurs nouvelles options qui vous permettront de cloner, supprimer ou modifier l'objet, ou encore de demander une confirmation pour accuser réception d’un incident directement à partir de cet endroit en choisissant l'option « Acknowledge ».
Une fois la modification d'un hôte/d'une icône terminée, ouvrez à nouveau son menu contextuel et sélectionnez « Lock ». À propos, avec « Edit Map > Lock/Unlock all », le mode d'édition peut également être activé et désactivé pour l'ensemble de la carte.
Vous pouvez désormais ajouter d'autres ordinateurs hôtes à la carte. L'ajout de services, de groupes d'hôtes et de groupes de service fonctionne de manière similaire.
Pour finir, la carte peut être configurée de manière à ce que, lors du chargement, les problèmes soient signalés par un son d'avertissement et des icônes d'ordinateurs hôtes clignotantes. Pour cela, ouvrez « Edit Map > Map Options » et passez à l'onglet « Events ». Ici, en haut de l'écran, activez « event_on_load », et en bas, checkez la case « event_sound » pour recevoir des avertissements sonores.

3.4. Création d'une carte géographique
Les cartes géographiques sont disponibles sous deux formes différentes : La variante interactive peut être parcourue et agrandie comme sur Google Maps & Co., et est automatiquement définie comme arrière-plan. Les objets placés sur ces cartes apparaîtront sur toutes les cartes suivantes du même type. NagVis part du principe qu’un objet se trouve toujours à un emplacement spécifique, quelle que soit l’échelle de la carte. Ainsi, par exemple, un ordinateur hôte situé à Hambourg apparaîtra sur une carte du monde, ainsi que sur une carte de l’Allemagne et, bien sûr, sur une carte de Hambourg.
En fin de compte, NagVis considère les différentes sections de carte et les différents niveaux de zoom uniquement comme des viewports. À tout moment, les viewports peuvent être enregistrés en tant que nouvelle carte distincte. Étant donné que les viewports/cartes peuvent également être affichés sous forme d'icônes sur les cartes, celles-ci peuvent, dans une certaine mesure, être imbriquées. Ainsi, par exemple, une carte de l'Allemagne avec ses dépendances peut être affichée, puis, d'un simple clic, une vue plus détaillée d'un Land, et ensuite, selon les besoins, des cartes pour une filiale spécifique, une salle de serveurs, et de là, même une carte pour un commutateur individuel.
Contrairement à la navigation manuelle, l’utilisation d’une carte interactive est plus rapide et plus pratique ; de plus, les cartes individuelles sont actives, ce qui permet, par exemple, de les afficher en parallèle sur des écrans distincts, ou de les configurer pour une rotation automatique sur un seul écran (nous y reviendrons plus tard). Autre point important : de cette manière, un résumé des cartes associées est ainsi disponible sous forme d’infobulle. Cela rend également leur utilisation plus intuitive pour les tiers, car ils n’ont pas à cliquer à travers des hiérarchies ni à savoir où il est nécessaire de zoomer.
Les cartes géographiques non interactives doivent être alimentées par un fichier CSV contenant les ordinateurs hôtes et les coordonnées à afficher. Il n'y a pas d'éléments généraux préexistants dans ce cas.
Dans la documentation NagVis, les cartes géographiques interactives sont appelées « worldmaps », et les variantes non interactives sont appelées « geomaps ». Les worldmaps ont été ajoutées pour la première fois à la version 1.9 de NagVis.
Exemple : créez une carte interactive pour l'ensemble de l'Allemagne, et associez-y une nouvelle viewport pour la Rhénanie-du-Nord-Westphalie (NRW).
Créez une carte géographique interactive – une « worldmap » – via Options > Manage Maps > Create Map.
Dans « Map Type », sélectionnez l'option « Geographical Map (interactive) » – l'ID (mygeomap) et l'alias (My Geographical Map) peuvent également être définis ici.

Spécifiez la section de la carte que vous souhaitez afficher en aperçu, puis enregistrez cette vue à l'aide de « Edit Map > Viewport > Save view ».

Zoomez ensuite sur la carte jusqu’à obtenir le niveau de détail souhaité pour la Rhénanie-du-Nord-Westphalie.
Cette fois-ci, enregistrez la vue de la table à l’aide de « Map > Viewport > Save as new map » sous le nom de la nouvelle carte « mygeomap_nrw ».

L'alias de la carte sera repris de la carte d'origine, de sorte que vous disposez désormais de deux cartes nommées « My Geographical Map » dans la barre de navigation à gauche.
Définissez donc maintenant un nouvel alias « My Geographical Map NRW » avec « Edit Map > Map Options ».

Passez à la carte de l'Allemagne My Geographical Map et ajoutez le lien vers la carte de la Rhénanie-du-Nord-Westphalie avec Edit Map > Add Icon > Map. Dans le dialogue Create Object qui s'affiche, il vous suffit de sélectionner la carte mygeomap_nrw dans le menu map_name.
Ensuite, un clic sur la nouvelle icône de la carte de l'Allemagne vous mènera directement à la carte de la Rhénanie-du-Nord-Westphalie. De la même manière, d'autres cartes peuvent être reliées entre elles, et bien sûr, une navigation permettant de revenir de la carte de la Rhénanie-du-Nord-Westphalie vers la carte de l'Allemagne peut également être intégrée.

Le chargement proprement dit du contenu de la carte correspond également à la procédure applicable aux autres types de cartes. Mais n’oubliez pas : tous les objets que vous ajoutez à l’une des cartes du monde apparaîtront également sur toutes les autres cartes du monde, car il ne s’agit en réalité que de vues alternatives de la situation géographique réelle.
3.5. Création d'une carte dynamique
Les cartes dynamiques diffèrent des cartes classiques – comme mentionné précédemment – par la méthode d'ajout de leurs éléments. Au lieu d'ajouts manuels, les cartes dynamiques reçoivent leurs éléments – hôtes, services, groupes d'hôtes et groupes de service – de manière dynamique via les filtres Livestatus. À titre d'exemple, une carte devrait recevoir automatiquement les services CPU load de tous les ordinateurs hôtes.
Pour créer une telle carte, commencez à nouveau par Options > Manage Maps > Create Map, puis attribuez un ID (mydynamicmap) et un alias (My Dynamic Map).

Ouvrez ensuite les options de la carte avec Edit Map > Map Options et sélectionnez l'onglet Dynmap. Activez ici l'option dynmap_object_types et choisissez les services comme type d'objet.
La partie intéressante vient ensuite avec la deuxième option « dynmap_object_filter », qui permet de définir le filtre pour les services.
Utilisez la requête Livestatus simple « Filter: description ~ CPU load\n ».
Ainsi, la chaîne « CPU load » sera recherchée dans la colonne « description ».
Cette chaîne « \n » ne fait pas partie du filtre lui-même, mais génère un saut de ligne requis par la requête Livestatus construite par le filtre.

Si vous enregistrez maintenant, tous les services de supervision de CPU load s'afficheront sur la carte. De même, tout nouvel objet de la supervision correspondant au filtre sera automatiquement ajouté à la carte.
La documentation NagVis décrit également comment la configuration fonctionne directement à l'aide des fichiers de configuration.
À propos : comme les cartes dynamiques peuvent également être enregistrées en tant que cartes statiques avec Actions > Export to static map, cette méthode peut servir d’aide aux débutants pour créer des cartes statiques contenant un très grand nombre d’éléments.
4. Personnalisation des cartes
4.1. Lignes
NagVis propose différents types de lignes : il existe des lignes purement décoratives sans autre fonction sous Edit Map > Add Special > Stateless Line , des lignes qui visualisent les ordinateurs hôtes et les services à l'aide de « couleurs de feux tricolores », de la même manière que pour les icônes, ainsi que les lignes de carte météo. Ces dernières visualisent les bandes passantes du réseau à l'aide de sept couleurs distinctes. Pour créer une ligne de carte météo, procédez comme suit :
Commencez par Edit Map > Add Line > Service et sélectionnez un ordinateur hôte et une interface réseau dans le dialogue Create Object.

Ensuite, passez à l'onglet « Appearance » et définissez l'option « view_type » sur « line ».
Sous « line_type », activez l'entrée « --%+BW-><-%+BW-- ».
Ainsi, des lignes seront générées pour le téléchargement et le chargement, et elles incluront des étiquettes pour la bande passante en pourcentage (%) et en valeur absolue (BW).

Une fois enregistrées, les lignes apparaîtront sur la carte. En cliquant sur l'icône « cadenas » au milieu, vous pouvez déplacer les extrémités ainsi que le point central de la ligne.

NagVis fournit également une légende par défaut : à l'aide de l'Edit Map > Add Special > Shape, insérez une « forme » – il s'agit simplement d'une image dans NagVis. Dans l'option « icon », sélectionnez l'image « demo_traffic_load_legend.png » dans le menu déroulant.

4.2. Gadgets
Les gadgets, tout comme les lignes et les icônes, sont des aides à la visualisation sur une carte. Ils affichent des données de performance sous la forme de compteurs de vitesse, de thermomètres ou d’autres éléments similaires. Par conséquent, ils ne sont disponibles que pour les services. À titre d’exemple, la charge sur une interface réseau peut être représentée sous la forme d’un compteur de vitesse :
Ajoutez un service sous forme d'icône à votre carte à l'aide de Edit Map > Add Icon > Service. Dans l'onglet « General », sélectionnez un ordinateur hôte et une interface réseau appropriée comme service.
Passez à l'onglet « Appearance » et définissez « view_type » sur « gadget ».
Juste en dessous, activez « gadget_url ».
Vous trouverez ici plusieurs variantes d'affichage qui correspondent aux fichiers de « ~/share/nagvis/htdocs/userfiles/gadgets/ ».
Sélectionnez « std_speedometer.php » pour l'affichage du compteur de vitesse.

4.3. Faire pivoter les cartes
Sur la page d'aperçu de NagVis, vous avez peut-être remarqué l'entrée « Rotations » en bas à gauche de la barre de navigation, ou respectivement la liste des cartes sous « Rotation Pools » au centre. Les cartes peuvent être configurées pour pivoter automatiquement à n'importe quel intervalle souhaité, ce qui est par exemple pratique pour les écrans d'information accessibles au public.
Vous pouvez configurer cette fonctionnalité dans le fichier de configuration NagVis ~/etc/nagvis/nagvis.ini.php.
Ouvrez ce fichier et faites défiler jusqu’à la ligne 448, où vous trouverez l’entrée Rotation pool definitions.
Trois lignes sont nécessaires ici pour définir un pool de rotation, les affectations appropriées et l'intervalle — dans l'exemple ci-dessous, le pool myrotation avec les affectations mymap1, mymap2 et mymap3, et avec un intervalle de 30 secondes :
