Introduction

La fonctionnalité de duplication des checks par donnée de l'hôte (ou "duplicate foreach") permet de pouvoir dupliquer des checks sur un même hôte.

En effet, si un hôte héberge plusieurs services de même type (par exemple, plusieurs bases de données) il peut être intéressant de dupliquer toute la configuration de vérification pour chacun de ces services, en leur dédiant à chacun des checks.

Un template donné ne s'applique qu'à un hôte dans son ensemble et ne peut pas y être dupliqué. Pour pouvoir dupliquer les vérifications, il faut utiliser des checks ayant la propriété "Duplicate for each host data", et configurer la façon dont ils seront dupliqués sur cet hôte : quelle partie sera copiée (commande, intervalle...) et quelle partie sera spécifique à chaque check (identifiants, port de connexion...)

 

Fonctionnement

Les checks

Pour qu'un check soit dupliqué, il doit remplir plusieurs conditions.

  • Le champ "Duplicate for each host data" (1) doit contenir le nom d'une donnée définie dans l'hôte. C'est la donnée qui servira à dupliquer le check.
  • (Optionnel) Le champ "Duplicate for each default arguments" (2) permet de spécifier les valeurs par défaut pour les macros $VALUEn$.
  • Le nom du check doit contenir $KEY$ (3). Cette macro sera remplacée par les données de l'hôte, de manière à ne pas générer de collision de nom.

Le check peut alors utiliser, dans sa configuration, $KEY$, et $VALUE1$ à $VALUE16$. Ces macros seront remplacées de façon spécifique à chaque copie.

 

 

 

 

 

L'hôte

Pour que l'hôte duplique ses checks, il doit alors renseigner les valeurs à dupliquer, sous la forme de données.

Un hôte ayant des checks à dupliquer lui étant attachés doit obligatoirement fournir des valeurs, et les données apparaîtront en Warning si elle sont manquantes.

 

 

 

La donnée renseignée dans la donnée doit définir une ou plusieurs clés séparées par des virgules comme montré dans l'exemple.

Dès que la saisie du champ est terminée, le nombre de checks de l'hôte est mis à jour.

L'onglet check permet de vérifier le résultat de la duplication.

Les valeurs

Pour que chaque check puisse exécuter une vérification différente sur l'hôte, il est possible de paramétrer spécifiquement chaque copie.

Pour cela, l'hôte peut passer des arguments de duplication à chaque copie sous la forme de valeurs.

 

 

La syntaxe est la suivante :

 

 

 

red$(255,0,0)$,green$(0,255,0)$,blue$(0,0,255)$

Dans cet example, chaque copie aura accès à trois valeurs, $VALUE1$, $VALUE2$, et $VALUE3$.

 

CheckMacroValeur
Check-Duplicate-red

$VALUE1$

$VALUE2$

$VALUE3$

255

0

0

Check-Duplicate-green

$VALUE1$

$VALUE2$

$VALUE3$

0

255

0

Check-Duplicate-blue

$VALUE1$

$VALUE2$

$VALUE3$

0

0

255

Description

La fonctionnalité duplicate foreach s'active directement depuis le check que l'on souhaite générer plusieurs fois. Deux champs sont à renseigner:

 

Duplicate for Each:

Ce champ correspond au nom de la donnée de l'hôte ou cluster à utiliser.

Une fois le nom de la donnée défini, Shinken interprète au niveau de l'hôte ou cluster: Crée un check pour chaque valeur de cette donnée, sous la forme KEY1,KEY2,KEY3

      • remarque: Le nom du check doit contenir un $KEY$ pour l'identifier de façon unique.

Duplicate for Each default:

Ce champs correspond à la valeur par défaut des arguments de la donnée utiliser pour le "duplicate foreach", soit le nom de la donnée renseigné dans le champ "duplicate foreach".

      • remarque: Si il y a plusieurs arguments par défaut, utiliser la virgule comme séparateur

 

Utilisation 

En partant du postulat d'avoir 3 base de données, DB1DB2 et DB3 avec un port par défaut à 1521 et une connexion sécurisée en ssl. Le nom de la donnée de l’hôte/cluster choisi pour le "duplciate foreach" est DATABASES.

Sans les valeurs des arguments par default:

Page d'édition d'un check:

(1) Renseignez le champ "duplciate foreach" avec DATABASES.

Page d'édition d'un hôte/cluster:

(2) Ajouter la donnée DATABASES avec pour valeur: DB1$(1521,ssl)$,DB2$(1521,ssl)$,DB3$(1521,ssl)$

 

Avec les valeurs des arguments par default:

Page d'édition d'un check:

(1) Renseignez le champ "duplciate foreach" avec DATABASES.

(2) Renseignez la valeur par default des arguments du champ "duplciate foreach" avec 1521,ssl.

Page d'édition d'un hôte/cluster:

(3) Ajouter la donnée DATABASES avec pour valeur: DB1,DB2,DB3

        • Remarque: Définir un port particulier sur DB2 donnerait: Ajouter la donnée DATABASES avec pour valeur DB1,DB2$(2222)$,DB3