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
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
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.
Funció | Descripció |
---|---|
btoa | Codificació del valor de la macro en format Base64. |
fmtnum | Format de nombres per controlar el nombre de dígits 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 majúscules i minúscules). |
minuscules | Transformació de caràcters de valor macro en minúscules. |
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 majúscules i minúscules). |
tr | Transliteració de caràcters de valor macro. |
majúscules | Transformació de caràcters de valor macro en majúscules. |
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 dígits impresos després del punt decimal.
Paràmetres:
Exemples:
{{ITEM.VALUE}.fmtnum(2)} - retornarà "24.34" per el valor rebut "24.3413523"
{{ITEM.VALUE}.fmtnum(0)}`|- retornarà "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)Paràmetres:
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)} - retornarà "Octubre" per al valor rebut "12:36:01"
{{TIME}.fmttime(%d %B,-1M/M)} - retornarà "Primer de Setembre" per al valor rebut "12:36:01"
Descodificació d'un valor de macro a partir de la codificació HTML. Suporta els caràcters següents:
Valor | Valor descodificat |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
' |
' |
Exemple:
Descodificació d'un valor de macro a partir de la codificació HTML. Admet els caràcters següents:
Valor | Valor descodificat |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Exemple:
Extracció de subcadenes mitjançant una coincidència d'expressió regular (no distingeix entre majúscules i minúscules).
Paràmetres:
Comentaris:
Exemple:
{{ITEM.VALUE}.iregsub("fallit|error|manca|problema","ERROR")}: es resoldrà en "ERROR" si es reben les subcadenes "fallit", "error", "manca" o "problema" (no distingeix entre majúscules i minúscules)
Transformació de tots els caràcters de valor macro a minúscules. Funciona amb jocs de caràcters d'un sol octet (com ara ASCII) i no és compatible amb UTF-8.
Exemple:
{{ITEM.VALUE}.lowercase()} - transformarà un valor com "Zabbix 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 Zabbix es va compilar amb libpcre
, aquesta funció retornarà DESCONEGUT.
Paràmetres:
Comentaris:
Exemples:
{{ITEM.VALUE}.regrepl("oldParam", "newParam")}: substitueix "oldParam" per "newParam"
{{ITEM.VALUE}.regrepl("([^a-z])","\\\1")}: escapa tots els caràcters 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 majúscules i minúscules).
Paràmetres:
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 minúscules i majúscules) "fail", "error", "fault" o "problem"; res si no coincideixen
Veieu més exemples.
Transliteració de caràcters 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 minúscules
{{ITEM.VALUE}.tr(0-9a-z,*)}: substituïu tots els números i lletres minúscules 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 caràcters "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 caràcters 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 caràcters de valor macro a majúscules. Funciona amb jocs de caràcters d'un sol octet (com ara ASCII) i no és compatible amb UTF-8.
Exemple:
{{ITEM.VALUE}.uppercase()} - transformarà un valor com "Zabbix Server" a "ZABBIX SERVER" (en majúscules)
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.
Funció 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 caràcters 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}.