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

Qu'est-ce qu'une règle d'application des modèles ?

Une règle d'application des modèles permet de définir une ou plusieurs condition(s), permettant à la source d'attribuer un modèle à un hôte en fonction de la valeur d'un champ de l'API VMWare.

La source dispose de règles d'application fournies par défaut. Il vous est possible de :

  • créer vos propres règles d'application,
  • de désactiver les règles par défaut.

Définition d'une règle

Une règle d'application est écrite au format JSON ( clé <-> valeur ):

clécommentaire
No Format
languagetext
themeEmacs
name

Nom de la règle

Warning

Doit être unique dans le JSON

No Format
languagetext
themeEmacs
template

Nom du ou des modèle(s) qui seront attachés.

Les modèles peuvent être listés en les séparant par une virgule.

No Format
languagetext
themeEmacs
conditionX

Défini une condition d'application de la règle :

  • X étant le numéro de la condition.
  • Les conditions sont interprétées dans l'ordre.
  • Entre chaque condition, il s'agit d'un OU logique, ce qui signifie qu'il suffi qu'une condition soit validé pour appliquer la règle.
No Format
languagetext
themeEmacs
disable
  • Deux valeurs possibles ( Par défaut, la valeur est false ) :
    • true : la règle est désactivée, le modèle définit dans la règle ne sera pas appliqué.
    • false : la règle est activée.

Non obligatoire

(info) La valeur de la clé ne prends pas en compte les majuscules, false et False sont pareils.

Exemple

Code Block
languagetext
themeEmacs
[
  {
    "name" : "rule 32 bit generation",
    "template" 	: "x86,32-bit",
    "condition1" : "config.product.osType=86",
	"disable" : "true"
  },
  {
    "name" : "windows Server 64bits",
    "template" : "windows_server,64-bit,x64",
    "condition1" : "config.product.osType=64 AND config.guestFullName=windows server",
    "condition2" : "config.product.osType=64 AND config.guestFullName=^Microsoft Server$",
	"condition3" : "config.product.osType=64 AND config.guestFullName=vista server"
  }
]

Dans l'exemple, nous pouvons voir qu'il y a deux règles qui sont définies.

  • Ici la première règle nommée "rule 32 bit generation" possède une condition sur le type du système, si cette condition est respectée alors les modèles "x86" et "32-bit" seront appliqués à l'élément crée via la source.
  • La seconde règle nommée "windows Server 64bits", fonctionne de la même manière que la première, mais avec plus de conditions.

Les Commentaires

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.

Syntaxe d'une condition d'une règle d'application

Une condition est séparée en 2 parties et utilise le caractère "=" comme symbole séparateur :

  • à gauche, le champ de l'API VMWare qui va être inspecté ;
  • à droite, la condition sur la valeur du champ de l'API à remplir ;


Info

Cette valeur ne prend pas en compte les majuscules, ce qui fait que WINDOWS et windows sont pareils

Note
iconfalse
titleExemple: os=myOS

Dans cet exemple pour que les modèles soient ajoutés, il faut que le nom de l'OS (système d'exploitation) contienne le texte "myOS".


Voici les syntaxes possibles pour les conditions des règles d'application des modèles :

SignificationSyntaxeDescriptionExemple
ContientNOM_DE_CHAMP=texteLa condition signifie que le champ VMWare choisi doit CONTENIR le texte.

os=myOS

Commence parNOM_DE_CHAMP=^texteSi l'expression commence par le caractère "^", la condition signifie que le résultat attendu doit COMMENCER par le texte

macvendor=^myMacVendor

Termine parNOM_DE_CHAMP=texte$Si l'expression termine par le caractère "$" la condition signifie que le résultat attendu doit TERMINER par le texte.

ostype=myType$

Est strictement égal NOM_DE_CHAMP=^texte$Si l'expression commence par "^" ET termine par "$", la condition signifie que le résultat attendu doit être l'expression EXACTE

osversion=^2.6.0$

Une condition
et l'autre sont remplies
Condition1 AND Condition2Le modèle sera appliqué si la condition 1 et 2 sont rempliesos=myOS AND osversion=^2
Info
titleRemarque

Note : c'est le 1er '=' qui sépare le nom du champ et le texte. 

Info
iconfalse
titleExemple: config.guestFullName=linus=(Ubuntu)

config.guestFullName est le nom du champ VMWare

linus=(Ubuntu) est le texte recherché

Syntaxes pour les champs des éléments de la source contenant des listes

La syntaxe de VALUES est la même que celle des règles de mapping.
(
Voir la page Le mapping des informations collectées des champs du serveur VMWare vers les propriétés et les données Shinken )

SignificationSyntaxeDescriptionExemple
Contient

NOM_DE_CHAMP>VALUES(CONDITION)=texte

( le champ doit être de type liste )

Ici texte doit correspondre au résultat de l'application de la règle VALUES et de sa condition telles que décrites dans la page sur les règles de mapping.

shinken.tags>VALUES(=^bdx)=bdx_prod,bdx_preprod

shinken.tags_by_category.OS>VALUES(0)=Linux

Surcharge des règles par défaut

Les règles par défaut peuvent être surchargées en créant une règle avec le même nom.

Info
iconfalse
titleExemple:

Le modèle ajouté pour la règle set template for virtual machines sera maintenant vmware virtual host

Info

Noter qu'une surcharge ne possédant pas au minimum un nom et un modèle ne sera pas prise en compte



Code Block
languagetext
themeEmacs
[
  {
    "name" : "set template for virtual machines",
	"template" : "vmware virtual host"
  }
]

Il est possible de désactiver les règles par défaut en créant une règle avec le même nom et la clé disable à true.
( dans ce cas, le modèle n'est pas nécessaire )

Code Block
languagetext
themeEmacs
[
  {
    "name" : "set template for virtual machines",
	"disable" : "true"
  }
]

Lors d'une surcharge, si les clés template ou condition ne sont pas spécifiés, les valeurs par défaut de celle-ci sont récupérées si la règle est activée. 

Exemple avec la règle set template for virtual machines définies à droite :

Code Block
languagetext
themeEmacs
[
  {
    "name" : "set template for virtual machines",
	"template" : "vmware virtual host",
	"disable" : "false"
  }
]

Avant surcharge de la règle set template for virtual machines

Panel


Après surcharge de la règle set template for virtual machines

Panel


Chemin du fichier de définition des règles d'application

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

No Format
languagetext
themeEmacs
/etc/shinken-user/source-data/source-data-[nom de la source]/configuration/host_template_binding/host_template_binding_rule.json
Info
iconfalse
titleExemple de chemin pour la source livrée par défaut : 

/etc/shinken-user/source-data/source-data-synchronizer-collector-vmware/configuration/host_template_binding/host_template_binding_rule.json

Info

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

Visualiser les règles d'application ( Onglet "Règles d'application des modèles" )

Pour visualiser la liste des règles définies pour cette source, rendez-vous dans l'onglet "Règles d'application des modèles". 

Dans cet onglet, vous trouverez le chemin du fichier de définition des règles d'application des modèles utilisateur ( 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 le bouton de rafraîchissement ( 2 ).
    Si le fichier de définition est vide alors les valeurs par défaut seront utilisées. 
  • (warning) Si une règle est désactivée, les erreurs sur là cette règle ne seront pas affichées.

Dans l'en-tête, vous trouverez aussi le bouton de rafraîchissement de la liste des règles ( 2 ).

  • Ce bouton permet de rafraîchir cette liste sans devoir redémarrer le Synchronizer.
  • Il faudra relancer un import pour réappliquer les nouvelles règles sur les éléments importés.

La liste des règles ( 3 ) comporte à la fois les règles définies par l'utilisateur et les règles par défaut.
La liste affiche pour chaque règle : 

  • Le type de la règle ( Utilisateur, par défaut ou désactivé par l'utilisateur )
  • Le numéro qui correspond à l'ordre d'application de la règle.
  • Le nom de la règle
  • La condition
  • Les modèles qui seront appliqués
Panel

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

Cette page d'aide explique le fonctionnement de l'onglet et peut être ouverte en appuyant sur la touche F1.

En utilisant la syntaxe de définition des règles, vous pourrez définir vos propres règles ou surcharger celles existantes par défaut. 

  • Les règles utilisateur apparaîtront en bleu dans la liste.
  • Les règles désactivées apparaîtront en gris ( 5 ).

Avant

Panel


Après

Panel

Si un champ obligatoire est manquant ou erroné, un Avertissement ou une Erreur apparaîtra sur la règle en question.