Qu'est-ce qu'une règle de mapping VMWare ?

Une règle de mapping permet de mettre en relation lors de l'import un champ de l'API VMWare avec une propriété ou une donnée Shinken en fonction du type de l'élément ( hôte, modèle d'hôte, etc ... ).

  • Une règle peut s'appliquer pour tous les types d’éléments présents dans l'interface de Shinken.

Définition d'une règle de mapping

Comme pour une règle d'application des modèles, une règle de mapping est écrite au format JSON.

La source VMWare ne peut importer que des hôtes alors pour cette source le fichier de règle commencera toujours par "hosts".

Une règle de mapping doit respecter le format suivant :

  • Pour chaque champ VMWare que l'on veut insérer dans un élément Shinken, il y aura un couple séparé par un ":" composé du: 
    • nom du champ de l'API VMWare ( à gauche )
    • nom de la propriété ou de la donnée Shinken ( à droite ).


Une propriété est une information nécessaire au moteur Shinken. Pour utiliser une propriété Shinken, vous devez utiliser le nom de cette propriété défini pour l'import des fichiers ( voir la liste des clés d'import présente dans la page Syntaxe des fichiers d'imports ).

Une donnée est une valeur qui va être ajoutée en complément des propriétés. Pour utiliser une donnée, il faut lui donner un nom en la faisant commencer par underscore "_", comme par exemple "_OS_TYPE".

{
  "hosts": {
    "name": "host_name",
    "guest.ipAddress" : "address"
    "shinken.machine_type": "_MACHINE_TYPE",
    "config.product.osType": "_OS_TYPE",
  }
}

Il y a 4 règles de mapping définies :

Clé VMWareClé ShinkenDescription du mapping
namehost_nameLa valeur VMWare "name" va devenir le nom de l'hôte ( propriété host_name )
ipAddressaddressLa valeur VMWare "ipAddress" sera prise en compte comme adresse pour l'hôte ( propriété address )
shinken.machine_type_MACHINE_TYPELa valeur VMWare "shinken.machine_type" deviendra une donnée nommée _MACHINE_TYPE sur l'hôte
config.product.osType_OS_TYPELa valeur VMWare "config.product.osType" deviendra une donnée nommé _OS_TYPE sur l'hôte
  • Il est possible d'ajouter des commentaires dans ce fichier.
    Toutes les lignes qui commencent par le caractère # seront considérées comme des commentaires.

  • La clé d'import Shinken n'est pas le nom affiché dans les pages des éléments, mais plutôt le nom de la propriété lors de l'import dans Shinken.
    Pour trouver le nom d'import d'une propriété, vous pouvez ouvrir l'aide d'une propriété dans une page d'édition d'un élément voir Concept général des pages affichant les Eléments ( paragraphe "Informations contextuelles" ).

  • Retrouvez la liste complète des champs VMware collectés par la source sur la page Liste des champs collectés auprès des VCenters ou ESXs

La propriété shinken _SE_UUID ne peut pas être mappée

Surcharge des mappings par défaut

Les mappings par défaut peuvent être surchargés en créant un mapping avec le nom de la clé que l'on veut désactiver.

  • Pour le champ en question, au lieu de choisir une propriété Shinken ( ou donnée ), il faut utiliser le mot-clé "disable "


Désactivation du champ shinken.machine_type

{
  "hosts":{
    "shinken.machine_type" : "disable",
    "config.product.fullName" : "display_name"
  }
}

Chemin du fichier de définition des règles de mapping

Pour ajouter une règle utilisateur d'application des modèles, il faut éditer le chemin suivant : 

/etc/shinken-user/source-data/source-data-[nom de la source]/configuration/mapping/user_mapping_rules_vm.json
/etc/shinken-user/source-data/source-data-[nom de la source]/configuration/mapping/user_mapping_rules_esx.json

/etc/shinken-user/source-data/source-data-synchronizer-collector-vmware/configuration/mapping/user_mapping_rules_vm.json
/etc/shinken-user/source-data/source-data-synchronizer-collector-vmware/configuration/mapping/user_mapping_rules_esx.json

Visualiser la liste des mappings

Pour visualiser la liste des mapping définie pour cette source, rendez-vous dans l'onglet "Mapping vers les propriétés de Shinken". 

Dans cet onglet, vous trouverez les chemins des fichiers de définition des règles mapping des utilisateurs pour l'ESX et les Machines virtuelles du serveur ESX ( 1 )

  • (warning) Un message d'avertissement apparaîtra si un des fichiers n'existe pas.
  • Pour résoudre ce problème, créer le fichier avec le chemin indiqué sur l'interface puis appuyer le bouton de rafraîchissement ( 2  ).
  • Ce fichier peut être vide. Dans ce cas les valeurs par défaut seront utilisées.

Dans l'entête de la liste, vous trouverez aussi le bouton de rafraîchissement de la liste des mappings ( 2 ).

  • Ce bouton permet de rafraîchir la liste des mappings sans devoir redémarrer le Synchronizer.
  • Il faudra relancer un import pour réappliquer les nouveaux mapping sur les éléments importés.




La liste des mappings ( 3 ) comporte à la fois les mappings définis par l'utilisateur ( ligne bleue ) et les mappings par défaut ( ligne grise ).

La liste affiche pour chaque mapping une série de colonnes :

  • Prob. => Affiche les problèmes ou les avertissements si le mapping n'a pas été correctement défini.
  • Défini par => Par qui le mapping a été définie ( Par défaut ou par l'utilisateur ).
  • Mapping ESX/VM => Le type de mapping ( un mapping spécifique à l'ESX ou un mapping spécifique aux VMs du serveur ESX ).
  • La clé dans la source => Le nom du champ dans l'API VMWare.
  • Description ==> La description du champ dans la source.
  • Clé Shinken => Nom de la propriété ou donnée Shinken vers laquelle la valeur sera copiée.
  • Le nom de la propriété ou donnée Shinken dans l'interface.


Certaines des règles de mapping défini par "Défaut" ont une valeur définie dans les champs "Clé de la source" et la "Description", mais aucune valeur dans les champs " Clé Shinken" et " Nom de propriété dans l'interface ".

  • Cela signifie que ces mappings ne seront pas liés à aucune propriété Shinken.
  • Nous les avons volontairement listés ici pour que vous puissiez les voir, et faire votre propre mapping si vous en avez besoin ( afin de ne pas partir d'une feuille blanche ).

Ces mappings peuvent être surchargés dans l'un des fichiers de mapping utilisateur ( 1 ).

En bas à droite ( 4 ) se trouve le bouton pour afficher l'aide de la page ( Raccourci sur la touche F1 ).

Exemple

Dans les exemples suivants , nous surchargeons les règles de mapping de " config.guestFullName"  et " config.guestId " qui ne sont pas liées à une propriété Shinken. 

Pour ce faire, il vous suffit de créer, dans l'un des fichiers de mapping utilisateur ( 1 ), une règle possédant la même clé que celle que vous voulez surcharger ( 5 ).

Avant :



Après :