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

Hay un editor avanzado para crear y probar archivos expresiones regulares complejas en la interfaz de Zabbix.

Una vez que se ha creado una expresión regular de esta manera, se puede utilizar en varios lugares en la interfaz haciendo referencia a su nombre, con el prefijo @, por ejemplo, @mycustomregexp.

Para crear una expresión regular global:

  • Ir a: Administración → General
  • Seleccione Expresiones regulares en el menú desplegable
  • Haga clic en Nueva expresión regular

La pestaña Expresiones permite establecer el nombre de la expresión regular y agregar subexpresiones.

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

Parámetro Descripción
Name Establezca el nombre de la expresión regular. Se permiten todos los caracteres Unicode.
Expressions Haga clic en Agregar en el bloque Expresiones para agregar una nueva subexpresión.
Expression type 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 diagonal (/).
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
Expression Ingrese subcadena/expresión regular.
Delimiter Una coma (,), un punto (.) o una barra diagonal (/) para separar cadenas de texto en una expresión regular. Este parámetro está activo sólo cuando se selecciona el tipo de expresión "Cualquier cadena de caracteres incluida".
Case sensitive Una casilla de verificación para especificar si una expresión regular es sensible al uso de letras mayúsculas.

Una barra diagonal (/) en la expresión se trata literalmente, en lugar de un delimitador. De esta manera es posible guardar expresiones que contengan una barra diagonal, sin errores.

Un nombre de expresión regular personalizado 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 métrica) la referencia completa se puede poner entre comillas como esto: "@Mi expresión regular personalizada para propósito1, propósito2".
Los nombres de expresiones regulares no se deben citar en otras ubicaciones (por ejemplo por ejemplo, en las propiedades de la regla LLD).

En la pestaña Prueba la expresión regular y sus subexpresiones pueden ser probadas 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 Resultado combinado. Significa que si al menos un resultado es Falso Resultado combinado también tiene 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$

regexp_expr_2.png

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

regexp_expr_3a.png

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)(?sx).*# we add s modifier to allow . match newline characters

regexp_expr_4_new.png

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
Elementos del agente
eventlog[] regexp, severity, source, eventid parámetros
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[] regex_incl, regex_excl, regex_excl_dir parámetros
vfs.dir.get[] regex_incl, regex_excl, regex_excl_dir parámetros
vfs.dir.size[] regex_incl, regex_excl, regex_excl_dir parámetros
vfs.file.regexp[] parámetro regexp
vfs.file.regmatch[]
web.page.regexp[]
SNMP traps
snmptrap[] No parámetro regexp
Preprocesamiento del valor del elemento No No parámetro pattern
Funciones para iniciadores/elementos calculados
count() parámetro patrón si el parámetro operador es regexp o iregexp
countunique()
find()
logeventid() No parámetro patrón
logsource()
Descubrimiento de bajo nivel
Filters No Campo de expresión regular
Overrides No En coincide, no coincide opciones para las condiciones de Operación
Condiciones de acción No No En coincide, no coincide opciones para Nombre de host y Metadatos de host condiciones de autorregistro
Monitoreo web No Variables con un prefijo regex:
Campo de cadena requerida
Contexto de macro de usuario No No En contexto de macro con un prefijo regex:
Funciones de macro
regsub() No No parámetro patrón
iregsub()
Asignación de iconos No Campo de expresión
Asignación de valores No No Campo Valor si el tipo de asignación es regexp