Expresiones regulares compatibles con Perl (PCRE, PCRE2) son compatibles en Zabbix.
Hay dos formas de usar expresiones regulares en Zabbix:
Puede introducir manualmente una expresión regular en los lugares compatibles. Tenga en cuenta que la expresión no puede comenzar con @ porque ese símbolo se utiliza en Zabbix para hacer referencia a expresiones regulares globales.
Es posible quedarse sin pila al utilizar expresiones regulares. Consulte la página del manual de pcrestack para obtener más información.
Tenga en cuenta que en la coincidencia multilínea, los anclajes ^
y $
coinciden al 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.
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:
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 inclinada (/). 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 inclinada (/) para separar cadenas de texto en una expresión regular. Este parámetro solo 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 inclinada (/) 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 llevar a una mala interpretación al hacer referencia (por ejemplo, una coma en el parámetro de una clave de métrica) toda la referencia puede ir entre comillas como esto: "@Mi expresión personalizada para propósito1, propósito2".
Los nombres de expresiones regulares no deben ir entre comillas en otras ubicaciones (por ejemplo, en las propiedades de reglas LLD).
En la pestaña Probar 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 tendrá el estado Falso.
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 pueden ir seguidas opcionalmente de cualquier cantidad de dígitos, puntos o guiones bajos. | |
^NULL[0-9.]*$ |
Cadenas que comienzan con "NULL" seguidas opcionalmente de cualquier cantidad de dígitos o puntos. | |
^[Ll]o[0-9.]*$ |
Cadenas que comienzan con "Lo" o "lo" y opcionalmente seguidas de cualquier cantidad de dígitos o puntos. | |
^[Ss]ystem$ |
"System" o "system" | |
^Nu[0-9.]*$ |
Cadenas que comienzan con "Nu" seguidas opcionalmente de cualquier cantidad de dígitos o puntos. | |
Dispositivos de almacenamiento para descubrimiento SNMP | ^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$ |
"Physical memory" o "Virtual memory" o "Memory buffers" o "Cached memory" o "Swap space" |
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 se puede poner cualquier carácter excepto salto de línea. |
Estados de inicio de servicios de Windows para descubrimiento | ^(automatic|automatic delayed)$ |
"automatic" o "automatic delayed" |
Uso de 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:
Tipo de expresión elegido: "El resultado es FALSO". No coincide con el nombre, que contiene la cadena "TESTDATABASE".
Uso de la siguiente expresión regular que incluye un modificador en línea (?i) para hacer coincidir los caracteres "error":
Tipo de expresión elegido: "El resultado es VERDADERO". Los caracteres "error" coinciden.
Uso de la siguiente expresión regular que incluye múltiples modificadores en línea para hacer coincidir los caracteres después de una línea específica:
(?<=match (?i)everything(?-i) after this line\n)(?sx).*# añadimos el modificador s para permitir que . coincida con caracteres de nueva línea
Tipo de expresión elegido: "El resultado es VERDADERO". Se hace coincidir los caracteres después de una línea específica.
El modificador g no puede especificarse en línea. La lista de modificadores disponibles se puede encontrar en la página man de pcresyntax. Para obtener más información sobre la sintaxis de PCRE, consulte la documentación HTML de PCRE.
Ubicación | Expresión regular | Expresión regular global | Coincidencia multilínea | Comentarios | |
---|---|---|---|---|---|
Métricas de 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 ambas, 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[] | Sí | Parámetro regexp |
|||
vfs.file.regmatch[] | |||||
web.page.regexp[] | |||||
Trampas SNMP | |||||
snmptrap[] | Sí | Sí | No | Parámetro regexp |
|
Preprocesamiento de valores de métricas | Sí | No | No | Parámetro pattern |
|
Funciones para disparadores/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 pattern |
|
logsource() | |||||
Descubrimiento de bajo nivel | |||||
Filtros | Sí | Sí | No | Campo Expresión regular | |
Anulaciones | Sí | No | En las opciones coincide, no coincide para condiciones de Operación | ||
Condiciones de acción | Sí | No | No | En las opciones coincide, no coincide para condiciones de autoregistro Nombre de equipo y Metadatos de equipo | |
Scripts | Sí | Sí | No | Campo Regla de validación de entrada | |
Supervisión web | Sí | No | Sí | Variables con el prefijo regex: Campo Cadena requerida |
|
Contexto de macro de usuario | Sí | No | No | En el contexto de macro con el prefijo regex: | |
Funciones de macro | |||||
regsub() | Sí | No | No | Parámetro pattern |
|
iregsub() | |||||
Indicadores de enlace en mapas | Sí | No | No | Campo Patrón (para métricas de texto) | |
Asignación de iconos | Sí | Sí | No | Campo Expresión | |
Asignación de valores | Sí | No | No | Campo Valor si el tipo de asignación es regexp |