Áú»¢¶Ä²©

1 Funcions macro

Vista general

Les funcions de macro ofereixen la possibilitat de personalitzar els valors macro (per exemple, escur?ar o extreure subcadenes espec¨ªfiques), facilitant-ne el treball.

La sintaxi d'una funci¨® macro ¨¦s:

{macro.func(params)}

on

  • macro - la macro a personalitzar, per exemple {ITEM.VALUE}, {$USERMACRO}, {#LLDMACRO};
  • func - la funci¨® que cal aplicar (veieu funcions compatibles);
  • params - una llista delimitada per comes de par¨¤metres de funci¨®, que s'ha d'entrar entre cometes si:
    • comen?a amb un espai o cometes dobles;
    • cont¨¦ par¨¨ntesis de tancament o una coma.

Per exemple:

{{TIME}.fmttime(format,time_shift)}
       {{ITEM.VALUE}.regsub(pattern, output)}
       {{$USERMACRO}.regsub(pattern, output)}
       {{#LLDMACRO}.regsub(pattern, output)}

Les funcions de macro s¨®n compatibles amb:

Les funcions de macro es poden emprar a totes les ubicacions que admeten les macros enumerades. Aix¨° s'aplica tret que s'indiqui expl¨ªcitament que nom¨¦s s'espera una macro (per exemple, quan es configuren macros d'equip o filtres de regla de descoberta de baix nivell).

Veieu tamb¨¦: problemes coneguts

S'admet una ¨²nica funci¨® per macro; no s'admeten pas m¨²ltiples funcions de macro en cadena.

Veieu els exemples d'escapament per als casos en qu¨¨ s'utilitzen funcions de macro en altres contextos (funci¨®, clau d'element, una altra macro, etc.).

Funcions admeses

Les funcions es llisten sense informaci¨® afegida. Feu clic a la funci¨® per veure-la en detall.

¹ó³Ü²Ô³¦¾±¨® ¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®
btoa Codificaci¨® del valor de la macro en format Base64.
fmtnum Format de nombres per controlar el nombre de »å¨ª²µ¾±³Ù²õ impresos despr¨¦s del punt decimal.
fmttime Format de l'hora.
htmldecode Decodificaci¨® del valor de la macro des de la codificaci¨® HTML.
htmlencode Codificaci¨® del valor de la macro en codificaci¨® HTML.
iregsub Extracci¨® de subcadenes mitjan?ant una coincid¨¨ncia d'expressi¨® regular (no distingeix entre ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ i ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ).
minuscules Transformaci¨® de ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ de valor macro en ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ.
regrepl Substituci¨® de car¨¤cter/subcadena en el valor de la macro.
regsub Extracci¨® de subcadenes mitjan?ant una coincid¨¨ncia d'expressi¨® regular (distingeix entre ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ i ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ).
tr Transliteraci¨® de ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ de valor macro.
³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ Transformaci¨® de ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ de valor macro en ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ.
urldecode Decodificaci¨® del valor de la macro a partir de la codificaci¨® d'URL.
urlencode Codificaci¨® del valor de la macro en la codificaci¨® d'URL.

Detalls de la funci¨®

Els par¨¤metres de funci¨® opcionals s'indiquen amb < >.

btoa

Codificaci¨® d'un valor de macro en codificaci¨® Base64. La codificaci¨® Base64 ¨¦s un m¨¨tode per representar dades bin¨¤ries com a text, ¨²til per emmagatzemar i transmetre contingut binari mitjan?ant protocols segurs basats en text.

Exemple:

{{ITEM.VALUE}.btoa()} - codificar¨¤ en Base64 un valor com ara "zabbix" a "emFiYml4"

´Ú³¾³Ù²Ô³Ü³¾(»å¨ª²µ¾±³Ù²õ)

Format de nombre per controlar el nombre de »å¨ª²µ¾±³Ù²õ impresos despr¨¦s del punt decimal.

±Ê²¹°ù¨¤³¾±ð³Ù°ù±ð²õ:

  • »å¨ª²µ¾±³Ù²õ - el nombre de »å¨ª²µ¾±³Ù²õ despr¨¦s del punt decimal. Interval v¨¤lid: 0-20. No es generaran zeros al final.

Exemples:

{{ITEM.VALUE}.fmtnum(2)} - °ù±ð³Ù´Ç°ù²Ô²¹°ù¨¤ "24.34" per el valor rebut "24.3413523"
       {{ITEM.VALUE}.fmtnum(0)}`|- °ù±ð³Ù´Ç°ù²Ô²¹°ù¨¤ "24" per el valor rebut "24.3413523"

fmttime(format,<time_shift>)

Format de l'hora.
Tingueu en compte que aquesta funci¨® es pot emprar amb macros que es resolen en un valor en un dels formats d'hora seg¨¹ents:

  • hh:mm:ss
  • aaaa-mm-ddThh:mm:ss[tz] (est¨¤ndard ISO8601)
  • Unix timestamp

±Ê²¹°ù¨¤³¾±ð³Ù°ù±ð²õ:

  • format - cadena de format obligatori, compatible amb el format de la funci¨® strftime;
  • time_shift (opcional) - el canvi de temps aplicat a l'hora abans del format; hauria de comen?ar amb -<N><time_unit> o +<N><time_unit>, on:
    • N - el nombre d'unitats de temps per sumar o restar;
    • time_unit - h (hora), d (dia), w (setmana), M (mes) o y (any).

Comentaris:

  • El par¨¤metre time_shift admet operacions de temps de diversos passos i pot incloure /<time_unit> per canviar al comen?ament de la unitat de temps (/d - mitjanit, /w - 1r dia de la setmana (dilluns), /M - 1r dia del mes, etc.). Exemples: "-1w" - exactament fa 7 dies; -1w/w - dilluns de la setmana anterior; -1w/w+1d - dimarts de la setmana anterior.
  • Les operacions de temps es calculen d'esquerra a dreta sense prioritats. Per exemple, -1M/d+1h/w s'analitzar¨¤ com a ((-1M/d)+1h)/w.

Exemples:

 {{TIME}.fmttime(%B)} - °ù±ð³Ù´Ç°ù²Ô²¹°ù¨¤ "Octubre" per al valor rebut "12:36:01"
        {{TIME}.fmttime(%d %B,-1M/M)} - °ù±ð³Ù´Ç°ù²Ô²¹°ù¨¤ "Primer de Setembre" per al valor rebut "12:36:01"
htmldecode

Descodificaci¨® d'un valor de macro a partir de la codificaci¨® HTML. Suporta els ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ seg¨¹ents:

Valor Valor descodificat
& &
< <
> >
" "
' '
' '

Exemple:

{{ITEM.VALUE}.htmldecode()} - descodificar¨¤  amb HTML un valor com ara "<" a "<"
htmldecode

Descodificaci¨® d'un valor de macro a partir de la codificaci¨® HTML. Admet els ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ seg¨¹ents:

Valor Valor descodificat
& &
< <
> >
" "
' '

Exemple:

{{ITEM.VALUE}.htmldecode()} - descodificar¨¤ amb HTML un valor com ara "<" a "<"

iregsub(±è²¹³Ù°ù¨®, sortida)

Extracci¨® de subcadenes mitjan?ant una coincid¨¨ncia d'expressi¨® regular (no distingeix entre ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ i ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ).

±Ê²¹°ù¨¤³¾±ð³Ù°ù±ð²õ:

  • ±è²¹³Ù°ù¨® - l'expressi¨® regular a coincidir;
  • sortida - les opcions de sortida. \1 - \9 s'admeten els marcadors de posici¨® per capturar grups. \0 retorna el text coincident.

Comentaris:

  • Si no hi ha cap coincid¨¨ncia per a l'expressi¨® regular, la funci¨® no retorna res;
  • Si el ±è²¹³Ù°ù¨® de funci¨® ¨¦s una expressi¨® regular incorrecta, la macro s'avalua com a "DESCONEGUT" (excepte les macros de descoberta de baix nivell, en aquest cas la funci¨® s'ignorar¨¤ i la macro romandr¨¤ sense resoldre);
  • Les refer¨¨ncies a grups de captura inexistents a la cadena de substituci¨® es substitueixen per una cadena buida.

Exemple: {{ITEM.VALUE}.iregsub("fail|error|fault|problem","ERROR")}: es resoldr¨¤ en "ERROR" si es reben les subcadenes "fail", "error", "fault" o "problem" (no distingeix entre ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ i ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ); res si no hi ha coincid¨¨ncia

³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ

Transformaci¨® de tots els ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ de valor macro a ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ. Funciona amb jocs de ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ d'un sol octet (com ara ASCII) i no ¨¦s compatible amb UTF-8.

Exemple:

{{ITEM.VALUE}.lowercase()} - transformar¨¤ un valor com "Áú»¢¶Ä²© SERVER" a "zabbix server" (en min¨²scula)

regrepl(±è²¹³Ù°ù¨®,substituci¨®,<±è²¹³Ù°ù¨®2>,<substituci¨®2>,...)

Substituci¨® de car¨¤cter/subcadena en el valor de la macro.
Tingueu en compte que aquesta funci¨® nom¨¦s ¨¦s compatible amb la biblioteca libpcre2. Si el servidor/proxy Áú»¢¶Ä²© es va compilar amb libpcre, aquesta funci¨® °ù±ð³Ù´Ç°ù²Ô²¹°ù¨¤ DESCONEGUT.

±Ê²¹°ù¨¤³¾±ð³Ù°ù±ð²õ:

  • ±è²¹³Ù°ù¨® - l'expressi¨® regular que coincideix;
  • reempla?ament - la cadena de substituci¨®. \1 - \9 s'admeten els marcadors de posici¨® a les cadenes de substituci¨® per capturar grups.

Comentaris:

  • Els patrons i les substitucions es processen seq¨¹encialment, i cada parell posterior s'aplica d'acord amb el resultat de la substituci¨® anterior;
  • Les refer¨¨ncies a grups de captura inexistents a la cadena de substituci¨® es substitueixen per una cadena buida.

Exemples:

{{ITEM.VALUE}.regrepl("oldParam", "newParam")}: substitueix "oldParam" per "newParam"
       {{ITEM.VALUE}.regrepl("([^a-z])","\\\1")}: escapa tots els ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ que no siguin lletres amb una barra invertida
       {$THRESHOLD:"{{#FSNAME}.regrepl(\"\\$\",\"\")}"} - esborrar¨¤ una barra invertida (per exemple, per canviar "C:\" per "C:")
       {{ITEM.VALUE}.regrepl("_v1\.0", "_v2.0", "\(final\)", "")}: substitueix diverses parts del valor de l'element

regsub(±è²¹³Ù°ù¨®, sortida)

Extracci¨® de subcadenes mitjan?ant una coincid¨¨ncia d'expressi¨® regular (no distingeix entre ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ i ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ).

±Ê²¹°ù¨¤³¾±ð³Ù°ù±ð²õ:

  • ±è²¹³Ù°ù¨® - l'expressi¨® regular que coincideix;
  • sortida - les opcions de sortida. \1 - \9 s'admeten els marcadors de posici¨® per capturar grups. \0 retorna el text coincident.

Comentaris:

  • Si no hi ha cap coincid¨¨ncia per a l'expressi¨® regular, la funci¨® no retorna res;
  • Si el ±è²¹³Ù°ù¨® de funci¨® ¨¦s una expressi¨® regular incorrecta, la macro s'avalua com a "DESCONEGUDA" (excepte les macros de descoberta de baix nivell, en aquest cas la funci¨® s'ignorar¨¤ i la macro romandr¨¤ sense resoldre);
  • Les refer¨¨ncies a grups de captura inexistents a la cadena de substituci¨® es substitueixen per una cadena buida.

Exemples:

 {{ITEM.VALUE}.regsub("^([0-9]+)", Problem ID: \1)} - resoldr¨¤ a "ID de problema: 123" si es rep un valor com ara "123 Log line"
        {{ITEM.VALUE}.regsub("fail|error|fault|problem","ERROR")} - resoldr¨¤ a "ERROR" si es reben les subcadenes (sensibles a ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ i ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ) "fail", "error", "fault" o "problem"; res si no coincideixen

Veieu m¨¦s exemples.

³Ù°ù(³¦²¹°ù¨¤³¦³Ù±ð°ù²õ,°ù±ð±ð³¾±è±ô²¹?²¹³¾±ð²Ô³Ù)

Transliteraci¨® de ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ de valor macro.

  • ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ - el conjunt de ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ a substituir;
  • reempla?ament - el conjunt de ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ de substituci¨® corresponents a la posici¨®.

Exemples:

{{ITEM.VALUE}.tr(abc, xyz)}: substitu?u totes les aparicions de "a" per "x", "b" per "y", "c" per "z"
       {{ITEM.VALUE}.tr(abc, xyzq)}: substitu?u totes les aparicions de "a" per "x", "b" per "y", "c" per "z" ("s'ignora q")
       {{ITEM.VALUE}.tr(abcde, xyz)}: substitu?u totes les aparicions de "a" per "x", "b" per "y", "c" per "z", "d" per "z" , "e" amb "z" (¨¦s a dir, xyzzz)
       {{ITEM.VALUE}.tr("\\\'", "\/\"")}: substitueix totes les aparicions de barra invertida per barra inclinada, ' per "
       {{ITEM.VALUE}.tr(A-Z,a-z)}: converteix totes les lletres a ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ
       {{ITEM.VALUE}.tr(0-9a-z,*)}: substitu?u tots els n¨²meros i lletres ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ per "*"
       {{ITEM.VALUE}.tr(0-9,ab)}: substitu?u totes les ocurr¨¨ncies de 0 per "a" i substitu?u totes les aparicions d'1, 2, 3, 4, 5, 6, 7, 8 i 9 amb "b"
       {{ITEM.VALUE}.tr(0-9abcA-L,*)}: substitu?u tots els n¨²meros, els ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ "abc" i l'interval A-L per "*"
       {{ITEM.VALUE}.tr("\n","*")}: substitueix les ocurr¨¨ncies de final de l¨ªnia per *
       {{ITEM.VALUE}.tr("e", "\n")}: substitu?u totes les "e" al final de la l¨ªnia

Per incloure ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ literals:

barra invertida: s'ha d'escapar com a \\
       cometes simples - s'ha d'escapar com a \'
       cometes dobles: s'ha d'escapar com a \"

Seq¨¹¨¨ncies d'escapada compatibles amb barra invertida:

\\\\ => \\ - barra invertida doble a barra invertida simple
       \\a => \a - alerta
       \\b => \b - retroc¨¦s
       \\f => \f - feed de formulari
       \\n => \n - nova l¨ªnia
       \\r => \r - retorn
       \\t => \t - pestanya horitzontal
       \\v => \v - pestanya vertical
³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ

Transformaci¨® de tots els ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ de valor macro a ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ. Funciona amb jocs de ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ d'un sol octet (com ara ASCII) i no ¨¦s compatible amb UTF-8.

Exemple:

{{ITEM.VALUE}.uppercase()} - transformar¨¤ un valor com "Áú»¢¶Ä²© Server" a "ZABBIX SERVER" (en ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ)
urldecode

Descodificaci¨® d'un valor de macro a partir de la codificaci¨® d'URL.

Exemple:

{{ITEM.VALUE}.urldecode()} - URL descodificar¨¤ un valor com ara "%2F" a "/"
urlencode

Codificar un valor de macro a cap a codificaci¨® d'URL.

Exemple:

{{ITEM.VALUE}.urlencode()} - URL-codifica un valor com ara "/" a "%2F"

Exemples addicionals

La taula seg¨¹ent mostra m¨¦s exemples d'¨²s de funcions macro.

¹ó³Ü²Ô³¦¾±¨® macro Valor rebut Sortida
{{ITEM.VALUE}.regsub(^[0-9]+, Problem)} 123Log line Problem
{{ITEM.VALUE}.regsub("^([0-9]+)", "Problem")} 123 Log line Problem
{{ITEM.VALUE}.regsub(".*", "Problem ID: \1")} Log line Problem ID:
{{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " Problem ID: \1_\2 ")} MySQL crashed errno 123 Problem ID: MySQL\_123?
{{ITEM.VALUE}.regsub("([1-9]+", "Problem ID: \1")} 123 Log line UNKNOWN (invalid regular expression)
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \1)} customername_1 customername
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \2)} customername_1 1
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} customername_1 {{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} (invalid regular expression)
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}"} customername_1 {$MACRO:"customername"}
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \2)}"} customername_1 {$MACRO:"1"}
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+\", \1)}"} customername_1 {$MACRO:"{{#M}.regsub(\"(.*)_([0-9]+\", \1)}"} (invalid regular expression)
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \1)}\"}" customername_1 "{$MACRO:\"customername\"}"
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \2)}\"}" customername_1 "{$MACRO:\"1\"}"
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" customername_1 "{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" (invalid regular expression)
Vista de valors complets dels elements

Els valors llargs de les macros resoltes {ITEM.VALUE} i {ITEM.LASTVALUE} per als elements de text/registre es trunquen a 20 ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ en algunes ubicacions de la interf¨ªcie. Per veure els valors complets d'aquestes macros, podeu emprar funcions de macro, com ara:

{{ITEM.VALUE}.regsub ("(.*)", \1)}
       {{ITEM.LASTVALUE}.regsub ("(.*)", \1)}

Veieu tamb¨¦: detalls de les macro {ITEM.VALUE} i {ITEM.LASTVALUE}.