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:
on
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.).
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. |
Els par¨¤metres de funci¨® opcionals s'indiquen amb < >.
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:
Format de nombre per controlar el nombre de »å¨ª²µ¾±³Ù²õ impresos despr¨¦s del punt decimal.
±Ê²¹°ù¨¤³¾±ð³Ù°ù±ð²õ:
Exemples:
{{ITEM.VALUE}.fmtnum(2)} - °ù±ð³Ù´Ç°ù²Ô²¹°ù¨¤ "24.34" per el valor rebut "24.3413523"
{{ITEM.VALUE}.fmtnum(0)}`|- °ù±ð³Ù´Ç°ù²Ô²¹°ù¨¤ "24" per el valor rebut "24.3413523"
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)±Ê²¹°ù¨¤³¾±ð³Ù°ù±ð²õ:
strftime
;-<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:
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.-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"
Descodificaci¨® d'un valor de macro a partir de la codificaci¨® HTML. Suporta els ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ seg¨¹ents:
Valor | Valor descodificat |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
' |
' |
Exemple:
Descodificaci¨® d'un valor de macro a partir de la codificaci¨® HTML. Admet els ³¦²¹°ù¨¤³¦³Ù±ð°ù²õ seg¨¹ents:
Valor | Valor descodificat |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Exemple:
Extracci¨® de subcadenes mitjan?ant una coincid¨¨ncia d'expressi¨® regular (no distingeix entre ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ i ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ).
±Ê²¹°ù¨¤³¾±ð³Ù°ù±ð²õ:
Comentaris:
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)
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.
±Ê²¹°ù¨¤³¾±ð³Ù°ù±ð²õ:
Comentaris:
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
Extracci¨® de subcadenes mitjan?ant una coincid¨¨ncia d'expressi¨® regular (no distingeix entre ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ i ³¾¾±²Ô¨²²õ³¦³Ü±ô±ð²õ).
±Ê²¹°ù¨¤³¾±ð³Ù°ù±ð²õ:
Comentaris:
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.
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 ³¾²¹Âᨲ²õ³¦³Ü±ô±ð²õ)
Descodificaci¨® d'un valor de macro a partir de la codificaci¨® d'URL.
Exemple:
Codificar un valor de macro a cap a codificaci¨® d'URL.
Exemple:
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) |
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:
Veieu tamb¨¦: detalls de les macro {ITEM.VALUE} i {ITEM.LASTVALUE}.