Las funciones de macro ofrecen la posibilidad de personalizar los valores de macros (por ejemplo, acortar o extraer subcadenas específicas), lo que facilita su uso.
Todas las funciones enumeradas aquí son compatibles con todos los tipos de macros:
Las funciones de macro se pueden utilizar en todas las ubicaciones que admitan las macros enumeradas. Esto se aplica a menos que se indique explícitamente que solo se espera una macro (por ejemplo, al configurar macros de equipo o filtros de reglas de detección de bajo nivel).
Las funciones se enumeran sin información adicional. Haga clic en la función para ver los detalles completos.
Función | Descripción |
---|---|
btoa | Codificación del valor de la macro en formato Base64. |
fmtnum | Formato de números para controlar la cantidad de dígitos impresos después del punto decimal. |
fmttime | Formato de hora. |
htmldecode | Decodificación del valor de la macro a partir de la codificación HTML. |
htmlencode | Codificación del valor de la macro en codificación HTML. |
iregsub | Extracción de subcadenas mediante una expresión regular (sin distinguir entre mayúsculas y minúsculas). |
lowercase | Transformación de caracteres de valores de macro a minúsculas. |
regrepl | Reemplazo de carácter/subcadena en valores de macro. |
regsub | Extracción de subcadenas mediante una expresión regular (sin distinguir entre mayúsculas y minúsculas). |
tr | Transliteración de caracteres de valores de macro. |
uppercase | Transformación de caracteres de valores de macro a mayúsculas. |
urldecode | Decodificación de valores de macro a partir de la codificación de URL. |
urlencode | Codificación de valores de macro a codificación de URL. |
La sintaxis de una macro función es:
Los parámetros de función opcionales se indican con < >.
Encoding a macro value into Base64 encoding. Base64 encoding is a method for representing binary data as text, useful for storing and secure transmission of binary content over text-based protocols.
Example:
Formato numérico para controlar el número de dígitos impresos después del punto decimal.
Parámetros:
Ejemplos:
Función macro | Valor recibido | Salida |
---|---|---|
{{ITEM.VALUE}.fmtnum(2)} |
24.3413523 |
24.34 |
{{ITEM.VALUE}.fmtnum(0)} |
24.3413523 |
24 |
Formato de hora.
Tenga en cuenta que esta función se puede utilizar con macros que se resuelven en un valor en uno de los siguientes formatos de hora:
hh:mm:ss
aaaa-mm-ddThh:mm:ss[tz]
(estándar ISO8601)Parámetros:
strftime
;-<N><time_unit>
o +<N><time_unit>
, donde:N
- el número de unidades de tiempo para sumar o restar;time_unit
- h (hora), d (día), w (semana), M (mes) o y (año).Comentarios:
time_shift
admite operaciones de tiempo de varios pasos y puede incluir /<time_unit>
para desplazarse al principio de la unidad de tiempo. (/d
- medianoche, /w
- 1er día de la semana (lunes), /M
- 1er día del mes, etc.). Ejemplos: -1w
- hace exactamente 7 días; -1w/w
- lunes de la semana anterior; -1w/w+1d
- Martes de la semana anterior.-1M/d+1h/w
se analizará como ((-1M/d)+1h)/w
.Ejemplos:
Función macro | Valor recibido | Salida |
---|---|---|
{{TIME}.fmttime(%B)} |
12:36:01 |
Octubre |
{{TIME}.fmttime(%d %B,-1M/M)} |
12:36:01 |
1 de septiembre |
Decoding a macro value from HTML encoding.
The following characters are supported:
Value | Decoded value |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
' |
' |
Example:
Encoding a macro value into HTML encoding.
The following characters are supported:
Value | Encoded value |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Example:
Extracción de subcadenas mediante una coincidencia de expresión regular (no distingue entre mayúsculas y minúsculas).
Parámetros:
Comentarios:
Transformation of all macro value characters into lowercase. Works with single-byte character sets (such as ASCII) and does not support UTF-8.
Example:
{{ITEM.VALUE}.lowercase()} - transform a value like "Zabbix SERVER" into "zabbix server" (lowercase)
Replacement of character/substring in macro value. Note that this function is only supported with the libpcre2 library. If Zabbix server/proxy was compiled with libpcre
, this function will return UNKNOWN.
Parameters:
Comments:
Examples:
{{ITEM.VALUE}.regrepl("oldParam", "newParam")} - replace "oldParam" with "newParam"
{{ITEM.VALUE}.regrepl("([^a-z])","\\\1")} - escape all non-letter characters with a backslash
{{ITEM.VALUE}.regrepl("_v1\.0", "_v2.0", "\(final\)", "")} - replace multiple parts in item value
Extracción de subcadenas mediante una coincidencia de expresión regular (distingue entre mayúsculas y minúsculas).
Parámetros:
Comentarios:
Ejemplos:
Función macro | Valor recibido | Salida |
---|---|---|
{{ITEM.VALUE}.regsub(^[0-9]+, Problema)} |
123Línea de registro |
Problema |
{{ITEM.VALUE}.regsub("^([0-9]+)", "Problema")} |
123 Línea de registro |
Problema |
{{ITEM.VALUE}.regsub("^([0-9]+)", ID del problema: \1)} |
123 Línea de registro |
ID del problema: 123 |
{{ITEM.VALUE}.regsub(".*", "ID del problema: \1")} |
Línea de registro |
''ID del problema: '' |
{{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " ID del problema: \1_\2 ")} |
MySQL falló errno 123 |
'' ID del problema: MySQL_123 '' |
{{ITEM.VALUE}.regsub("([1-9]+", "ID del problema: \1")} |
123 Línea de registro |
*UNKNOWN* (expresión regular no válida) |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \1)} |
nombre_cliente_1 |
nombre_cliente |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \2)} |
nombre_cliente_1 |
1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} |
nombre de cliente_1 |
{{#IFALIAS}.regsub("(.*)_ ([0-9]+", \1)} (expresión regular no válida) |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}"} |
nombre_cliente_1 |
{$MACRO: "nombre de cliente"} |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \2)}"} |
nombre_cliente_1 |
{$MACRO: "1"} |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+\", \1)}"} |
nombre_cliente_1 |
{$MACRO:" {{#M}.regsub(\"(.*)_([0-9]+\", \1)}"} (expresión regular no válida) |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \1)}\"}" |
nombre_cliente_1 |
"{$MACRO:\"nombre de cliente\"}" |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \2)}\"}" |
nombre_cliente_1 |
"{$MACRO:\"1\"}") |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" |
nombre_cliente_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}") (expresión regular no válida) |
Transliteration of macro value characters.
Examples:
{{ITEM.VALUE}.tr(abc, xyz)} - replace all occurrences of "a" with "x", "b" with "y", "c" with "z"
{{ITEM.VALUE}.tr(abc, xyzq)} - replace all occurrences of "a" with "x", "b" with "y", "c" with "z" ("q" is ignored)
{{ITEM.VALUE}.tr(abcde, xyz)} - replace all occurrences of "a" with "x", "b" with "y", "c" with "z", "d" with "z", "e" with "z" (i.e. xyzzz)
{{ITEM.VALUE}.tr("\\\'", "\/\"")} - replace all occurrences of backslash with forward slash, ' with "
{{ITEM.VALUE}.tr(A-Z,a-z)} - convert all letters to lowercase
{{ITEM.VALUE}.tr(0-9a-z,*)} - replace all numbers and lowercase letters with "*"
{{ITEM.VALUE}.tr(0-9,ab)} - replace all occurrences of 0 with "a", and replace all occurrences of 1, 2, 3, 4, 5, 6, 7, 8, and 9 with "b"
{{ITEM.VALUE}.tr(0-9abcA-L,*)} - replace all numbers, "abc" characters, and A-L range with "*"
{{ITEM.VALUE}.tr("\n","*")} - replace end-of-line occurrences with *
{{ITEM.VALUE}.tr("e", "\n")} - replace all "e" to end-of-line
To include literal characters:
backslash - must be escaped as \\
single quote - must be escaped as \'
double quote - must be escaped as \"
Supported escape sequences with backslash:
\\\\ => \\ - double backslash to single backslash
\\a => \a - alert
\\b => \b - backspace
\\f => \f - form feed
\\n => \n - newline
\\r => \r - return
\\t => \t - horizontal tab
\\v => \v - vertical tab
Transformation of all macro value characters into uppercase. Works with single-byte character sets (such as ASCII) and does not support UTF-8.
Example:
{{ITEM.VALUE}.uppercase()} - transform a value like "Zabbix Server" into "ZABBIX SERVER" (uppercase)
Decoding a macro value from URL encoding.
Example:
Encoding a macro value into URL encoding.
Example: