Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Scroll Ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmlfalse
Panel
titleSommaire

Table of Contents
stylenone

Concept

Les règles de mapping permettent, lors de l'import, de mettre en relation un champ du fichier Excel avec une propriété ou une donnée de Shinken en fonction du type de l'élément ( hôte, modèle d'hôte, etc ... ).

  • Elles s'appliquent à tous les types d’éléments présents dans l'interface de Shinken.

Elles peuvent être visualisées depuis l'onglet "Mapping vers les propriétés et les données de Shinken" de l'interface de la source.

Panel

Image Added

Définition des règles de mapping

Les règles de mapping sont écrites dans l'onglet "Configuration" du fichier Excel.

  • Elles servent à faire correspondre les champs collectés par la source aux propriétés et données dans Shinken.


Info
titleDéfinition : propriété

Une propriété est une information nécessaire au moteur Shinken.

  • Pour utiliser une propriété Shinken, il faut utiliser le nom de la clé d'import de Shinken (  visible dans l'aide des pages d'édition des éléments    ),
  • La clé d'import de l'uuid des éléments ( pas trouvable dans l'interface ) est "uuid"


Panel
titleClé d'import dans Shinken ( visible dans l'aide )

Image Added

Info
titleDéfinition : donnée

Une donnée est une valeur qui va être ajoutée en complément des propriétés.

  • Pour définir dans le mapping une donnée Shinken :
    • Il est recommandé d'utiliser la syntaxe "DATA"  : "DATA(NOM_DE_LA_DONNEE_SHINKEN)".
    • Il faut que le nom de la donnée Shinken :
      • soit en majuscules
      • ne doit pas commencer par un underscore.
      • contient que des lettres ou des chiffres ou un underscore ( _ ) ou un tiret ( - )

Si la syntaxe utilisant DATA(...) est à privilégier, il est également possible de créer une donnée dans Shinken en lui donnant un nom en majuscule commençant par un underscore ( ex : _NOM_DONNEE_SHINKEN ) et en l'associant au champ récolté par la source.

Forcer la valeur du nom de l'élément

Il est possible d’ajouter le suffixe [FORCE] ( sans espace ) à la clé d’import d'un élément Shinken afin de forcer la valeur associée ( voir la page  Forcer la valeur des noms des éléments et des propriétés de type liste (comme la propriété des modèles hérités) ).

Exemple :


Panel

Image Added

Lorsqu’une propriété est marquée avec [FORCE], elle est traitée de la manière suivante par le mélange des sources :

  • La valeur est considérée comme prioritaire par rapport aux autres sources.
  • Si une autre source importe le même objet avec une valeur différente, cette dernière est ignorée.
  • En cas de conflit entre plusieurs valeurs forcées, la priorité de la source détermine la valeur conservée.

Ajouter [FORCE] à une clé d'import contenant une liste ( comme la propriété "members" servant à définir les membres d'un groupe d'utilisateurs ) aura pour effet de remplacer complètement la liste des autres sources par celle fournie avec l'option [FORCE]

Liste des clés d'import pouvant être forcées

Excerpt Include
Syntaxe des fichiers d'imports
Syntaxe des fichiers d'imports
nopaneltrue

Exemple de mapping dans le fichier excel

Panel

Image Added


Il y a 8 règles de mapping définies dans l'exemple ci-dessus :

Type d'action réaliséeChamps dans ExcelPropriétés dans ShinkenDescription du mapping

Mapping simple vers une Propriété

Serveur / Application

host_nameLa valeur dans la colonne "Serveur / Application" deviendra le nom de l'hôte ( propriété host_name ).
Mapping simple vers une PropriétéIPaddressLa valeur dans la colonne "IP"  sera prise en compte comme adresse pour l'hôte ( propriété address ).
Concaténation de plusieurs champs collectésCONCAT($Type$ - $OS$, Modèle hôtes - $Datacenter$)use

Les valeurs dans les colonnes "Type", "OS" et "Datacenter" seront concaténées et le résultat sera utilisé pour lister les modèles de l'hôte ( propriété use ).

Par exemple, si l'hôte a les valeurs suivantes :

  • Colonne "Type" → "server"
  • Colonne "OS" → "linux"
  • Colonne "Datacenter" → "bordeaux"

Sa propriété "use" vaudra :

  • "server - linux, Modèle hôtes - bordeaux"

Voir Opérateur CONCAT pour les concaténations

Transformation du contenu d'un champStatus>TRANSFORM(ONGOING=>0,OK=>1)enabled

La valeur de la colonne "Status" sera transformée et servira à définir si l'hôte est activé ou non ( propriété enabled ):

  • Si la valeur de l'hôte dans la colonne "Status" vaut "ONGOING", la propriété enabled vaudra "0"
  • Si la valeur de l'hôte dans la colonne "Status" vaut "OK", la propriété enabled vaudra "1"

Voir Opérateur TRANSFORM pour les transformations

Mapping simple vers une DonnéeOSDATA(OPERATING_SYSTEM)

La valeur de la colonne "OS" sera stockée dans la donnée "OPERATING_SYSTEM". Il s'agit de la syntaxe à privilégier pour les données.

IMPORTANT :  la forme _OPERATING_SYSTEM au lieu DATA(OPERATING_SYSTEM) est fonctionnelle mais DEPRECIÉE.

Mapping simple vers une Donnée avec un transformation préalable.OS>TRANSFORM(Linux=>Unix)DATA(OS_FAMILY)

La valeur de la colonne "OS" sera récupérée et transformée avant d'être stockée dans la donnée "OS_FAMILY"

IMPORTANT :  la forme _OS_FAMILY au lieu DATA(OS_FAMILY) est fonctionnelle mais DEPRECIÉE.

Mapping simple vers plusieurs DonnéesMANY_FIELDS_BY_REGEX(EXTRAIT-INFO-(.*)-(.*)) DATA( $1 _ $2 )

La valeur de toutes les colonnes dont le nom :

  • Commence par "EXTRAINFO-"
  • Est constitué de deux autres parties séparées par un tiret ( - )

Deviendront des données dont les noms reprendront les deux parties.

Info
titleExemple :

Les valeurs dans la colonne "EXTRAIT-INFO- MAC - ADDRESS " seront stockées dans des données qui s'appelleront " MAC _ ADDRESS "


Opérateur pour les règles de mapping

Les opérateurs des règles de mapping permettent de transformer les données collectées afin de les adapter au format de Shinken et aux besoins de la supervision.

Info

Les opérateurs suivants ne sont pas disponibles pour cette source, car ils fonctionnent avec des listes et cette source ne fournit pas d’éléments dont la valeur est une liste ; seules des chaînes de caractères séparées par des virgules sont disponibles.

  • VALUES
  • CONCAT_ON_ALL

Anchor
regles_mapping_transform
regles_mapping_transform

Opérateur TRANSFORM pour les transformations

Grâce à l'opérateur  TRANSFORM  il est possible de transformer du texte.

  • Exemple : Le fichier Excel fournit la valeur "Préproduction" et l'on veut transformer cette valeur en "PREPROD" à la place.
  • Exemple : Le fichier Excel fournit la valeur "TODO" et l'on veut transformer cette valeur en "0" à la place.


La syntaxe de TRANSFORM est la suivante :

Code Block
languagejs
themeConfluence
TRANSFORM(transformation1,transformation2,transformation3)
  • TRANSFORM permet d'indiquer plusieurs transformations, ces dernières sont séparées par des virgules.
  • Attention à ne pas mettre d'espace avant ou après une virgule, autrement, il sera pris en compte dans la transformation.
  • Il n'y a actuellement pas de limite sur le nombre de transformations autorisées.


Pour écrire une transformation, il faut séparer le texte à transformer par "=>" du texte désiré ( désigné ci-après par le mot "séparateur" ) : TEXTE1=>TEXTE2

Voici un exemple de syntaxe avec 2 transformations :

Code Block
languagejs
themeConfluence
TRANSFORM(BORDEAUX=>BDX,PARIS=>PAR)


TRANSFORM permet également de supprimer du texte en laissant vide la partie à droite du séparateur ( => ) censée contenir la modification à apporter au texte.

Code Block
languagejs
themeConfluence
TRANSFORM(DEAUX=>,IS=>)


Exemple avec une machine possédant la colonne suivante :

ENV

Production_Bordeaux


Et le mapping suivant :

TypeChamps dans ExcelPropriétés dans Shinken
ColonneENV>VALUES(=Bordeaux)>TRANSFORM(Production=>Prod,Bordeaux=>bdx)DATA(TRANSFORM_OPERATION)


La donnée TRANSFORM_OPERATION contiendra donc la valeur suivante :

  • Prod_bdx


Warning

Le caractère $ est utilisé ici pour indiquer à TRANSFORM d'aller chercher les valeurs à faire apparaître, il n'est donc pas possible de l'utiliser dans un autre but que celui-ci.

Anchor
regles_mapping_concat
regles_mapping_concat

Opérateur CONCAT pour les concaténations 

Il est possible de concaténer les valeurs de plusieurs colonnes pour former la valeur d'une propriété d'un élément de Shinken.

  • Cela est possible grâce à l'opérateur  : CONCAT.
  • Exemple : Un hôte possédant les colonnes suivantes :

OSLinux
ENVProduction
LOCATIONBordeaux

Et les informations doivent apparaître de la manière suivante dans la donnée nommée MACHINE_INFOS : "Production - Linux - Bordeaux"


La syntaxe se fera de la manière suivante dans le fichier de Mapping.

TypeChamps dans ExcelPropriétés dans Shinken
ColonneCONCAT($OS$ - $ENV$ - $LOCATION$)DATA(MACHINE_INFOS)
Warning

Le caractère $ est utilisé ici pour indiquer à CONCAT d'aller chercher les valeurs souhaitées, il n'est donc pas possible de l'utiliser dans un autre but que celui-ci.

Si la colonne est vide, alors CONCAT ne fournira pas de valeur pour cette colonne.

Exemple : avec les mêmes données que l'exemple précédent, sauf que "LOCATION" n'a aucune valeur, la donnée MACHINE_INFOS vaudra : " Production - Linux - "

Anchor
reglesMappingRegex
reglesMappingRegex

Opérateur MANY_FIELDS_BY_REGEX pour règles de mapping dynamiques ( expressions régulières )

L'opérateur MANY_FIELDS_BY_REGEX permet de mapper plusieurs champs à importer dans Shinken à l'aide d'une expression régulière en une seule règle.

Couramment, le mapping entre les champs importés par la source et les propriétés de Shinken est exhaustif. Cependant, lors de la récupération des données, il est possible d'avoir un grand nombre de champs différents à importer dans Shinken.

Dans ce cas, le fonctionnement habituel ne suffit plus, c'est pour cela que les règles de mapping peuvent désormais faire appel à des expressions régulières.

Une expression régulière est une formule qui sert à rechercher ou reconnaître des motifs dans du texte.

Par exemple :

  • Trouver toutes les clés qui commencent par "EXTRAINFO-" et qui sont en deux parties séparées par un tiret ( - ).


Pour les utiliser dans le mapping, il faut les écrire sous le format suivant dans la colonne "Propriétés dans Excel" :

Code Block
languagejs
themeConfluence
MANY_FIELDS_BY_REGEX(EXPRESSION)

où "EXPRESSION" est l'expression régulière.


Il est possible de récupérer les groupes matchés dans l'expression régulière ( voir la page suivante pour une aide sur les groupes dans les expressions régulières :  Guide des expressions régulières - groupe ) pour construire le nom de la donnée dans Shinken. Pour ce faire, il faut utiliser "$" suivi du numéro du regroupement ( $1, $2, $3, etc. )

Warning

Il n'est pas possible d'avoir plus de regroupements dans le nom de la donnée qu'indiqués dans l'expression régulière. On ne peut donc pas faire correspondre la règle "MANY_FIELDS_BY_REGEX(EXTRAINFO-(.*)-(.*))" aux données "DATA($1_$2_$3)" car l'expression ne recherche que deux regroupements.

Exemple d'expression régulière
Panel

Image Added

Avec cette expression régulière, la valeur de toutes les colonnes dont le nom :

  • Commence par "EXTRAINFO-"
  • Est constitué de deux autres parties séparées par un tiret ( - )


Deviendront des données dont les noms reprendront les deux parties.

  • $1 correspond à la partie capturée par les premières parenthèses
  • et $2 par les deuxièmes.
     
Info
titleExemple :

Les valeurs dans la colonne "EXTRAINFO- MAC - ADDRESS " seront stockées dans des données qui s'appelleront " MAC _ ADDRESS "

Désactivation d'un mapping

Les mappings peuvent être désactivés, cela permet de conserver un mapping sans qu'il soit importé, afin de ne pas avoir à le supprimer. 

  • Pour désactiver un mapping, au lieu de choisir une propriété ( ou donnée )  Shinken , il faut utiliser le mot-clé "disable ".


Info
titleExemple:

Désactivation du champ Status>TRANSFORM(TODO=>0,OK=>1)

TypeChamps dans ExcelPropriétés dans Shinken
ColonneStatus>TRANSFORM(TODO=>0,OK=>1)disable
Panel

Image Added

Visualiser la liste des mappings

Pour visualiser la liste des mapping définie pour cette source, il faut se rendre dans l'onglet "Mapping vers les propriétés de Shinken". 

Dans cet onglet, se trouve le chemin du fichier de configuration ( 1 )

  • (warning) Un message d'avertissement apparaîtra si le fichier n'existe pas.
    • Pour résoudre ce problème, créer le fichier avec le chemin indiqué sur l'interface puis appuyer sur le bouton de rafraîchissement ( 2 ).
  • Ce fichier ne peut pas être vide,
    • si l'onglet "Configuration" n'est pas rempli, la source générera des erreurs.


Dans l'en-tête de la liste, se trouve également 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 mappings sur les éléments importés.


Panel

Image Added



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éfini ( Par défaut ou par l'utilisateur ).
  • Classe => Le type de l'objet concerné par le mapping ( hôte, cluster, etc ).
    • Si plusieurs types ont le même mapping deux lignes différentes seront affichées.
  • La clé dans la source => Le nom de la colonne dans la source Excel.
  • 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.
  • Nom de la propriété dans l'interface => Le nom de la propriété ou donnée Shinken dans l'interface.


Certaines des règles de mapping définies 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 liés à aucune propriété Shinken.
  • Ils sont volontairement listés ici pour être vus, et faciliter la création de son propre mapping ( afin de ne pas partir d'une feuille blanche ).