Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


L'une des caractéristiques principales qui rend Shinken Enterprise si flexible, c'est sa capacité à utiliser des données dans la définition des commandes. Ces données permettent de référencer des informations provenant des hôtes, des services, ou d'autres sources dans les commandes.


Remplacement de données 

Before Shinken Enterprise executes a command, it will replace any datas it finds in the command definition with their corresponding values. This data substitution occurs for all types of commands that Shinken Enterprise executes - host and service checks, notifications, event handlers, etc.

Avant d'exécuter une commande, Shinken Enterprise va remplacer toutes les données trouvées dans la définition de la commande avec leur valeurs correspondantes. Ce remplacement s'opère pour toute commande que Shinken Enterprise exécute : vérification d'hôte et de check, notification, exécution d'événements, etc .

Certaines données peuvent elles-même en contenir d'autres. Cela inclut les données Certain datas may themselves contain other datas. These include the "$HOSTNOTES$", "$HOSTNOTESURL$", "$HOSTACTIONURL$", "$SERVICENOTES$", "$SERVICENOTESURL$", and et "$SERVICEACTIONURL$" datas .

Tip: If, you need to have the '$' character in one of your command (and not referring to a data), please put "$$" instead. Shinken Enterprise will replace it well

...

Astuce: si vous devez utiliser le caractère '$' dans une commande (qui ne se réfère pas aux données), utilisez plutôt "$$" . Shinken Enterprise le remplacera très bien. 

Exemple 1: donnée adresse de l'hôte 

Lorsque vous utilisez un hôte ou un service dans les données de définitions de commande , ils se réfèrent à des valeurs pour l'hôte ou le service pour lequel la commande est en cours d'exécution

Prenons un exemple. Imaginons que utilisons une définition d'hôte et une commande check_ping tel que défini ici:

  • Hôte:
PropriétéValeur
Nomlinuxbox
adresse
  • Host:
PropertyValue
Namelinuxbox
address192.168.1.2
check_commandcheck_ping
  • CommandCommande

 

PropertyPropriétéValueValeur
NameNom check_ping
command_line /var/lib/Shinken Enterprise/libexec/check_ping -H $HOSTADDRESS$ -w 100.0,90% -c 200.0,60%

The expanded/final command line to be executed for the host's check command would look like thisLa ligne de commande qui sera exécutée pour la vérification de l'hôte ressemblera à :

Code Block
languagebash
/var/lib/Shinken Enterprise/libexec/check_ping -H 192.168.1.2 -w 100.0,90% -c 200.0,60%

...


Vous pouvez utiliser une commande unique pour vérifier un nombre illimité d'hôtes. Chaque hôte peut être vérifié avec la même définition de commande car chaque adresse d'hôte est automatiquement remplacée à chaque fois dans la commande avant exécution.


Exemple 2: données d'argument de commande

Vous pouvez également passer des arguments dans une commande, ce qui est très pratique si vous voulez garder une définition de commande générique. Les arguments sont spécifiés dans la définition de l'objet (i.e. hôte ou service) en les séparant du nom de la commande par un point d'exclamation (!) tel que:

 

Le check:

PropriétéValeur

...

You can pass arguments to commands as well, which is quite handy if you'd like to keep your command definitions rather generic. Arguments are specified in the object (i.e. host or service) definition, by separating them from the command name with exclamation points (!) like so:

 

The check:

PropertyValue
host_namelinuxbox
DescriptionPING
command commande check_ping!200.0,80%!400.0,40%

In the example above, the service check command has two arguments (which can be referenced with $ARGn$. The $ARG1$ data will be Dans cet exemple, la commande du service a 2 arguments (qui peuvent être référencés avec $ARGn$. La donnée $ARG1$ sera "200.0,80%" and et "$ARG2$" will be sera "400.0,40%" (both without quotes). Assuming we are using the host definition given earlier and a check_ping command defined like this:The command:, les 2 sans quotes).  Imaginons que utilisons la définition d'hôte vue précédemment et une commande check_ping tel que défini ici:


La commande:

PropriétéValeur
Nom
PropertyValue
Namecheck_ping
command lineLigne de commande /var/lib/Shinken Enterprise/libexec/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$

 The expanded/final command line to be executed for the service's check command would look like this

La ligne de commande qui sera exécutée pour la vérification de l'hôte ressemblera à :

Code Block
languagebash
/var/lib/Shinken Enterprise/libexec/check_ping -H 192.168.1.2 -w 200.0,40% -c 400.0,80%



Si vous devez utiliser des caractères If you need to pass bang (!) characters in your command arguments dans les arguments de la commande , you can do so by escaping them with a backslash (\). If you need to include backslashes in your command arguments, they should also be escaped with a backslash.

 

On-Demand datas

Données à la demande


Normalement, lorsque vous utilisez des données d'hôte et de service dans la définition des commandes, elles se réfèrent à des valeurs pour l'hôte ou le service pour lequel la commande est en cours d'exécution. Par exemple, si une commande de vérification d'un hôte est lancée sur un nom d'hôte "linuxbox", toutes les données "ref:standard<thebasics/datalist>" se référeront aux valeurs de cet hôte Normally when you use host and service datas in command definitions, they refer to values for the host or service for which the command is being run. For instance, if a host check command is being executed for a host named "linuxbox", all the :ref:standard host datas <thebasics/datalist> will refer to values for that host ("linuxbox").If you would like to reference values for another host or service in a command (for which the command is not being run), you can use what are called "on-demand" datas. On-demand datas look like normal datas, except for the fact that they contain an identifier for the host or service from which they should get their value. Here's the basic format for on-demand datas:

Si vous voulez référencer des valeurs pour un autre hôte ou service dans une commande, (pour laquelle la commande n'est pas lancée) vous pouvez utiliser ce qu'on appelle les données "à la demande".Ces données sont normales, excepté le fait qu'elles contiennent un identifiant pour le service ou l'hôte dont elles doivent tirer la valeur. Voici le format simple de données à la demande

  • * "$HOSTdataNAME:host_name$"
  • * "$SERVICEdataNAME:host_name:service_description$"

Replace Remplace "HOSTdataNAME" and et "SERVICEdataNAME" with the name of one of the standard host of service datas found avec le nom de données standards trouvées d'un hôte ou service  :ref:here <thebasics/datalist>.

Note that the data name is separated from the host or service identifier by a colon :le nom de données est séparé de l'identifiant de l'hôte ou du service par le séparateur 2 points (:). For on-demand service datas, the service identifier consists of both a host name and a service description - these are separated by a colon (:) as well.

On-demand service datas can contain an empty host name field. In this case the name of the host associated with the service will automatically be used.

Pour les données de service à la demande, l'identifiant du service est constitué à la fois du nom de l'hôte te de la description du service . Ils sont également séparés par les 2 points (:) .

Les données de service à la demande peuvent avoir un nom d'hôte vide, dans ce cas on prend automatiquement le nom associé au service .

Exemples de données de service et d'hôte à la demande Examples of on-demand host and service datas follow:

  • $HOSTDOWNTIME:myhost$ // On-demand host data données d'hôte à la demande
  • $SERVICESTATEID:server:database$ // On-demand service data données de service à la demande
  • $SERVICESTATEID::CPU Load$ // On-demand service data with blank host name fielddonnées de service à la demande sans nom d'hôte


Les données à la demande sont également disponibles pour les On-demand datas are also available for hostgroup, servicegroup, contact, and et contactgroup datas. For examplePar exemple:

  • $CONTACTEMAIL:john$ // On-demand contact datadonnées contact à la demande
  • $CONTACTGROUPMEMBERS:linux-admins$ // On-demand contactgroup data données contactgroup à la demande
  • $HOSTGROUPALIAS:linux-servers$ // On-demand hostgroup data données hostgroup à la demande
  • $SERVICEGROUPALIAS:DNS-Cluster$ // On-demand servicegroup data données servicegroup à la demande

 

Custom Variable datas

Données variables spécifiques 


Toute variable spécifique à un objet définie sur un hôte, service ou contact peut être utilisée comme donnée. Elles sont nommées comme ci-jointAny custom object variables that you define in host, service, or contact definitions are also available as datas. Custom variable datas are named as follows:

  • "$_HOSTvarname$"
  • "$_SERVICEvarname$"
  • "$_CONTACTvarname$"

Take the following host definition with a custom variable called Prenez la définition d'hôte suivante avec une variable spécifique appelée ""_MACADDRESS""...

Host definiton

Définiton de l'hôte

PropriétéValeur
Nom
PropertyValue
Namelinuxbox
addressadresse192.168.1.1
_MACADDRESS00:01:02:03:04:05

 

The La variable spécifique "_MACADDRESS" custom variable would be available in a data called sera disponible comme donnée appelée "$_HOSTMACADDRESS$".

Data Cleansing

Nettoyage des données

Certaines données sont nettoyées d'une enveloppe de méta caractères potentiellement dangereux avant d'être échangés dans la commande à exécuter. Le choix des caractères à nettoyer dépend du paramétrage de la valeur "illegalSome datas are stripped of potentially dangerous shell metacharacters before being substituted into commands to be executed. Which characters are stripped from the datas depends on the setting of the illegal_data_output_chars directive. The following datas are stripped of potentially dangerous characters:".Les données suivantes sont nettoyées de caractères potentiellement dangereux :  

  • $HOSTOUTPUT$
  • $LONGHOSTOUTPUT$

...