Expresiones regulares

Resumen

Perl Compatible Regular Expressions (PCRE, PCRE2) son compatibles en Zabbix.

Hay dos formas de usar expresiones regulares en Zabbix:

  • Introducir manualmente una expresión regular
  • Usar una expresión regular global creada en Zabbix

Expresiones regulares

Puede introducir manualmente una expresión regular en los lugares compatibles.
Tenga en cuenta que la expresión no debe comenzar con @, ya que este símbolo se usa en Zabbix para hacer referencia a expresiones regulares globales.

Es posible quedarse sin memoria de pila al usar expresiones regulares. Consulte PCRE PERFORMANCE para obtener más información.

Tenga en cuenta que, en la coincidencia multilínea, los anclajes ^ y $ coinciden al principio y al final de cada línea, respectivamente, en lugar de al principio y al final de toda la cadena.

Consulte también ejemplos de escape correcto en varios contextos.

Expresiones regulares globales

Zabbix proporciona un editor avanzado en el frontend para crear y probar expresiones regulares complejas.
Para acceder a él, vaya a Administration > General > Regular expressions.
Zabbix incluye un número de expresiones regulares globales predefinidas en su conjunto de datos predeterminado.

Puede filtrar la lista de expresiones regulares por nombre y descripción para encontrar las expresiones que necesita.

Configuración

Para crear una expresión regular global, haga clic en Crear expresión regular e introduzca los parámetros de la expresión regular en el formulario.

Todos los campos obligatorios están marcados con un asterisco rojo.

Parameter Description
Name Defina el nombre de la expresión regular. Se permiten todos los caracteres Unicode.
Expressions Haga clic en Añadir en la sección Expressions para agregar una nueva subexpresión.
Expression type Seleccione el tipo de expresión:
Contains string - coincide con la subcadena.
Contains any substring from list - coincide con cualquier subcadena de una lista delimitada. La lista delimitada incluye una coma ,, un punto . o una barra diagonal /.
Does not contain string - coincide con cualquier cadena excepto la subcadena.
Matches regular expression - coincide con la expresión regular.
Does not match regular expression - no coincide con la expresión regular.
Expression Introduzca la subcadena/expresión regular.
Longitud máxima: 2048 caracteres.
Delimiter Una coma ,, un punto . o una barra diagonal / para separar cadenas de texto en una expresión regular. Este parámetro solo está activo cuando se selecciona el tipo de expresión Contains any substring from list.
Case sensitive Una casilla de verificación para especificar si una expresión regular distingue entre mayúsculas y minúsculas.
Description Introduzca una descripción para la expresión regular.
Test expression Un valor para probar la expresión regular.

Una barra diagonal / en la expresión se trata literalmente y no como un delimitador. Esto permite guardar expresiones que contienen una barra diagonal sin errores.

Un nombre de expresión regular personalizado en Zabbix puede contener comas, espacios, etc. En los casos en que esto pueda llevar a una interpretación incorrecta al hacer referencia a él (por ejemplo, una coma en el parámetro de una clave de item), toda la referencia puede encerrarse entre comillas, así: "\@My custom regexp for purpose1, purpose2".
Los nombres de las expresiones regulares no deben ir entre comillas en otras ubicaciones (por ejemplo, en las propiedades de una regla de LLD).

Una vez creada una expresión regular, puede utilizarse en varios lugares del frontend haciendo referencia a su nombre, precedido por @, por ejemplo, @mycustomregexp.

Botones del formulario

Los botones en la parte inferior del formulario le permiten realizar varias operaciones:

Button Description
Agregar una expresión regular. Este botón solo está disponible para nuevas expresiones regulares.
Actualizar las propiedades de una expresión regular.
Crear otra expresión regular basada en las propiedades de la expresión regular actual.
Probar una expresión regular y sus subexpresiones con un valor proporcionado.
Eliminar la expresión regular.
Cancelar la edición de las propiedades de la expresión regular.

Prueba de una expresión regular

Puede probar la expresión regular y sus subexpresiones introduciendo un valor en el campo Test expression y haciendo clic en el botón Test.

En la columna Test result, se muestra el estado de cada subexpresión. El campo Combined result muestra el estado general de la expresión regular. Si se definen varias subexpresiones, Zabbix usa el operador lógico AND para calcular Combined result; es decir, si al menos un resultado es False, Combined result también es False.

Expresiones regulares globales predeterminadas

El conjunto de datos predeterminado incluye las siguientes expresiones regulares globales predefinidas:

Name Expression Matches
File systems for discovery ^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$ "btrfs" o "ext2" o "ext3" o "ext4" o "reiser" o "xfs" o "ffs" o "ufs" o "jfs" o "jfs2" o "vxfs" o "hfs" o "apfs" o "refs" o "ntfs" o "fat32" o "zfs".
Network interfaces for discovery ^Software Loopback Interface Cadenas que comienzan con "Software Loopback Interface".
^lo$ "lo".
^(In)?[Ll]oop[Bb]ack[0-9._]*$ Cadenas que opcionalmente comienzan con "In", seguidas de "L" o "l", seguidas de "oop", seguidas de "B" o "b", seguidas de "ack", y opcionalmente seguidas por cualquier número de dígitos, puntos o guiones bajos.
^NULL[0-9.]*$ Cadenas que comienzan con "NULL" y opcionalmente van seguidas de cualquier número de dígitos o puntos.
^[Ll]o[0-9.]*$ Cadenas que comienzan con "Lo" o "lo" y opcionalmente van seguidas de cualquier número de dígitos o puntos.
^[Ss]ystem$ "System" o "system".
^Nu[0-9.]*$ Cadenas que comienzan con "Nu" y opcionalmente van seguidas de cualquier número de dígitos o puntos.
Storage devices for SNMP discovery ^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$ "Physical memory" o "Virtual memory" o "Memory buffers" o "Cached memory" o "Swap space".
Windows service names for discovery ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ "MMCSS" o "gupdate" o "SysmonLog" o cadenas que coinciden con "clr_optimization_v2.0.50727_32" o "clr_optimization_v4.0.30319_32", donde cada punto puede ser reemplazado por cualquier carácter excepto un salto de línea.
Windows service startup states for discovery ^(automatic|automatic delayed)$ "automatic" o "automatic delayed".

Importación/exportación de una expresión regular

Puede importar o exportar expresiones regulares globales como se describe en la página de configuración de exportación/importación de Regular expressions.

Ejemplos

Ejemplo de exclusión de una cadena exacta

Use la siguiente expresión en el descubrimiento de bajo nivel para descubrir bases de datos, excepto una base de datos con un nombre específico:

^TESTDATABASE$

Tanto Test result como Combined result muestran FALSE: el nombre coincide con "TESTDATABASE", por lo que la condición Does not match regular expression no se cumple.

Ejemplo con un modificador de expresión regular en línea para una coincidencia que no distingue mayúsculas y minúsculas

Use la siguiente expresión regular, que incluye el modificador en línea (?i) para realizar una coincidencia de los caracteres "error" sin distinguir mayúsculas y minúsculas:

(?i)error

Tanto Test result como Combined result muestran TRUE: los caracteres "error" coinciden incluso con Case sensitive seleccionado, porque el modificador en línea (?i) hace que la coincidencia no distinga mayúsculas y minúsculas.

Ejemplo con múltiples modificadores inline de expresiones regulares

Use la siguiente expresión regular, que incluye varios modificadores inline, para coincidir con los caracteres después de una línea específica:

(?<=match (?i)eveRything(?-i) after this line\r\n)(?sx).*# comment

donde:

  • (?i) - activa la coincidencia sin distinción entre mayúsculas y minúsculas;
  • (?-i) - desactiva la coincidencia sin distinción entre mayúsculas y minúsculas;
  • (?s) - habilita el modo dotall, permitiendo que . coincida con caracteres de nueva línea;
  • (?x) - habilita el modo extendido, permitiendo que los espacios en blanco y los comentarios en la expresión regular se ignoren.

Tanto Test result como Combined result muestran TRUE: los caracteres que siguen a la línea específica coinciden.

El modificador g no se puede especificar inline. La lista de modificadores disponibles se puede encontrar en la página del manual pcresyntax. Para obtener más información sobre la sintaxis de PCRE, consulte la documentación HTML de PCRE.

Compatibilidad de expresiones regulares por ubicación

Ubicación Expresión regular Expresión regular global Coincidencia multilínea Comentarios
Items de agent
eventlog[] Parámetros regexp, severity, source, eventid
eventlog.count[] Parámetros regexp, severity, source, eventid
log[] Parámetro regexp
log.count[]
logrt[] Sí/No El parámetro regexp admite ambos; el parámetro file_regexp solo admite expresiones no globales
logrt.count[]
proc.cpu.util[] No No Parámetro cmdline
proc.get[]
proc.mem[]
proc.num[]
sensor[] Parámetros device y sensor en Linux 2.4
system.hw.macaddr[] Parámetro interface
system.sw.packages[] Parámetro regexp
system.sw.packages.get[] Parámetro regexp
vfs.dir.count[] Parámetros regex_incl, regex_excl, regex_excl_dir
vfs.dir.get[] Parámetros regex_incl, regex_excl, regex_excl_dir
vfs.dir.size[] Parámetros regex_incl, regex_excl, regex_excl_dir
vfs.file.regexp[] Parámetro regexp
vfs.file.regmatch[]
web.page.regexp[]
Traps SNMP
snmptrap[] No Parámetro regexp
Preprocesamiento del valor del item No No Parámetro pattern
Funciones para triggers/items calculados
count() Parámetro pattern si el parámetro operator es regexp o iregexp
countunique()
find()
logeventid() No Parámetro pattern
logsource()
Descubrimiento de bajo nivel
Filters No Campo Regular expression
Overrides No En las opciones matches, does not match de las condiciones de Operation
Condiciones de acción No No En las opciones matches, does not match de las condiciones de autorregistro de Host name y Host metadata
Scripts No Campo Input validation rule
Monitorización web No Variables con el prefijo regex:
Campo Required string
Contexto de macro de usuario No No En el contexto de macro con el prefijo regex:
Funciones de macro
regsub() No No Parámetro pattern
iregsub()
Indicadores de enlace en mapas No No Campo Pattern (para items de texto)
Asignación de iconos No Campo Expression
Asignación de valores No No Campo Value si el tipo de asignación es regexp
Parámetros de configuración de agent
AllowKeyRegexp No No Patrón
DenyKeyRegexp