Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Make by tools (01.00.01) - action=clean_macro_parameter
Scroll Ignore
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbookhtmltruefalse
scroll-eclipsehelpdocbooktrue
scroll-epubeclipsehelptrue
scroll-htmlepubtrue
Panel
titleSommaire

Table of Contents
stylenone

Concept général

Shinken Entreprise permet d'effectuer des remplacements dynamiques de contenu ( autrefois appelé "MACRO" ).

  • Cela permet de paramĂ©trer avec une grande flexibilitĂ© les commandes lancĂ©es par Shinken, l'affichage des seuils, les liens externes des
éléments…  
  • Ă©lĂ©ments… 
  • La notation entre dollars "$" est utilisĂ©e pour permettre ce remplacement.

Exemple :

On dispose d'une commande qui se charge de contacter un hôte pour déterminer s'il est joignable ou non.

On veut donc que la commande récupère automatiquement l'
  • Les variables donnent la capacitĂ© d'utiliser dans la configuration de la supervision,
    • des informations dites globales,
    • ainsi que les propriĂ©tĂ©s et les donnĂ©es prĂ©sentes sur les Ă©lĂ©ments ( HĂ´tes, Cluster, Check, Utilisateurs ).
      • par exemple, les propriĂ©tĂ©s d'un hĂ´te dans la vĂ©rification d'un check.

Exemple :

On dispose d'une commande qui se charge de contacter un hôte pour déterminer s'il est joignable ou non.

  • On veut donc que la commande rĂ©cupère automatiquement l'adresse de l'hĂ´te sans avoir Ă  spĂ©cifier manuellement l'adresse pour chaque hĂ´te.
  • Pour rĂ©soudre ce problème, on effectue un remplacement de contenu.
  • Dans Shinken Entreprise, on peut utiliser la
notation
  • Variable $HOSTADDRESS$ qui va contenir l'adresse de l'hĂ´te courant.

Ainsi, en utilisant cette notation Variable dans notre commande, lorsque celle-ci sera utilisée lors de la vérification d'un hôte, le mécanisme de remplacement dynamique va automatiquement remplacer la notation Variable par l'adresse de l'hôte.

code
Code Block
languagetext
themeEmacs
titleCommande avant remplacement
check_ping -H "$HOSTADDRESS$" (...autres paramètres)

donne au final

Code Block
languagetext
themeEmacs
titleCommande après remplacement
check_ping -H "192.168.1.12" (...autres paramètres)

Utilisation du remplacement dynamique de contenu

Endroits oĂą

Liste des propriétés dans lesquels sont effectuées

le remplacement dynamique de contenu est effectué

Le remplacement dynamique de contenu n'est pas effectué dans toutes les propriétéspartout.

Voici la liste par type d'élément des propriétés où est effectué le remplacement dynamique de contenu :

Les Hôtes & Les Clusters, avec et leurs modèles

  • URL externe
  • Liste des URL externes

    • Vivant ( Commande de vĂ©rification ) ( Les Arguments ),
    • Affichage des seuils,
    • URL externe,
    • Liste des URL externes,Commande lancĂ©e par le gestionnaire d'Ă©vĂ©nements ( Les Arguments )
    • DonnĂ©es locales & hĂ©ritĂ©es d'un modèle
    Les Checks
    • ,
    • Commande lancĂ©e par le gestionnaire d'Ă©vĂ©nements.

    Les Clusters et leurs modèles

    • DĂ©finition,
    • Affichage des seuils,
    • URL externe,
    • Liste des URL externes
    • Vivant (Commande de vĂ©rification) ( Les Arguments )
    • Affichage des seuils
    • Commande lancĂ©e par le gestionnaire d'Ă©vĂ©nements ( Les Arguments )
    • ,
    • DonnĂ©es locales & hĂ©ritĂ©es d'un modèle

    Les Utilisateurs avec leurs modèles

    • DonnĂ©es locales & hĂ©ritĂ©es d'un modèle
    • ,
    • Commande lancĂ©e par le gestionnaire d'Ă©vĂ©nements.

    Les Checks et leur modèles

    • Commande de vĂ©rification,
    • Affichage des seuils,
    • URL externe,
    • Liste des URL externes,
    • DonnĂ©es locales & hĂ©ritĂ©es d'un modèle,
    • Commande lancĂ©e par le gestionnaire d'Ă©vĂ©nements.

    Les Utilisateurs avec leurs modèles

    • DonnĂ©es locales & hĂ©ritĂ©es d'un modèle

    Les Les Méthodes de notification

    • Commande de notifications pour l'hĂ´te ( Les Arguments )/cluster,
    • Commande de notifications pour les checks ( Les Arguments ).

    Les Commandes

    • Ligne de Commande

    Les Modulations de données

    • DonnĂ©es locales & hĂ©ritĂ©es d'un modèle

    Remplacement récursif

    Le remplacement dynamique de contenu est récursif.

    • Ce qui veut dire
    qu'une que
    • que les Variables dans les Variables
    suivantes
    • seront remplacĂ©es
    : 
    • les DonnĂ©es locales & hĂ©ritĂ©es d'un modèle,
    • les Variables globales
    • les Variables gĂ©nĂ©ratives
    • .
    • Il est
    Il est donc
    • possible d'effectuer une boucle de remplacement sans le vouloir ( exemple : VARIABLE_1  nĂ©cessite VARIABLE_2  qui nĂ©cessite VARIABLE_3 qui nĂ©cessite VARIABLE_1 ).
      Dans ce cas, une erreur est
    remonté
    • remontĂ©e, dans l'interface de Configuration et de Visualisation.



    Panel
    titleExemple d'erreur de remplacement récursif dans l'onglet Checks de la page d'édition d'un hôte.

    Limites lors du remplacement des

    variables dynamiques dans une ligne de commande

    Variables

    Il peut arriver que le résultat de certaines variables dynamiques Variables nécessite l'évaluation d'autres variables dynamiques Variables pour être obtenu.

    Pour éviter tout emballement récursif ( exemple : VARIABLE_1  nécessite VARIABLE_2  qui nécessite VARIABLE_3 qui nécessite VARIABLE_1 4 ...  ), les limites suivantes sont appliquées lors de la résolution des variables dynamiques Variables :

    • Il ne peut pas y avoir plus de 32 niveaux d'imbrication de variablesVariables, au-delĂ  de ce niveau, les variables Variables ne sont plus rĂ©solues.
    • Il ne peut pas y avoir plus de 255 variablesVariables Ă  rĂ©soudre sur la ligne de commande, au-delĂ  de ce nombre, les variables Variables ne sont plus rĂ©solues.
    • La ligne de commande gĂ©nĂ©rĂ©e après rĂ©solution des variables dynamiques Variables ne peut pas excĂ©der 65000 caractères.


    Si un dépassement se produit,

    • la rĂ©solution des
    variables
    • Variables est interrompue,
    • et la
    ligne de commande
    • Variable est tronquĂ©e pour ĂŞtre
    remplacée par une commande
    • intĂ©grĂ©e dans un message remontant cette information.


    Panel
    titleExemple d'affichage sur l'Interface de Visualisation dans le cas d'une commande qui est trop longue :

    Image Added

    Comment est effectué le remplacement des

    variables dynamiques

    Variables

    Le remplacement est fait dans deux démons :

    • Le Synchronizer pour l'Interface de Configuration.
    • Le Scheduler pour l'Interface de Visualisation, les notifications et l'exĂ©cution la prĂ©paration des commandes de supervision ( pour leur exĂ©cution par le Poller ).

    Le Synchronizer ne gérant que la configuration des éléments,

    • il n'a pas accès aux Ă©tats des Ă©lĂ©ments
    supervisé
    • supervisĂ©s, comme le statut d'un hĂ´te. Il ne peut donc pas remplacer
    toute
    • toutes les Variables.
    • La liste des Variables non
    résolut
    • rĂ©solues par le Synchronizer est disponible dans le chapitre
    : pour les

    Il y a une autre différence entre ces deux remplacements sur les remplacements effectués par les deux démons : 

    • le Scheduler, gère le nombre de variables dynamiques Variables prĂ©sentes sur la ligne de commande, Ă  chaque Ă©tape de substitution.
    • le Synchronizer, lors de l'essai de check,
      • ne gère pas le nombre de
      variables
      • Variables prĂ©sentes sur la ligne de commande lors des substitutions,
      • et il n'applique pas la règle limitant leur nombre Ă  255 Ă  chaque Ă©tape de substitution.

    Les différents types de Variables

    Il existe trois types de Variables :

    • Les Variables globales
    • Les Variables d'Ă©lĂ©mentLes Variables globales 
    • Les Variables gĂ©nĂ©ratives

    Les Variables

    d'élément

    Les Variables d'élément désignent les variables dont les valeurs proviennent d'un élément.

    Les Variables pour les Propriétés ( $HOST..., $SERVICE..., $CONTACT... )

    Parmi tous les éléments de Shinken Entreprise, il est possible d'accéder à certain attributs des hôtes, des checks et des utilisateurs.

    Dans le premier exemple, la notation entre dollars permet d'accéder à une propriété de l'hôte, par exemple l'adresse: $HOSTADDRESS$. 

    On accède ici à la propriété "address" de l'hôte. On peut accéder à d'autres attributs de l'hôte, mais aussi à ceux d'un check ou d'un utilisateur.

    Panel
    titleRemplacement de données locales

    Image Removed

    globales 

    Il est possible dans Shinken Entreprise de définir des Variables globales accessibles partout dans Shinken et qui ne dépendent pas d'un élément particulier.

    • Ces Variables globales se dĂ©finissent dans des fichiers de configuration.
    • Une globale nommĂ©e MAGLOBALE sera accessible avec la notation $MAGLOBALE$.
    Panel
    titleRemplacement des données globales

    Image Added

    Définir des Variables globales

    Les Variables globales peuvent être définies UNIQUEMENT par fichiers de configuration.

    • Par dĂ©faut, un certain de nombre de Variables globales sont prĂ©dĂ©finies dans le dossier /etc/shinken/resource.d,
    • Ce dossier contient tous les fichiers qui dĂ©clarent les Variables globales.
    • Au dĂ©marrage du Synchroniser, ces fichiers sont chargĂ©s et les Variables globales qui y sont dĂ©finies sont disponibles dans l'UI de Configuration.
    • Au dĂ©marrage de l'Arbiter, ces fichiers sont chargĂ©s et les Variables globales qui y sont dĂ©finies sont disponibles pour tous les autres dĂ©mons.

    La syntaxe pour la déclaration des Variables globales est la suivante :

    Code Block
    languagejs
    themeConfluence
    titleSyntaxe de déclaration des globales
    # Commentaire: les lignes commençant par # seront ignorées
    # Les noms de globales doivent être entourés de $
    
    $NOMDELAGLOBALE$=valeur

    Les noms de Variables globales ne peuvent contenir que des caractères alphanumériques ( A-Z 0-9 ), des tirets ( - ) et des soulignés (  _ ).

    • Le nom d'une Variable globale sera toujours en majuscules.
    • Pour permettre Ă  l'utilisateur de faire ses propres packs et faciliter l'import d'une configuration Ă©crite au format cfg ( voir la page Collecteur de type ( cfg-file-import ) - Import depuis des fichiers au format .cfg ),
      • il est possible de dĂ©clarer des Variables globales dans une source.
      • Pour cela, il faut placer les fichiers .cfg dans un dossier global-data de la source.
        • Les fichiers de dĂ©claration de Variables globales seront copiĂ©s par le Synchronizer dans /etc/shinken/resource.d/ pour rendre leur contenu disponible comme pour les autres Variables globales.

    Variables globales prédéfinies

    Shinken possède aussi des Variables globales directement utilisable et dont les valeurs proviennent des démons.

    Il est donc possible d'accéder aux propriétés des hôtes, des checks ou bien des utilisateurs. Pour cela, il faut commencer le nom de la Variable par HOST, SERVICE ( pour les checks ) ou CONTACT ( pour les utilisateurs ).

    Par exemple:

    • $HOSTADDRESS$
    • $SERVICEDISPLAYNAME$
    • $CONTACTEMAIL$

    Le schéma ci-dessus explique le cas du remplacement des données locales pour les checks et les hôtes.

    Dans le cas des utilisateurs, plusieurs utilisateurs peuvent être accrochés sur un hôte ou un check. Ils sont utilisés pour envoyer les notifications lorsque l'hôte ou le check passe dans un état d'erreur.

    Dans ce cas, une notification est envoyée à chaque utilisateur. La commande utilisée pour envoyer la notification peut alors utiliser un remplacement dynamique de contenu pour accéder aux informations de l'utilisateur qui va recevoir la notification.

    Panel
    titleAttributs de l'élément
    VariableFonction$HOSTPROPRIETE$Accède une propriété de l'hôte$SERVICEPROPRIETE$Accède à une propriété du check$CONTACTPROPRIETE$Accède à une propriété de l'utilisateur Anchorlist_macrolist_macroPropriétés des hôtes

    SyntaxeDescriptionRemplacé dans le SynchronizerRemplacé dans le Scheduler

    $HOSTNAME$

    Nom de l'hôte ( propriété host_name )

    (tick)

    (tick)

    $HOSTDISPLAYNAME$

    Nom d'affichage de l'hôte ( propriété display_name )

    (tick)

    (tick)

    $LONGDATETIME$

    Heure/date courante au format long ( par exemple : Fri Oct 13 00:30:28 CDT 2000 )

    (error)

    (tick)

    $SHORTDATETIME$

    Heure/date courante au format court ( par exemple : 10-13-2000 00:30:28 )

    (error)

    (tick)

    $DATE$

    Date courante ( par exemple : 10-13-2000 )

    (error)

    (tick)

    $TIME$

    Heure courante ( par exemple : 00:30:28

    $HOSTADDRESS$

    Adresse de l'hôte ( propriété address
    )

    (error)

    (tick)

    $HOSTSTATE$

    Etat courant de l'hĂ´te ( UP, DOWN, ou UNREACHABLE

    $TIMET$

    Heure courante au format timestamp( par exemple : 1706871278 )

    (error)

    (tick)

     $HOSTSTATETYPE$Type d'état permettant la confirmation du statut d'un hôte ( SOFT ou HARD

    $SHINKENVERSION$

    Contient la version de Shinken. ( par exemple : V02.08.02 )

    (error)

    (tick)

    $HOSTSTATEID$

    Numéro correspondant à l'état courant de l'hôte ( 0=UP, 1=DOWN, ou 2=UNREACHABLE )

    (error)

    (tick)

    $LASTHOSTSTATE$

    Etat précédent de l'hôte ( UP, DOWN, ou UNREACHABLE )

    (error)

    (tick)

    $LASTHOSTSTATEID$

    Numéro correspondant à l'état précédent de l'hôte ( 0=UP, 1=DOWN, ou 2=UNREACHABLE )

    (error)

    (tick)

    $HOSTGROUPNAME$

    Nom du groupe d'hôte auquel appartient l'hôte. Si il appartient à plusieurs groupes d'hôtes, un seul sera retourné

    (tick)

    (tick)

    $HOSTGROUPNAMES$

    Liste des groupes d'hôtes auxquels appartient l'hôte, séparés par des virgules

    (tick)

    (tick)

    $LASTHOSTCHECK$

    Date au format timestamp de la dernière vérification de l'hôte

    (error)

    (tick)

    $LASTHOSTSTATECHANGE$

    Date au format timestamp du dernier changement d'état de l'hôte

    (error)

    (tick)

    $LASTHOSTUP$

    Date au format timestamp du dernier état UP de l'hôte

    (error)

    (tick)

    $LASTHOSTDOWN$

    Date au format timestamp du dernier état DOWN de l'hôte

    (error)

    (tick)

    $LASTHOSTUNREACHABLE$

    Date au format timestamp du dernier état UNREACHABLE de l'hôte

    (error)

    (tick)

    $HOSTOUTPUT$

    Résultat de la dernière vérification de l'hôte

    (error)

    (tick)

    $LONGHOSTOUTPUT$

    Résultat long de la dernière vérification de l'hôte

    (error)

    (tick)

    $HOSTPERFDATA$

    Données de performances renvoyées par la dernière vérification de l'hôte

    (error)

    (tick)

    $HOSTCHECKCOMMAND$

    Nom de la commande utilisée pour la vérification de l'hôte ( avec les paramètres )

    (tick)

    (tick)

    $HOSTNOTESURL$

    URL externe de l'hôte ( propriété notes_url )

    (tick)

    (tick)

    $HOSTBUSINESSIMPACT$

    Nombre entre 0 et 5 indiquant l'impact métier de l'hôte

    (tick)

    (tick)

    $HOSTFIRSTNOTIFICATIONDELAY$ 

    Nombre de minutes à attendre avant d'envoyer la première notification pour un hôte

    (tick)

    (tick)

    $HOSTNOTIFICATIONNUMBER$

    N° d'ordre d'une notification pour un événement donné

    (tick)

    (tick)

    $HOSTTHRESHOLDSDISPLAY$

    Affichage des seuils, tel qu'il est paramétré sur l'hôte

    (tick)

    (tick)
    Note

    On accède en général aux propriétés de l'hôte avec la notation entre dollars commençant par HOST ( exemple : $HOSTADDRESS$ ). Dans le tableau, certaines entrées ne commencent pas par HOST sont présentes, mais font quand même référence à une propriété de l'hôte.

    Propriétés des checks

    Info

    Ces Variables ne sont pas encore disponibles dans le Synchronizer.

    • C'est un point qui sera amĂ©liorĂ© dans une prochaine version de Shinken.

    Utiliser des Variables globales

    Les Variables globales sont accessibles en entourant le nom de la Variable globale par des dollars "$".

    • La Variable globale "MAGLOBALE" est donc accessible avec la notation $MAGLOBALE$.


    Note

    Parce que les Variables globales sont définies dans les fichiers de configuration, l'ajout ou la modification d'une Variable globale dans ces fichiers nécessite un redémarrage du Synchronizer et de l'Arbiter pour que les changements soient pris en compte.

    • C'est un point qui sera amĂ©liorĂ© dans une prochaine version de Shinken.

    Les Variables d'élément ( Hôte, Cluster, Check, Utilisateur )

    Les Variables d'élément correspondent à des propriétés ( de définition ou d'exécution ) ou des données d'un élément.


    Les Variables issues des Propriétés ( $HOST...$, $SERVICE...$, $CONTACT...$ )

    Anchor
    LesVariablesissuesdesPropriétés
    LesVariablesissuesdesPropriétés

    Parmi tous les éléments de Shinken Entreprise, il est possible d'accéder à certaines propriétés des Hôtes, des Clusters, des Checks et des Utilisateurs.

    • Pour accĂ©der Ă  une propriĂ©tĂ© d'un Ă©lĂ©ment, il faut bien sĂ»r le $, puis le type de l'Ă©lĂ©ment et le nom de la propriĂ©tĂ©
      • Pour les Types :
        • HOST => pour les HĂ´tes et Clusters ( c'est le mĂŞme mot clĂ© de type )
        • SERVICE => pour les Checks
        • CONTACT => pour les Utilisateurs
      • On accède a la propriĂ©tĂ© en rajoutant son nom aprĂ©s le type

        Panel
        titlePropriétés de l'élément
        VariableFonction
        $HOSTPROPRIETE$Accède une propriété de l'hôte
        $SERVICEPROPRIETE$Accède à une propriété du check
        $CONTACTPROPRIETE$Accède à une propriété de l'utilisateur
      • Les propriĂ©tĂ©s disponibles par Ă©lĂ©ments diffèrent en fonction de l'Ă©lĂ©ment.
        • Les noms des propriĂ©tĂ©s accessibles par le mĂ©canisme de Variable sont listĂ©s dans les chapitres ci-dessous dĂ©crivant les Ă©lĂ©ments ( HĂ´tes, Clusters, Checks, Utilisateurs ). 

    • Point important : Il existe 2 types de PropriĂ©tĂ©s
      • Des propriĂ©tĂ©s de dĂ©finition ( Elles sont dĂ©finies dans l'UI de Configuration et ne changent que lorsque l'on change la configuration ).
      • Des propriĂ©tĂ©s d'exĂ©cution ( Elles sont calculĂ©es par le Scheduler et susceptible de changer Ă  chaque exĂ©cution d'une vĂ©rification de l'Ă©lĂ©ment ).
        • Cela concerne les HĂ´tes, Les Clusters et les Checks.
    • Par exemple, pour qu'une commande de vĂ©rification d'un check accède Ă  l'adresse d'un hĂ´te, il faut utiliser $HOSTADDRESS$.

    Panel
    titleRemplacement de propriétés

    Image Added

    Anchor
    list_macro
    list_macro

    Propriétés des Hôtes/Clusters
    SyntaxePropriété de TYPEDescriptionDisponible  dans le SynchronizerDisponible  dans le Scheduler

    $HOSTNAME$

    DEFINITION

    Nom de l'hôte ( propriété host_name )

    (tick)

    (tick)

    $HOSTDISPLAYNAME$

    DEFINITION

    Nom d'affichage de l'hôte ( propriété display_name )

    (tick)

    (tick)

    $HOSTVISUALISATIONNAME$

    DEFINITION

    Nom d'affichage de l'hôte pour l'interface de Visualisation ( propriété visualisation_name )

    (tick)

    (tick)

    $HOSTADDRESS$

    DEFINITION

    Adresse de l'hôte ( propriété address )

    (tick)

    (tick)

    $HOSTUUID$

    DEFINITION

    Identifient unique d'un hôte ( Voir la page TIPS - Récupérer l'UUID d'un élément ( Cluster / Hôte / Check ) )

    (tick)

    (tick)

    $HOSTREALM$

    DEFINITION

    Royaume de l'hôte ( propriété realm )

    (tick)

    (tick)

    $HOSTSTATE$

    EXECUTION

    Statut courant de l'hĂ´te ( UP, DOWN, ou UNREACHABLE )

    (error)

    (tick)

     $HOSTSTATETYPE$

    EXECUTION

    Confirmation du statut d'un hĂ´te

    SyntaxeDescriptionRemplacé dans le SynchronizerRemplacé dans le Scheduler

    $SERVICEDESC$

    Nom/description du check

    (tick)

    (tick)

    $SERVICEDISPLAYNAME$

    Nom d'affichage du check ( propriété display_name )

    (tick)

    (tick)

    $SERVICESTATE$

    Etat courant du check ( OK, WARNING, UNKNOWN, CRITICAL )

    (error)

    (tick)

    $SERVICESTATETYPE$

    Type d'état permettant la confirmation du statut d'un check

    ( SOFT ou HARD )

    (error)

    (tick)

    $HOSTSTATEID$

    $SERVICESTATEID$

    EXECUTION

    Numéro correspondant

    Ă 

    au statut courant de l'

    état courant du check

    hĂ´te ( 0=UP, 1=DOWN, ou 2=UNREACHABLE )

    (error)

    (tick)

    $LASTHOSTSTATE$

    $LASTSERVICESTATE$

    EXECUTION

    Etat précédent du check ( OK, WARNING, UNKNOWN, CRITICAL

    Statut précédent de l'hôte ( UP, DOWN, ou UNREACHABLE )

    (error)

    (tick)

    $LASTSERVICESTATEID$

    $LASTHOSTSTATEID$

    EXECUTION

    Numéro correspondant

    Ă 

    au statut précédent de l'

    état précédent du check

    hĂ´te ( 0=UP, 1=DOWN, ou 2=UNREACHABLE )

    (error)

    (tick)

    $SERVICEISVOLATILE$

    Booléen indiquant si le check est volatile ( 0=Non volatile, 1=Volatile )

    (error)

    (tick)

    $LASTSERVICECHECK$

    Date au format timestamp de la dernière exécution du check

    (error)

    (tick)

    $LASTSERVICESTATECHANGE$

    Date au format timestamp du dernier changement d'état du check

    (error)

    (tick)

    $LASTSERVICEOK$

    $HOSTGROUPNAME$

    EXECUTION

    Nom du groupe d'hôte auquel appartient l'hôte. S'il appartient à plusieurs groupes d'hôtes, un seul sera retourné

    (error)

    (tick)

    $HOSTGROUPNAMES$

    DEFINITION

    Liste des groupes d'hôtes auxquels appartient l'hôte, séparés par des virgules

    (tick)

    (tick)

    $LASTHOSTCHECK$

    EXECUTION

    Date au format timestamp de la dernière vérification de l'hôte

    (error)

    (tick)

    $LASTHOSTSTATECHANGE$

    EXECUTION

    Date au format timestamp du dernier

    état OK du check

    changement de statut de l'hĂ´te

    (error)

    (tick)

    $LASTSERVICEWARNING$

    $LASTHOSTUP$

    EXECUTION

    Date au format timestamp du dernier

    état WARNING du check

    statut UP de l'hĂ´te

    (error)

    (tick)

    $LASTSERVICEUNKNOWN$

    $LASTHOSTDOWN$

    EXECUTION

    Date au format timestamp du dernier

    état UNKNOWN du check

    statut DOWN de l'hĂ´te

    (error)

    (tick)

    $LASTHOSTUNREACHABLE$

    $LASTSERVICECRITICAL$

    EXECUTION

    Date au format timestamp du dernier

    état CRITICAL du check

    statut UNREACHABLE de l'hĂ´te

    (error)

    (tick)

    $SERVICEOUTPUT$

    $HOSTOUTPUT$

    EXECUTION

    Résultat de la dernière vérification

    du check

    de l'hĂ´te

    (error)

    (tick)

    $LONGSERVICEOUTPUT$

    $LONGHOSTOUTPUT$

    EXECUTION

    Résultat long de la dernière vérification

    du check

    de l'hĂ´te

    (error)

    (tick)

    $SERVICEPERFDATA$

    $HOSTPERFDATA$

    EXECUTION

    Données de performances renvoyées par la dernière

    exécution du check

    vérification de l'hôte

    (error)

    (tick)

    $SERVICECHECKCOMMAND$

    $HOSTCHECKCOMMAND$

    DEFINITION

    Nom de la commande utilisée pour la vérification de l'

    exécution du check

    hôte ( avec les paramètres )

    (tick)

    (tick)

    $SERVICENOTESURL$

    $HOSTNOTESURL$

    DEFINITION

    URL externe

    du check

    de l'hôte ( propriété notes_url )

    (tick)

    (tick)

    $HOSTNOTESMULTIURL$

    DEFINITION

    URLs externes de l'hôte ( propriété notes_multi_url )

    (tick)

    (tick)

    $HOSTBUSINESSIMPACT$

    $SERVICEBUSINESSIMPACT$

    DEFINITION

    Nombre entre 0 et 5 indiquant l'impact métier

    du check

    de l'hĂ´te

    (tick)

    (tick)

    $HOSTFIRSTNOTIFICATIONDELAY$ 

    $SERVICEFIRSTNOTIFICATIONDELAY$

    DEFINITION

    Nombre de minutes à attendre avant d'envoyer la première notification pour un

    service

    hĂ´te

    (tick)

    (tick)

    $SERVICENOTIFICATIONNUMBER$ 

    N° d'ordre d'une notification pour un événement donné 

    $HOSTNOTIFICATIONNUMBER$

    EXECUTION

    Nombre de notifications consécutives envoyées pour un statut différent de UP

    (error)

    (tick)

    $SERVICETHRESHOLDSDIPLAY$

    $HOSTTHRESHOLDSDISPLAY$

    DEFINITION

    Affichage des seuils, tel qu'il est paramétré sur

    le check

    l'hĂ´te

    (tick)

    (tick)
    Note

    On accède en général aux propriétés du check avec la notation entre dollars commençant par SERVICE ( exemple : $SERVICEDESC$ ). Dans le tableau, certaines entrées ne commencent pas par SERVICE sont présentes, mais font quand même référence à une propriété du check.

    Propriétés des utilisateurs
    SyntaxeDescriptionRemplacé dans le SynchronizerRemplacé dans le Scheduler$CONTACTNAME$Nom de l'utilisateur ( propriété contact_name )(tick)(tick)$CONTACTEMAIL$ Adresse mail de l'utilisateur ( propriété email )(tick)(tick)$CONTACTPAGER$Numéro de téléphone de l'utilisateur ( propriété pager )(tick)(tick)

    Les Variables pour les Données ($_HOST..., $_SERVICE..., $_CONTACT... )

    Shinken Entreprise permet d'ajouter des données personnalisées sur certains éléments, comme les hôtes, les checks, les utilisateurs, et bien sûr les modèles d'hôtes, de checks et d'utilisateurs. Ces données permettent des créés des propriétés personnalisées lorsque les propriétés par défaut de l'objet ne suffisent pas à le décrire complètement.

    Par exemple, si un hôte possède deux interfaces réseau, les propriétés par défaut de l'objet ne permettent pas de spécifier deux adresses. Par contre, il est possible d'ajouter une donnée personnalisée qu'on appelle par exemple "ADDRESS_2" qui pourra être utilisée lorsqu'on aura besoin d'avoir la deuxième adresse de l'hôte dans un check.

    Ces données sont accessibles dans un objet en utilisant la notation suivante :

    • $_HOSTNOMDELADONNEPERSONNALISEE$.
    • $_SERVICENOMDELADONNEPERSONNALISEE$
    • $_CONTACTNOMDELADONNEPERSONNALISEE$
    Info
    titleRemarque

    On remarque la présence d'un underscore ( _ ) avant HOST, SERVICE ou CONTACT, ce qui permet de différencier l'accès à une propriété de l'élément et l'accès à une donnée personnalisée.

    Panel
    titleDonnées personnalisées
    VariableFonction$_HOSTDONNEE$Accède à la donnée personnalisée "DONNEE" de l'hôte$_SERVICEDONNEE$Accède à la donnée personnalisée "DONNEE" du check$_CONTACTDONNEE$Accède à la donnée personnalisée "DONNEE" de l'utilisateur
    Panel
    titleRemplacement des données personnalisées

    Image Removed

    Définir des données personnalisées

    Les données locales peuvent être définies sur les hôtes, checks, utilisateurs et leurs modèles respectifs de 2 manières:

    • Par fichier de configuration
    • Par l'interface de configuration

    Dans un fichier de configuration, les données sont définies en préfixant un _ à leur nom. Le nom d'une donnée peut contenir seulement des caractères alphanumériques ( A-Z0-9 ), des tirets ( - ) ou underscore ( _ ). Aussi, le nom d'une donnée sera toujours en majuscules.

    Code Block
    languagejs
    themeConfluence
    titleExemple d'une objet définissant la donnée DONNEE_PERSONNALISEE
    define host {
        host_name    mon_hote
        address		 192.168.0.12
    
    
        _DONNEE_PERSONNALISEE      valeur_de_la_donnée
    }

    Dans l'interface de configuration, l'ajout et la modification de données personnalisées s'effectuent grâce à l'onglet "Données".

    Panel
    titleAjout d'une donnée dans l'interface de Configuration

    Image Removed

    Cette capture d'écran montre l'édition de données personnalisées dans le cas d'un hôte. Les mêmes manipulations sur les données personnalisées sont possibles pour les modèles d'hôtes, clusters, modèles de clusters, checks, modèles de check, utilisateurs et modèles d'utilisateurs.

    Info

    Dans un fichier de configuration, une donnée personnalisée est définie précédée d'un underscore (_).

    Dans l'interface de configuration, cet underscore ne doit pas être spécifié, car il s'agit seulement d'un moyen dans les fichiers de différencier une donnée personnalisée d'une propriété. La déclaration d'une donnée personnalisée depuis l'interface se fait seulement en spécifiant le nom de la donnée et sa valeur.

    Les Variables globales 

    Il est possible en effectuant un remplacement de contenu d'accéder aux données locales à un hôte, un check ou un utilisateur. Il est aussi possible dans Shinken Entreprise de définir des globales accessibles partout dans Shinken et qui ne dépendent pas d'un élément particulier.

    Ces globales se définissent dans des fichiers de configuration, dont le détail sera expliqué dans la section qui traite l'utilisation pratique des remplacements dynamiques de contenu. Elles sont accessibles simplement par leur nom, sans avoir besoin de le préfixer de _HOST, _SERVICE ou _CONTACT.

    Par exemple, une globale nommée MAGLOBALE sera accessible avec la notation $MAGLOBALE$.

    Panel
    titleRemplacement des données globales

    Image Removed

    Les Variables génératives

    Nous avons vu que lorsque l'on remplace dynamiquement du contenu, il est possible de faire référence aux données locales ainsi qu'aux globales. Il existe également des opérateurs spéciaux, qui ne récupèrent pas les globales et les données locales d'un élément, mais qui permettent de transférer des données, notamment des arguments de commande.

    Ces opérateurs spéciaux sont accessibles avec les notations $ARGn$ et $VALUEn$.

    Les Variables générées par l'utilisation d'une commande ( $ARGn$, $VALUEn$ )

    Shinken Entreprise permet aux hôtes et aux checks de spécifier des commandes qui seront utilisées pour la vérification de l'élément. Dans l'optique de rendre ces commandes les plus génériques possible, et de permettre de factoriser la configuration, des arguments peuvent être passés à ces commandes.

    Ces arguments sont séparés par des points d'exclamation '!'.

    Dans l'exemple, un check utilise la commande "ma_commande" et lui passe 3 arguments.

    Panel

    Image Removed

    Dans la commande, on veut donc pouvoir récupérer la valeur des ces arguments pour pouvoir les utiliser dans le script.

    Les notations $ARGn$ sont donc utilisées dans ce cas. La notation $ARGn$ permet simplement d'accéder à la valeur du n-ième argument.

    Dans l'exemple, on utilise donc $ARG1$, $ARG2$ et $ARG3$ pour récupérer les valeurs du premier, deuxième et troisième argument.

    Panel

    Image Removed

    Info

    Il est possible d'utiliser des Données comme argument.

    • Exemple : 200!$_HOSTWARNING_LEVEL$
    • Elle sera remplacĂ©e lors de l'Ă©valuation de la commande.
    Pour une utilisation avancée, et avec un certain niveau de maîtrise nécessaire, il est même possible d'utiliser une donnée pour définir plusieurs arguments.
    • Il faut utiliser pour cela le sĂ©parateur : |-|
    • Exemple :
      • Dans les arguments : VERBOSE!$_HOSTLEVELS$
      • Dans l’hĂ´te la donnĂ©e LEVELS vaut 200|-|400
      • La commande script.py $ARG1$ $ARG2$ $ARG3$ deviendra script.py VERBOSE 200 400

    $HOSTDOWNTIMECOMMENT$

    EXECUTION

    Le commentaire du contexte "Période de maintenance"

    (error)

    (tick)

    $HOSTDOWNTIMEAUTHOR$

    EXECUTION

    L'auteur du contexte "Période de maintenance"

    (error)

    (tick)

    $ACKDATA$

    EXECUTION

    Le message d'un contexte "Prise en compte".

    (error)

    (tick)

    $ACKAUTHOR$

    EXECUTION

    L'auteur d'un contexte "Prise en compte".

    (error)

    (tick)

    $HOSTIS_ROOT_PROBLEM$

    EXECUTION

    Booléen indiquant si l'hôte est un problème source  ( True ou False )

    (error)

    (tick)

    Note

    On accède en général aux propriétés de l'hôte avec la notation entre dollars commençant par HOST ( exemple : $HOSTADDRESS$ ). Dans le tableau, certaines entrées ne commençant pas par HOST sont présentes, mais elles font quand même référence à une propriété de l'hôte.

    Propriétés des checks
    SyntaxePropriété de TYPEDescriptionDisponible dans le SynchronizerDisponible dans le Scheduler

    $SERVICEDESC$

    DEFINITION

    Nom/description du check

    (tick)

    (tick)

    $SERVICEDISPLAYNAME$

    DEFINITION

    Nom d'affichage du check ( propriété display_name )

    (tick)

    (tick)

    $SERVICEUUID$

    DEFINITION

    Identifient unique d'un check ( Voir la page TIPS - Récupérer l'UUID d'un élément ( Cluster / Hôte / Check ) )

    (tick)

    (tick)

    $SERVICESTATE$

    EXECUTION

    Statut courant du check ( OK, WARNING, UNKNOWN, CRITICAL )

    (error)

    (tick)

    $SERVICESTATETYPE$

    EXECUTION

    Confirmation du statut d'un check ( SOFT ou HARD )

    (error)

    (tick)

    $SERVICESTATEID$

    EXECUTION

    Numéro correspondant au statut courant du check ( 0=UP, 1=DOWN, ou 2=UNREACHABLE )

    (error)

    (tick)

    $LASTSERVICESTATE$

    EXECUTION

    Statut précédent du check ( OK, WARNING, UNKNOWN, CRITICAL )

    (error)

    (tick)

    $LASTSERVICESTATEID$

    EXECUTION

    Numéro correspondant au statut précédent du check ( 0=UP, 1=DOWN, ou 2=UNREACHABLE )

    (error)

    (tick)

    $SERVICEISVOLATILE$

    DEFINITION

    Booléen indiquant si le check est volatile ( False=Non volatile, True=Volatile )

    (tick)

    (tick)

    $LASTSERVICECHECK$

    EXECUTION

    Date au format timestamp de la dernière exécution du check

    (error)

    (tick)

    $LASTSERVICESTATECHANGE$

    EXECUTION

    Date au format timestamp du dernier changement de statut du check

    (error)

    (tick)

    $LASTSERVICEOK$

    EXECUTION

    Date au format timestamp du dernier statut OK du check

    (error)

    (tick)

    $LASTSERVICEWARNING$

    EXECUTION

    Date au format timestamp du dernier statut WARNING du check

    (error)

    (tick)

    $LASTSERVICEUNKNOWN$

    EXECUTION

    Date au format timestamp du dernier statut UNKNOWN du check

    (error)

    (tick)

    $LASTSERVICECRITICAL$

    EXECUTION

    Date au format timestamp du dernier statut CRITICAL du check

    (error)

    (tick)

    $SERVICEOUTPUT$

    EXECUTION

    Résultat de la dernière vérification du check

    (error)

    (tick)

    $LONGSERVICEOUTPUT$

    EXECUTION

    Résultat long de la dernière vérification du check

    (error)

    (tick)

    $SERVICEPERFDATA$

    EXECUTION

    Données de performances renvoyées par la dernière exécution du check

    (error)

    (tick)

    $SERVICECHECKCOMMAND$

    DEFINITION

    Nom de la commande utilisée pour l'exécution du check ( avec les paramètres )

    (tick)

    (tick)

    $SERVICENOTESURL$

    DEFINITION

    URL externe du check ( propriété notes_url )

    (tick)

    (tick)

    $SERVICENOTESMULTIURL$

    DEFINITION

    URLs externes du check ( propriété notes_multi_url )

    (tick)

    (tick)

    $SERVICEBUSINESSIMPACT$

    DEFINITION

    Nombre entre 0 et 5 indiquant l'impact métier du check

    (tick)

    (tick)

    $SERVICEFIRSTNOTIFICATIONDELAY$

    DEFINITION

    Nombre de minutes à attendre avant d'envoyer la première notification pour un service

    (tick)

    (tick)

    $SERVICENOTIFICATIONNUMBER$ 

    EXECUTION

    Nombre de notifications consécutives envoyées pour un statut différent de OK

    (error)

    (tick)

    $SERVICETHRESHOLDSDISPLAY$

    DEFINITION

    Affichage des seuils, tel qu'il est paramétré sur le check

    (tick)

    (tick)

    $SERVICEDOWNTIMECOMMENT$

    EXECUTION

    Le commentaire du contexte "Période de maintenance"

    (error)

    (tick)

    $SERVICEDOWNTIMEAUTHOR$

    EXECUTION

    L'auteur du contexte "Période de maintenance"

    (error)

    (tick)

    $ACKDATA$

    EXECUTION

    Le message d'un contexte "Prise en compte".

    (error)(tick)

    $ACKAUTHOR$

    EXECUTION

    L'auteur d'un contexte "Prise en compte".

    (error)(tick)

    $SERVICEIS_ROOT_PROBLEM$

    EXECUTION

    Booléen indiquant si le check est un problème source ( True ou False  )

    (error)(tick)
    Note

    On accède en général aux propriétés du check avec la notation entre dollars commençant par SERVICE ( exemple : $SERVICEDESC$ ). Dans le tableau, certaines entrées ne commençant pas par SERVICE sont présentes, mais elles font quand même référence à une propriété du check.

    Propriétés des utilisateurs
    SyntaxePropriété de TYPEDescriptionDisponible dans le SynchronizerDisponible dans le Scheduler
    $CONTACTNAME$DEFINITIONNom de l'utilisateur ( propriété contact_name )(tick)(tick)
    $CONTACTEMAIL$ DEFINITIONAdresse mail de l'utilisateur ( propriété email )(tick)(tick)
    $CONTACTPAGER$DEFINITIONNuméro de téléphone de l'utilisateur ( propriété pager )(tick)(tick)
    $CONTACTGROUPNAME$EXECUTIONNom du groupe d'utilisateurs auquel appartient l'utilisateur. S'il appartient à plusieurs groupes d'utilisateurs, un seul sera retourné.(error)(tick)
    $CONTACTGROUPNAMES$DEFINITIONListe des groupes d'utilisateurs auxquels appartient l'utilisateur, séparés par des virgules.(tick)(tick)
    Propriétés des notification
    SyntaxePropriété de TYPEDescriptionDisponible dans le SynchronizerDisponible dans le Scheduler
    $NOTIFICATIONTYPE$EXECUTION

    Le type de notification à envoyer. Cela correspond au type d'événement qui a été constaté sur l'élément.


    Panel

    Type

    Événement source

    PROBLEM  Le statut de l'élément est non OK.
    RECOVERYL'élément avait un problème, mais est de nouveau dans un statut OK.
    ACKNOWLEDGEMENT  Un utilisateur a envoyé par l'interface web un accusé de réception par rapport à un problème survenu à un hôte ou à un check.
    FLAPPINGSTART, FLAPPINGSTOPL'élément est entré ou sorti d'un contexte de FLAPPING .
    FLAPPINGDISABLED  La détection a été désactivée pendant la durée du FLAPPING .
    DOWNTIMESTART, DOWNTIMESTOP   L'élément est entré ou sorti d'une période programmée d'indisponibilité.
    DOWNTIMECANCELLEDLa période programmée d'indisponibilité de l'élément a été annulée en cours.



    (error)(tick)



    Les Variables pour les Données ($_HOST...$, $_SERVICE...$, $_CONTACT...$ )

    Shinken Entreprise permet d'ajouter des données personnalisées sur certains éléments, comme les hôtes, les checks, les utilisateurs, et bien sûr les modèles d'hôtes, de checks et d'utilisateurs.

    • Ces donnĂ©es permettent de complĂ©ter la dĂ©finition d'un Ă©lĂ©ment lorsque les propriĂ©tĂ©s par dĂ©faut de l'objet ne suffisent pas Ă  le dĂ©crire complètement.

    Par exemple, si un hôte possède deux interfaces réseau, les propriétés par défaut de l'objet ne permettent pas de spécifier deux adresses.

    • Par contre, il est possible d'ajouter une donnĂ©e personnalisĂ©e qu'on appelle par exemple "ADDRESS_2" qui pourra ĂŞtre utilisĂ©e lorsqu'on aura besoin d'avoir la deuxième adresse de l'hĂ´te dans un check.


    Pour accéder à une donnée d'un élément, il faut bien sûr le $, puis un UNDERSCORE, puis le type de l'élément et le nom de la propriété :

      • Le UNDERSCORE => "_"
      • Les types sont les mĂŞmes que pour les propriĂ©tĂ©s :
        • HOST => pour les HĂ´tes et Clusters ( c'est le mĂŞme mot clĂ© de type )
        • SERVICE => pour les Checks
        • CONTACT => pour les Utilisateurs
      • On accède Ă  la donnĂ©e en rajoutant son nom aprĂ©s le type.

        Panel
        titleDonnées personnalisées
        VariableFonction
        $_HOSTDONNEE$Accède à la donnée personnalisée "DONNEE" de l'hôte
        $_SERVICEDONNEE$Accède à la donnée personnalisée "DONNEE" du check
        $_CONTACTDONNEE$Accède à la donnée personnalisée "DONNEE" de l'utilisateur
    Info
    titleRemarque

    C'est la présence d'un underscore ( _ ) avant HOST, SERVICE ou CONTACT, ce qui permet de différencier l'accès à une propriété de l'élément et l'accès à une donnée personnalisée.

    • Par exemple, imaginons qu'on ajoute une donnĂ©e sur un hĂ´te qui s'appelle ADDRESS_2
      • Sur la commande de vĂ©rification d'un check, il accède Ă  l'adresse d'un hĂ´te, il faut utiliser $_HOSTADDRESS_2$.

    Panel
    titleRemplacement des données personnalisées

    Image Added

    Définir des données personnalisées

    Les données locales peuvent être définies sur les hôtes, checks, utilisateurs et leurs modèles respectifs de 2 manières :

    • Par fichier de configuration
    • Par l'interface de configuration


    Dans un fichier de configuration, les données sont définies en préfixant un _ à leur nom. Le nom d'une donnée peut contenir seulement des caractères alphanumériques ( A-Z0-9 ), des tirets ( - ) ou underscore ( _ ). Aussi, le nom d'une donnée sera toujours en majuscules.

    Code Block
    languagejs
    themeConfluence
    titleExemple d'une objet définissant la donnée DONNEE_PERSONNALISEE
    define host {
        host_name    mon_hote
        address		 192.168.0.12
    
    
        _DONNEE_PERSONNALISEE      valeur_de_la_donnée
    }


    Dans l'interface de configuration, l'ajout et la modification de données personnalisées s'effectuent grâce à l'onglet "Données".

    Panel
    titleAjout d'une donnée dans l'interface de Configuration

    Image Added

    Cette capture d'écran montre l'édition de données personnalisées dans le cas d'un hôte. Les mêmes manipulations sur les données personnalisées sont possibles pour les modèles d'hôtes, clusters, modèles de clusters, checks, modèles de check, utilisateurs et modèles d'utilisateurs.

    Info

    Dans un fichier de configuration, une donnée personnalisée est définie en précédant son nom d'un underscore (_).

    Dans l'interface de configuration, cet underscore ne doit pas être spécifié, car il s'agit seulement d'un moyen dans les fichiers de différencier une donnée personnalisée d'une propriété. La déclaration d'une donnée personnalisée depuis l'interface se fait seulement en précisant le nom de la donnée et sa valeur.

    Les Variables génératives ( $ARGn$, $VALUEn$ )

    Lorsque l'on remplace dynamiquement du contenu,

    • il est possible de faire rĂ©fĂ©rence aux propriĂ©tĂ©s, aux donnĂ©es locales ainsi qu'aux Variables globales.
    • il existe Ă©galement des Variables spĂ©ciales qui ne rĂ©cupèrent ni des Variables globales, ni des donnĂ©es locales ou des propriĂ©tĂ©s d'un Ă©lĂ©ment.
      • Elles permettent de transfĂ©rer des donnĂ©es, notamment des arguments de commande.

    Ces Variables spéciales sont accessibles avec les notations $ARGn$ et $VALUEn$.

    Les Variables générées par l'utilisation d'une commande ( $ARGn$, $VALUEn$ )

    Shinken Entreprise permet aux hôtes et aux checks de préciser les commandes qui seront utilisées pour la vérification de l'élément.

    • Dans l'optique de rendre ces commandes le plus gĂ©nĂ©rique possible, et de permettre de factoriser la configuration, des arguments peuvent ĂŞtre passĂ©s Ă  ces commandes.
    • Ces arguments sont sĂ©parĂ©s par des points d'exclamation '!'.


    Dans l'exemple, un check utilise la commande "ma_commande" et lui passe 3 arguments.

    Panel

    Image Added

    Dans la définition de la commande, on veut pouvoir récupérer la valeur de ces arguments pour pouvoir les utiliser sur la ligne de commande.

    • Pour cela, on utilise la notation $ARGn$.
    • La Variable $ARGn$ permet simplement d'accĂ©der Ă  la valeur du n-ième argument.


    Dans l'exemple, on utilise $ARG1$, $ARG2$ et $ARG3$ pour récupérer les valeurs du premier, deuxième et troisième argument.

    Panel

    Image Added

    Info

    Il est possible d'utiliser des Variables comme argument.

    • Exemple : 200!$_HOSTWARNING_LEVEL$
    • Elles seront remplacĂ©es lors de l'Ă©valuation de la commande.


    Pour une utilisation avancée, et avec un certain niveau de maîtrise nécessaire, il est même possible d'utiliser une Variable pour définir plusieurs arguments.

    • Il faut utiliser pour cela le sĂ©parateur : |-|
    • Exemple :
      • Dans les arguments : VERBOSE!$_HOSTLEVELS$
      • Dans l’hĂ´te, la donnĂ©e LEVELS vaut 200|-|400
      • La commande script.py $ARG1$ $ARG2$ $ARG3$ deviendra script.py VERBOSE 200 400
    Panel
    titleRécupération des arguments dans une commande

    Image Added

    Info

    Il est possible d'utiliser jusqu'Ă  32 arguments.

    • Ainsi, les Variables $ARG1$ Ă  $ARG32$ sont utilisables.

    Les Variables générées par l'utilisation de la Duplication de check ( Duplicate Foreach ) - ( $KEY$, $VALUE1$ )

    La fonctionnalité avancée Dupliquer des checks en fonction d'une liste de valeurs présentes dans la Donnée d'un hôte (duplicate_foreach) permet d'appliquer plusieurs fois le même check sur un hôte avec des paramètres différents, selon la valeur d'une donnée personnalisée sur l'hôte.


    Sur chaque check utilisant la fonctionnalité Duplicate Foreach, une clé est affectée, et optionnellement des paramètres.

    Code Block
    languagejs
    themeConfluence
    titleExemple de donnée Duplicate Foreach
    check1$(valeur1)$$(valeur2)$$(valeur3)$

    La valeur de la clé est accessible avec la Variable $KEY$, et les arguments sont accessibles grâce aux Variables $VALUEn$.

    Le tableau suivant récapitule les Variables permettant d’accéder aux valeurs de la donnée Duplicate Foreach:

    VariableValeur
    $KEY$check1
    $VALUE1$valeur1
    $VALUE2$valeur2
    $VALUE3$valeur3
    Info

    Il est possible d'utiliser 16 valeurs différentes. Ainsi, les Variables $VALUE1$ jusqu’à $VALUE16$ sont disponibles.

    Panel
    titleExemple d'utilisation des données Duplicate Foreach

    Image Added

    Panel
    titleRécupération des arguments dans une commande

    Image Removed

    Info

    Comme dans Nagios, il est possible d'utiliser jusqu'Ă  32 arguments.

    Ainsi, les notations $ARG1$ Ă  $ARG32$ sont utilisables.

    Les Variables générées par l'utilisation de la Duplication de check ( Duplicate Foreach ) - ( $KEY$, $VALUE1$ )

    La fonctionnalité avancée Dupliquer des checks en fonction d'une liste de valeurs présentes dans la Donnée d'un hôte (duplicate_foreach) permet d'appliquer plusieurs fois le même check sur un hôte avec des paramètres différents, selon la valeur d'une donnée personnalisée sur l'hôte.

    Sur chaque check utilisant la fonctionnalité Duplicate Foreach, est affecté une clé, et optionnellement des paramètres.

    Code Block
    languagejs
    themeConfluence
    titleExemple de donnée Duplicate Foreach
    check1$(valeur1)$$(valeur2)$$(valeur3)$

    La valeur de la clé est accessible avec la notation $KEY$, et les arguments sont accessible grâce aux notations $VALUEn$.

    Le tableau suivant récapitule les notations permettant d’accéder aux valeurs de la donnée Duplicate Foreach:

    VariableValeur$KEY$check1$VALUE1$valeur1$VALUE2$valeur2$VALUE3$valeur3
    Panel
    titleExemple d'utilisation des données Duplicate Foreach

    Image Removed

    Info

    Il possible d'utiliser 16 valeurs différentes. Ainsi, les notations $VALUE1$ jusqu’à $VALUE16$ sont valides.

    Utilisation pratique des remplacements dynamiques de données

    Les globales

    Définir des données globales

    Les données globales peuvent être définies uniquement par fichiers de configuration.

    Par défaut, un certain de nombre de globales sont définies dans le dossier /etc/shinken/resource.d, dans lequel sont présents tous les fichiers qui déclarent des globales. Au démarrage de Shinken, ces fichiers sont donc chargés et les globales qui y sont définies sont alors disponibles.

    La syntaxe pour la déclaration des globales est la suivante:

    Code Block
    languagejs
    themeConfluence
    titleSyntaxe de déclaration des globales
    # Commentaire: les lignes commencant par # seront ignorées
    # Les noms de globales doivent être entourés de $
    
    
    $NOMDELAGLOBALE$=valeur

    Comme pour les données locales, les noms de globaux ne peuvent contenir que des caractères alphanumériques (A-Z0-9), des tirets (-) et des underscore (_). Comme pour les données locales, le nom d'une globale sera toujours en majuscules.

    Pour permettre à l'utilisateur de faire ses propres packs et faciliter l'import d'une configuration externe, il est possible de déclarer des globales dans une source. Pour cela, il faut placer les fichiers .cfg dans un dossier source_data de la source.

    Les fichiers de déclaration de globaux seront donc copiés dans /etc/shinken/resource.d/ et disponibles comme les autres globales.

    Utiliser des données globales

    Les globales sont accessibles en spécifiant seulement le nom de la globale entourée par des dollars ($).

    La globale "MAGLOBALE" est donc accessible par la notation $MAGLOBALE$.

    Note

    Parce que les globales sont définies dans les fichiers de configuration, un ajout ou modification d'une globale dans ces fichiers nécessite un redémarrage de Shinken Entreprise pour que les modifications soient prises en compte.

    Remarques sur la notation entre dollars ($)

    Info

    Quelle que soit l'utilisation d'une valeur entre dollars, cette valeur doit toujours être en majuscule. Si à l'import des fichiers CFG ou lors de la modification sur l'interface de configuration, une valeur entre dollars comporte des minuscules, celles-ci seront converties en majuscules et un avertissement sera affiché.

    Info
    titleBoucle de référencement dans les remplacements de contenu

    Il est possible, lors de la définition d'une donnée personnalisée, de référencer une autre valeur accessible par une notation entre dollars.
    Il est alors possible d'effectuer une boucle de référencement sans le vouloir.
    Si c'est le cas, cette erreur est indiquée dans l'onglet Checks de la page d'édition d'un hôte.

    Panel

    Image Removed

    Propriétés accessibles dans les remplacements de contenu

    Globales prédéfinies

    Certaines globales présentes ci-dessous sont définies par Shinken et accessibles comme n'importe quelle autre globale.

    SyntaxeDescription

    $LONGDATETIME$

    Heure/date courante au format long (par ex Fri Oct 13 00:30:28 CDT 2000)

    $SHORTDATETIME$

    Heure/date courante au format court (par ex 10-13-2000 00:30:28)

    $DATE$

    Date courante (par ex 10-13-2000)

    $TIME$

    Heure courante (par ex 00:30:28)

    $TIMET$

    Heure courante au format timestamp

    Limites lors de l'évaluation des variables dynamiques pour générer une ligne de commande

    Il peut arriver que le résultat de certaines variables dynamiques nécessite l'évaluation d'autres variables dynamiques pour être obtenu.

    Pour éviter tout emballement récursif ( exemple: VARIABLE_1  nécessite VARIABLE_2  qui nécessite VARIABLE_3 qui nécessite VARIABLE_1 ), les limites suivantes sont appliquées lors de la résolution des variables dynamiques :

    • il ne peut pas y avoir plus de 32 niveaux d'imbrication de variables, au delĂ  de ce niveau, les variables ne sont plus rĂ©solues
    • il ne peut pas y avoir plus de 255 variables Ă  rĂ©soudre sur la ligne de commande, au delĂ  de ce nombre, les variables ne sont plus rĂ©solues
    • la ligne de commande gĂ©nĂ©rĂ©e après rĂ©solution des variables dynamiques ne peut pas excĂ©der 65000 caractères.

    Si un dépassement se produit, la résolution des variables est interrompue, et la ligne de commande est tronquée pour être remplacée par une commande remontant cette information.

    Différences de comportement entre le Synchronizer (configuration) et le Scheduler (production)

    Certaines données n'étant disponibles qu'en production, le Synchronizer se contente de simuler leur existence lors des essais de check ( exemple: $HOSTPERFDATA$,  $SERVICEPERFDATA$ ... )

    En conséquence, certaines problématiques que l'ont peut rencontrer en production ne peuvent pas être testées ou observées depuis l'essai de check, , comme par exemple une variable dynamique qui se substitue par une multitude de variables dynamiques. 

    En particulier, pendant les résolutions des variables dynamiques la différence suivante peut être observée :

  • le Scheduler, en production, gère le nombre de variables dynamiques prĂ©sentes sur la ligne de commande, Ă  chaque Ă©tape de substitution
  • le Synchronizer, lors de l'essai de check, ne gère pas le nombre de variables prĂ©sentes sur la ligne de commande lors des substitutions, et il n'applique pas la règle limitant leur nombre Ă  255 Ă  chaque Ă©tape de substitution.