12 Expresiones regulares
Descripción general
Las expresiones regulares compatibles con Perl (PCRE, PCRE2) son compatibles con Zabbix.
Hay dos formas de utilizar expresiones regulares en Zabbix:
- ingresar manualmente una expresión regular
- usando una expresión regular global creada en Zabbix
Expresiones regulares
Puede ingresar manualmente una expresión regular en lugares admitidos. Tenga en cuenta que la expresión no puede comenzar con @ porque ese símbolo se usa en Zabbix para hacer referencia a expresiones regulares globales.
Es posible quedarse sin stack cuando se usa expresiones regulares. Ver la página man pcrestack para más información.
Tenga en cuenta que en la coincidencia multilínea, los anclajes ^ y $ coinciden en el
principio/final de cada línea respectivamente, en lugar del principio/final de
toda la cadena.
Consulte también ejemplos de escape correcto en varios contextos.
Expresiones regulares globales
Existe un editor avanzado para crear y probar expresiones regulares complejas en el frontend de Zabbix.
Una vez que se ha creado una expresión regular de esta manera, puede utilizarse en varios lugares del frontend haciendo referencia a su nombre, precedido por @, por ejemplo, \@miexpregpersonalizada.
Para crear una expresión regular global:
- Ir a: Administración → General
- Seleccionar Expresiones regulares en el desplegable
- Hacer clic en Nueva expresión regular
La pestaña Expresiones permite establecer el nombre de la expresión regular y añadir subexpresiones.

Todos los campos obligatorios están marcados con un asterisco rojo.
| Parámetro | Descripción | |
|---|---|---|
| Nombre | Establece el nombre de la expresión regular. Se permiten caracteres Unicode. | |
| Expresiones | Haga clic en Añadir en el bloque Expresiones para añadir una nueva subexpresión. | |
| Tipo de expresión | Seleccione el tipo de expresión: Cadena de caracteres incluida - coincide con la subcadena Cualquier cadena de caracteres incluida - coincide con cualquier subcadena de una lista delimitada. La lista delimitada incluye una coma (,), un punto (.) o una barra (/). Cadena de caracteres no incluida - coincide con cualquier cadena excepto la subcadena El resultado es VERDADERO - coincide con la expresión regular El resultado es FALSO - no coincide con la expresión regular |
|
| Expresión | Introduzca la subcadena/expresión regular. | |
| Delimitador | Una coma (,), un punto (.) o una barra (/) para separar cadenas de texto en una expresión regular. Este parámetro sólo está activo cuando se selecciona el tipo de expresión "Cualquier cadena de caracteres incluida". | |
| Distingue mayúsculas/minúsculas | Una casilla para especificar si una expresión regular distingue entre mayúsculas y minúsculas. | |
Una barra (/) en la expresión se trata literalmente, en lugar de como un delimitador. De este modo es posible guardar expresiones que contengan una barra, sin errores.
Un nombre de expresión regular personalizada en Zabbix puede
contener comas, espacios, etc. En aquellos casos en los que esto pueda dar lugar a
una mala interpretación al hacer referencia (por ejemplo, una coma en el
parámetro de una clave de item) toda la referencia puede ponerse entre comillas como
esto: "\@Mi expresión regular personalizada para propósito1, propósito2".
Los nombres de las expresiones regulares no deben ir entre comillas en otras ubicaciones (por
ejemplo, en las propiedades de la regla LLD).
En la pestaña Prueba se puede probar la expresión regular y sus subexpresiones proporcionando una cadena de prueba.

Los resultados muestran el estado de cada subexpresión y el estado total de la expresión personalizada.
El estado total de la expresión personalizada se define como Resultado combinado. Si se definen varias subexpresiones, Zabbix utiliza el operador lógico AND para calcular el Resultado combinado. Esto significa que si al menos un Resultado es Falso, el Resultado combinado también tiene el estado Falso.
Expresiones regulares globales predeterminadas
Zabbix viene con varias expresiones regulares globales en su conjunto de datos por defecto.
| Nombre | Expresión | Coincidencias |
|---|---|---|
| Sistemas de archivos para descubrimiento | ^(btrfs|ext2|ext3|ext4|jfs|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|refs|apfs|ntfs|fat32|zfs)$ |
"btrfs" o "ext2" o "ext3" o "ext4" o "jfs" o "reiser" o "xfs" o "ffs" o "ufs" o "jfs" o "jfs2" o "vxfs" o "hfs " o "refs" o "apfs" o "ntfs" o "fat32" o "zfs" |
| Interfaces de red para descubrimiento | ^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", luego tienen "L" o "l", luego "oop", luego "B" o "b", luego "ack", que puede ir seguido opcionalmente de cualquier número de dígitos, puntos o guiones bajos. | |
^NULL[0-9.]*$ |
Cadenas que comienzan con "NULL" seguidas opcionalmente por cualquier número de dígitos o puntos. | |
^[Ll]o[0-9.]*$ |
Cadenas que comienzan con "Lo" o "lo" y, opcionalmente, seguidas de cualquier número de dígitos o puntos. | |
^[Ss]sistema$ |
"Sistema" o "sistema" | |
^Nu[0-9.]*$ |
Cadenas que comienzan con "Nu" seguidas opcionalmente por cualquier número de dígitos o puntos. | |
| Dispositivos de almacenamiento para descubrimiento SNMP | ^(Memoria física|Memoria virtual|Búfers de memoria|Memoria en caché|Espacio de intercambio)$ |
"Memoria física" o "Memoria virtual" o "Búfers de memoria" o "Memoria en caché" o "Intercambiar espacio" |
| Nombres de servicios de Windows para descubrimiento | ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ |
"MMCSS" o "gupdate" o "SysmonLog" o cadenas como "clr_optimization\ _v2.0.50727_32" y "clr_optimization_v4.0.30319_32" donde en lugar de puntos puedes poner cualquier carácter excepto nueva línea. |
| Estados de inicio del servicio de Windows para descubrimiento | ^(automático|automático retrasado)$ |
"automático" o "automático retrasado" |
Ejemplos
Ejemplo 1
Uso de la siguiente expresión en descubrimiento de bajo nivel para descubrir bases de datos excepto una base de datos con un nombre específico:
^TESTDATABASE$

Tipo de expresión elegido: "El resultado es FALSO". No coincide con el nombre,que contiene la cadena "TESTDATABASE".
Ejemplo con un modificador de expresiones regulares en línea
Uso de la siguiente expresión regular que incluye un modificador en línea (?i) para que coincida con los caracteres "error":
(?i)error

Tipo de expresión elegido: "El resultado es VERDADERO". Los caracteres "error" son emparejado.
Otro ejemplo con un modificador de expresiones regulares en línea
Uso de la siguiente expresión regular que incluye múltiples en línea modificadores para hacer coincidir los caracteres después de una línea específica:
(?<=match (?i)everything(?-i) after this line\n)(?sx).*# we add s modifier to allow . match newline characters

Tipo de expresión elegido: "El resultado es VERDADERO". Personajes después de un específico. línea coinciden.
El modificador g no se puede especificar en la línea. La lista de modificadores disponibles se puede encontrar en la página de manual de pcresyntax . Para obtener más información sobre la sintaxis PCRE, consulte PCRE HTML documentación.
Soporte de expresiones regulares por ubicación
| Ubicación | Expresión regular | Expresión regular global | Coincidencia multilínea | Comentarios | |
|---|---|---|---|---|---|
| Métricas del agente | |||||
| eventlog[] | Sí | Sí | Sí | 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 admite solo expresiones no globales |
|||
| logrt.count[] | |||||
| proc.cpu.util[] | No | No | cmdline parámetro |
||
| proc.get[] | |||||
| proc.mem[] | |||||
| proc.num[] | |||||
| sensor[] | Parámetros device y sensor en Linux 2.4 |
||||
| system.hw.macaddr[] | parámetro interfaz |
||||
| 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[] | Sí | parámetro regexp |
|||
| vfs.file.regmatch[] | |||||
| web.page.regexp[] | |||||
| Capturas SNMP | |||||
| snmptrap[] | Sí | Sí | No | parámetro regexp |
|
| Preprocesamiento del valor de la métrica | Sí | No | No | parámetro pattern |
|
| Funciones para iniciadores/métricas calculadas | |||||
| count() | Sí | Sí | Sí | parámetro pattern si el parámetro operator es regexp o iregexp |
|
| countunique() | Sí | Sí | |||
| find() | Sí | Sí | |||
| logeventid() | Sí | Sí | No | parámetro patrón |
|
| logsource() | |||||
| Descubrimiento de bajo nivel | |||||
| Filters | Sí | Sí | No | Campo de expresión regular | |
| Overrides | Sí | No | En coincide, no coincide opciones para las condiciones de Operation | ||
| Condiciones de acción | Sí | No | No | En coincide, no coincide opciones para las condiciones de autorregistro de Nombre de equipo y Metadatos de equipo | |
| Scripts | Sí | Yes | No | Campo Regla de validación de entrada | |
| Monitoreo web | Sí | No | Sí | Variables con un prefijo regex: Campo de cadena requerida |
|
| Contexto de macro de usuario | Sí | No | No | En contexto de macro con un prefijo regex: | |
| Funciones de macro | |||||
| regsub() | Sí | No | No | parámetro patrón |
|
| iregsub() | |||||
| Asignación de iconos | Sí | Sí | No | Campo de expresión | |
| Asignación de valores | Sí | No | No | Campo Valor si el tipo de asignación es regexp |
|