| Scroll Ignore | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
|
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 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Nom de la règle
| |||||||||
| 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. | |||||||||
| Défini une condition d'application de la règle :
| |||||||||
|
Non obligatoire
|
Exemple
| Code Block | ||||
|---|---|---|---|---|
| ||||
[
{
"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 | ||||
|---|---|---|---|---|
| ||||
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 :
| Signification | Syntaxe | Description | Exemple |
|---|---|---|---|
| Contient | NOM_DE_CHAMP=texte | La condition signifie que le champ VMWare choisi doit CONTENIR le texte. |
|
| Commence par | NOM_DE_CHAMP=^texte | Si l'expression commence par le caractère "^", la condition signifie que le résultat attendu doit COMMENCER par le texte |
|
| Termine par | NOM_DE_CHAMP=texte$ | Si l'expression termine par le caractère "$" la condition signifie que le résultat attendu doit TERMINER par le texte. |
|
| 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 |
|
| Une condition et l'autre sont remplies | Condition1 AND Condition2 | Le modèle sera appliqué si la condition 1 et 2 sont remplies | os=myOS AND osversion=^2 |
| Info | |||||||
|---|---|---|---|---|---|---|---|
| |||||||
Note : c'est le 1er '=' qui sépare le nom du champ et le texte.
|
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 Mapping des informations collectées des champs du serveur VMWare vers les propriétés et les données Shinken )
| Signification | Syntaxe | Description | Exemple |
|---|---|---|---|
| Contient | NOM_DE_CHAMP>VALUES( ( 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. |
|
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 | ||||
|---|---|---|---|---|
| ||||
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 | ||||
|---|---|---|---|---|
| ||||
[
{
"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 | ||||
|---|---|---|---|---|
| ||||
[
{
"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 | ||||
|---|---|---|---|---|
| ||||
[
{
"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 | ||||
|---|---|---|---|---|
| ||||
/etc/shinken-user/source-data/source-data-[nom de la source]/configuration/host_template_binding/host_template_binding_rule.json |
| Info | ||||
|---|---|---|---|---|
| ||||
/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 ).
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.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.









