Zabbix Documentation 4.0

3.04.04.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools


Sidebar

fr:manual:config:macros:macro_functions

1 Fonctions de macro

Aperçu

Les fonctions de macro offrent la possibilité de personnaliser les valeurs de macro.

Parfois, une macro peut donner une valeur avec laquelle il n’est pas forcément facile de travailler. Elle peut être longue ou contenir une sous-chaîne spécifique que vous souhaitez extraire. C'est là que les fonctions de macro peuvent être utiles.

La syntaxe d'une fonction de macro est la suivante :

{<macro>.<func>(<params>)}

où :

  • <macro> - la macro à personnaliser (par exemple {ITEM.VALUE} ou {#LLDMACRO})
  • <func> - la fonction à appliquer
  • <params> - une liste de paramètres de fonction séparés par des virgules. Les paramètres doivent être entre guillemets s'ils commencent par (un espace), " ou contiennent ), ,.

Par exemple :

{{ITEM.VALUE}.regsub(pattern, output)}
{{#LLDMACRO}.regsub(pattern, output)}

Fonctions de macro supportées

FONCTION
Description Paramètres Supportée pour
regsub (<pattern>,<output>)
Extraction de sous-chaîne par une expression régulière (sensible à la casse). pattern - l'expression régulière à faire correspondre
output - les options de sortie. \1 - \9 Les espaces réservés sont pris en charge pour capturer les groupes. \0 renvoie le texte correspondant.
{ITEM.VALUE}
{ITEM.LASTVALUE}
Macros de découverte de bas niveau (sauf dans le filtre de règle de découverte de bas niveau)
iregsub (<pattern>,<output>)
Extraction de sous-chaîne par une expression régulière (insensible à la casse). pattern - l'expression régulière à faire correspondre
output - les options de sortie. \1 - \9 Les espaces réservés sont pris en charge pour capturer les groupes. \0 renvoie le texte correspondant.
{ITEM.VALUE}
{ITEM.LASTVALUE}
Macros de découverte de bas niveau (sauf dans le filtre de règle de découverte de bas niveau)

Si une fonction est utilisée dans un emplacement supporté, mais appliquée à une macro ne prenant pas en charge les fonctions de macro, la macro est évaluée à 'INCONNU'.

Si le motif n'est pas une expression régulière correcte, la macro est évaluée à 'INCONNU' (à l'exception des macros de découverte de bas niveau pour lesquelles la fonction sera ignorée dans ce cas et la macro restera non développée).

Si une fonction de macro est appliquée à la macro dans des emplacements ne prenant pas en charge les fonctions de macro, la fonction est ignorée.

Exemples

La manière dont les fonctions de macro peuvent être utilisées pour personnaliser les valeurs de macro est illustrée dans les exemples suivants, contenant les lignes de journal en tant que valeur reçue :

Valeur reçueMacroSortie
123Log line {{ITEM.VALUE}.regsub(^[0-9]+, Problem)} Problem
123 Log line {{ITEM.VALUE}.regsub("^([0-9]+)", "Problem")} Problem
123 Log line {{ITEM.VALUE}.regsub("^([0-9]+)", Problem ID: \1)} Problem ID: 123
Log line {{ITEM.VALUE}.regsub(".*", "Problem ID: \1")} Problem ID:
MySQL crashed errno 123 {{ITEM.VALUE}.regsub("^([A-Za-z]+).*([0-9]+)", " Problem ID: \1_\2 ")} Problem ID: MySQL_123 
123 Log line {{ITEM.VALUE}.regsub("([1-9]+", "Problem ID: \1")} *UNKNOWN* (expression régulière non valide)
customername_1 {{#IFALIAS}.regsub("(.*)_([0-9]+)", \1)} customername
customername_1 {{#IFALIAS}.regsub("(.*)_([0-9]+)", \2)} 1
customername_1 {{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} {{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} (expression régulière non valide)