12. Expressions regulars

Vista general

Les Expressions regulars compatibles amb Perl (PCRE, PCRE2) són compatibles amb Zabbix.

Hi ha dues maneres d'emprar expressions regulars a Zabbix:

  • Introduïnt manualment d'una expressió regular
  • emprant una expressió regular global creada a Zabbix

Expressions regulars

Podeu introduir manualment una expressió regular a les ubicacions admeses. Tingueu en compte que l'expressió no pot començar amb @ perquè aquest símbol s'empra a Zabbix per fer referència a expressions regulars globals.

És possible sortir de la pila quan s'empren expressions regulars. Consulteu la pàgina man de pcrestack per obtindre més informació.

Tingueu en compte que a la concordança multilínia, les àncores ^ i $ coincideixen amb l'inici/final de cada línia, respectivament, en lloc de l'inici/final de tota la cadena.

Veieu exemples d'escapada correcta a diferents contexts.

Expressions regulars globals

Hi ha un editor avançat per crear i provar expressions regulars complexes a la interfície Zabbix.

Un cop s'ha creat una expressió regular d'aquesta manera, es pot emprar a diversos llocs de la interfície fent referència al seu nom amb el prefix @, per exemple, \@mycustomregexp.

Per crear una expressió regular global:

  • Aneu a: Administració → General
  • Seleccioneu Expressions regulars al menú desplegable
  • Feu clic a Nova expressió regular

La pestanya Expressions us permet definir el nom de l'expressió regular i afegir subexpressions.

Tots els camps d'entrada obligatoris són marcats amb un asterisc vermell.

Paràmetre Descripció
Nom Definiu el nom de l'expressió regular. Es permeten tots els caràcters Unicode.
Expressions Feu clic a Afegir al bloc Expressions per afegir una subexpressió nova.
Tipus d'expressió Trieu el tipus d'expressió:
Cadena inclosa - coincideix amb la subcadena
Qualsevol cadena inclosa - coincideix amb totes les subcadenes d'una llista delimitada. La llista delimitada inclou una coma (,), un punt (.) o una barra inclinada (/).
La cadena no s'inclou - coincideix amb qualsevol cadena excepte la subcadena
El resultat és CERT - coincideix amb l'expressió regular
El resultat és FALS - no coincideix amb l'expressió regular
Expressió Introduïu una subcadena/expressió regular.
Delimitador Una coma (,), punt (.) o barra inclinada (/) per separar cadenes de text en una expressió regular. Aquest paràmetre només és actiu quan es tria el tipus d'expressió "Qualsevol cadena de caràcters inclosa".
Distingeix entre majúscules i minúscules Una casella de selecció per especificar si una expressió regular distingeix entre majúscules i minúscules.

Una barra inclinada (/) a l'expressió es tracta literalment, en lloc d'un delimitador. D'aquesta manera és possible desar expressions que contenen una barra, sense errors.

Un nom d'expressió regular personalitzada a Zabbix pot contindre comes, espais, etc. En casos en què això pot provocar una interpretació errònia quan es fa referència (per exemple, una coma al paràmetre d'una clau d'element), la referència sencera es pot citar així: "\@My regexp personalizada per a propòsit1, propòsit2".
Els noms de les expressions regulars no s'han de citar en altres llocs (per exemple, a les propietats de les regles LLD).

A la pestanya Provar, l'expressió regular i les seves subexpressions es poden provar proporcionant una cadena de prova.

Els resultats mostren l'estat de cada subexpressió i l'estat total de l'expressió personalitzada.

L'estat total de l'expressió personalitzada s'estableix a Resultat combinat. Si es defineixen diverses subexpressions, Zabbix empra l'operador I lògic per calcular el resultat combinat. Això vol dir que si almenys un resultat és Fals, el Resultat combinat també té l'estat Fals.

Expressions regulars globals per defecte

Zabbix conté per defecte diverses expressions regulars globals.

Nom Expressió Correspondències
Sistemes de fitxers per a la descoberta ^(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"
Interfícies de xarxa per a la descoberta ^Software Loopback Interface Cadenes que comencen per "Software Loopback Interface".
^lo$ "lo"
^(In)?[Ll]oop[Bb]ack[0-9._]*$ Cadenes que comencen opcionalment amb "In", després tenen "L" o "l", després "oop", després "B" o "b", després "ack", que pot anar seguit opcionalment de qualsevol nombre de dígits, punts o guions baixos.
^NULL[0-9.]*$ Cadenes que comencen per "NULL" seguides opcionalment per qualsevol nombre de dígits o punts.
^[Ll]o[0-9.]*$ Cadenes que comencen per "Lo" o "lo" i opcionalment seguides per qualsevol nombre de dígits o punts.
^[Ss]ystem$ "Sistema" o "sistema"
^Nu[0-9.]*$ Cadenes que comencen per "Nu" seguides opcionalment per qualsevol nombre de dígits o punts.
Dispositius d'emmagatzematge per a la descoberta d'SNMP ^(Memòria física\|Memòria virtual\|Buffers de memòria\|Memòria en memòria cau\|Espai d'intercanvi)$ "Memòria física" o "Memòria virtual" o "Memòria intermèdia" o " Memòria a la memòria cau" o "Espai d'intercanvi"
Noms de serveis de Windows per a la descoberta ^(MMCSS\|gupdate\|SysmonLog\|clr_optimization_v2.0.50727_32\|clr_optimization_v4.0.30319_32)$ "MMCSS" o "gupdate" o "SysmonLog like" o "SysmonLog" clr_optimization_v2.0.50727_32" i "clr_optimization_v4.0.30319_32" on en lloc de punts podeu posar qualsevol caràcter excepte la nova línia.
Estats d'inici del servei de Windows per a la descoberta ^(automàtic\|automàtic endarrerit)$ "automàtic" o "automàtic endarrerit"

Exemples

Exemple 1

Ús de l'expressió següent a la descoberta de baix nivell per trobarbases de dades, excepte una base de dades amb un nom específic:

  ^ BASE DE DADES DE TEST$

regexp\_expr\_2.png

Tipus d'expressió triada: "El resultat és FALS". No coincideix amb el nom, que conté la cadena "TESTDATABASE".

Exemple amb un modificador de regex en línia

Ús de l'expressió regular següent, inclòs un modificador en línia (?i) per fer coincidir els caràcters d'"error":

  (?i)error

regexp\_expr\_3a.png

Tipus d'expressió triat: "El resultat és CERT". Els caràcters d'"error" coincideixen.

Un altre exemple amb un modificador d'expressió regular en línia

Ús de l'expressió regular següent, inclosos diversos modificadors en línia per fer coincidir caràcters després d'una línia específica:

  (?<=match (?i)tot(?-i) després d'aquesta línia\n)(?sx).*# afegim el modificador s per permetre . per fer coincidir els caràcters de nova línia

regexp\_expr\_4\_new.png

Tipus d'expressió triada: "El resultat és CERT". Els caràcters després d'una línia específica coincideixen.

El modificador g no es pot especificar en línia. La llista de modificadors disponibles es pot trobar a pcresyntax man page. Per obtindre més informació sobre la sintaxi de PCRE, consulteu la documentació HTML PCRE.

Suport de les expressions regulars per ubicació

Ubicació Expressió regular Expressió regular global Concordança multilínia Comentaris
Elements de l'agent
eventlog[] Paràmetres regexp, severity, source, eventid
eventlog.count[] regexp, severity, source, eventid parameters
log[] paràmetre regexp
log.count[]
logrt[] Sí/No El paràmetre regexp admet totes dues, el paràmetre file_regexp només admet expressions no globals
logrt.count[]
proc.cpu.util[] No No paràmetre cmdline
proc.get[]
proc.mem[]
proc.num[]
sensor[] paràmetres dispositiu i sensor a Linux 2.4
system.hw.macaddr[] paràmetre interface
system.sw.packages[] paràmetre package
system.sw.packages.get[] paràmetre regexp
vfs.dir.count[] Paràmetres regex_incl, regex_excl, regex_excl_dir
vfs.dir.get[] Paràmetres regex_incl, regex_excl, regex_excl_dir
vfs.dir.size[] Paràmetres regex_incl, regex_excl, regex_excl_dir
vfs.file.regexp[] paràmetre regexp
vfs.file.regmatch[]
web.page.regexp[]
Traps SNMP
snmptrap[] No paràmetre regexp
Preprocessament del valor de l'element No No paràmetre pattern
Funcions per a triggers/elements calculats
count() Yes Yes Yes paràmetre pattern si el paràmetre operator és regexp o iregexp
countunique()
find()
logeventid() No paràmetre patró
logsource()
Descoberta de baix nivell
Filters No Camp Expressió regular
Overrides No A les opcions coincideix, no coincideix per a les condicions de operació
Condicions d'acció No No A les opcions coincideix, no coincideix per a Nom d'equip i Metadades de l'equip de condicions d'autoinscripció
Scripts Yes Yes No Input validation rule field
Monitoratge web No Variables amb un prefix regex:
Camp String required
Context de macro d'usuari No No En un context de macro amb un prefix regex:
Funcions de macro
regsub() No No paràmetre pattern
iregsub()
Indicador d'enllaços als mapes No No Camp Patró (per elements de text)
Mapa d'icones No Camp Expressió
Mapa de valors No No Camp Valor si el tipus de mapatge és regexp