12. Espressioni regolari

Panoramica

Espressioni regolari compatibili con Perl (PCRE, PCRE2) sono supportati in Zabbix.

Esistono due modi per utilizzare le espressioni regolari in Zabbix:

  • inserendo manualmente un'espressione regolare
  • utilizzando un'espressione regolare globale creata in Zabbix

Espressioni regolari

Puoi inserire manualmente un'espressione regolare nelle posizioni supportate. Nota che l'espressione potrebbe non iniziare con @ perché quel simbolo è usato in Zabbix per fare riferimento a espressioni regolari globali.

È possibile esaurire lo stack quando si utilizzano le espressioni regolari. Vedi pcrestack man page per ulteriori informazioni informazione.

Si noti che nella corrispondenza multilinea, gli ancoraggi ^ e $ corrispondono rispettivamente inizio/fine di ogni riga, invece dell'inizio/fine di l'intera stringa.

Espressioni regolari globali

C'è un editor avanzato per la creazione e il test delle espressioni regolari complesse nel frontend di Zabbix.

Una volta che un'espressione regolare è stata creata in questo modo, può essere utilizzata in diversi posti nel frontend facendo riferimento al suo nome, preceduto da @, ad esempio, \@mycustomregexp.

Per creare un'espressione regolare globale:

  • Vai a: Amministrazione → Generale
  • Seleziona Espressioni regolari dal menu a discesa
  • Clicca su Nuova espressione regolare

La scheda Espressioni consente di impostare il nome dell'espressione regolare e aggiungere sottoespressioni.

Tutti i campi obbligatori sono contrassegnati da un asterisco rosso.

Parametro Descrizione
Name Imposta il nome dell'espressione regolare. Sono consentiti tutti i caratteri Unicode.
Espressioni Clicca su Aggiungi nel blocco Espressioni per aggiungere una nuova sottoespressione.
Tipo di espressione Seleziona il tipo di espressione:
Stringa di caratteri inclusa - corrisponde alla sottostringa
Qualsiasi stringa di caratteri inclusa - corrisponde a qualsiasi sottostringa da un elenco delimitato. L'elenco delimitato include una virgola (,), un punto (.) o una barra (/).
Stringa di caratteri non inclusa: corrisponde a qualsiasi stringa tranne la sottostringa
Il risultato è VERO - corrisponde all'espressione regolare
Il risultato è FALSO** - non corrisponde all'espressione regolare
Espressione Inserisci sottostringa/espressione regolare.
Delimitatore Una virgola (,), un punto (.) o una barra (/) per separare le stringhe di testo in un'espressione regolare. Questo parametro è attivo solo quando è selezionato il tipo di espressione "Qualsiasi stringa di caratteri inclusa".
Case sensitive Una casella di controllo per specificare se un'espressione regolare è sensibile all'uso delle lettere maiuscole.

Una barra (/) nell'espressione viene trattata letteralmente, piuttosto che un delimitatore. In questo modo è possibile salvare espressioni contenenti a barra, senza errori.

::: nota importante Un nome di espressione regolare personalizzato in Zabbix potrebbe contenere virgole, spazi, ecc. Nei casi in cui ciò può portare a interpretazione errata quando si fa riferimento (ad esempio, una virgola nel file parametro di una chiave di elemento) l'intero riferimento può essere messo tra virgolette come this: "\@My custom regexp for purpose1, purpose2".
I nomi delle espressioni regolari non devono essere racchiusi tra virgolette in altre posizioni (ad es esempio, nelle proprietà della regola LLD). :::

Nella scheda Test l'espressione regolare e le sue sottoespressioni possono essere testato fornendo una stringa di prova.

I risultati mostrano lo stato di ciascuna sottoespressione e il totale personalizzato stato di espressione.

Lo stato dell'espressione personalizzata totale è definito come Risultato combinato. Se diverse sottoespressioni sono definite Zabbix usa l'operatore logico AND to calcolare Risultato combinato. Significa che se almeno un Risultato è Anche False Risultato combinato ha lo stato False.

Espressioni regolari globali predefinite

Zabbix viene fornito con diverse espressioni regolari globali nella sua impostazione predefinita insieme di dati.

Nome Espressione Corrispondenze
File system per la scoperta ^(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"
Interfacce di rete per il rilevamento ^Software Loopback Interface Stringhe che iniziano con "Software Loopback Interface".
^lo$ "lo"
^(In)?[Ll]oop[Bb]ack[0-9._]*$ Stringhe che iniziano facoltativamente con "In", poi hanno "L" o "l", quindi "oop", quindi "B" o "b", quindi "ack", che può essere facoltativamente seguito da qualsiasi numero di cifre, punti o caratteri di sottolineatura.
^NULL[0-9.]*$ Stringhe che iniziano con "NULL" eventualmente seguito da qualsiasi numero di cifre o punti.
^[Ll]o[0-9.]*$ Stringhe che iniziano con "Lo" o "lo" e facoltativamente seguite da qualsiasi numero di cifre o punti.
^[Ss]ystem$ "Sistema" o "sistema"
^Nu[0-9.]*$ Stringhe che iniziano con "Nu" eventualmente seguito da qualsiasi numero di cifre o punti.
Dispositivi di archiviazione per rilevamento SNMP ^(Memoria fisica\|Memoria virtuale\|Buffer di memoria\|Memoria cache\|Spazio di scambio)$ "Memoria fisica" o "Memoria virtuale" o "Buffer di memoria" o " Memoria cache" o "Scambia spazio"
Nomi dei servizi Windows per il rilevamento ^(MMCSS\|gupdate\|SysmonLog\|clr_optimization_v2.0.50727_32\|clr_optimization_v4.0.30319_32)$ "MMCSS" o "gupdate" o "SysmonLog" o stringhe come " clr_optimization_v2.0.50727_32" e "clr_optimization_v4.0.30319_32" dove al posto dei punti puoi inserire qualsiasi carattere tranne la nuova riga.
Stati di avvio del servizio Windows per il rilevamento ^(automatico\|automatico ritardato)$ "automatico" o "automatico ritardato"

Esempi

Esempio 1

Uso della seguente espressione nella scoperta di basso livello da scoprire database tranne un database con un nome specifico:

^DATABASEDIPROVA$

regexp\_expr\_2.png

Tipo di espressione scelto: "Il risultato è FALSO". non corrisponde al nome, contenente la stringa "TESTDATABASE".

Esempio con un modificatore regex inline

Uso della seguente espressione regolare incluso un modificatore inline (?i) per abbinare i caratteri "errore":

(?i)errore

regexp\_expr\_3a.png

Tipo di espressione scelto: "Il risultato è VERO". I caratteri "errore" sono abbinato.

Un altro esempio con un modificatore regex inline

Uso della seguente espressione regolare incluso multiple inline modificatori per abbinare i caratteri dopo una riga specifica:

(?<=match (?i)everything(?-i) after this line\n)(?sx).*# aggiungiamo il modificatore s per consentire . corrispondere ai caratteri di nuova riga

regexp\_expr\_4\_new.png

Tipo di espressione scelto: "Il risultato è VERO". Caratteri dopo uno specifico linea sono abbinati.

::: nota importante Il modificatore g non può essere specificato nella riga. Il l'elenco dei modificatori disponibili può essere trovato in pcresyntax man page. Per ulteriori informazioni sulla sintassi PCRE si prega di fare riferimento a PCRE HTML documentazione.

:::

Supporto per le espressioni regolari in base alla posizione

Posizione Espressione regolare Espressione regolare globale Corrispondenza multilinea Commenti
Elementi agente
registro eventi[] Parametri regexp, severity, source, eventid
log[] parametro regexp
log.count[]
logrt[] Sì/No Il parametro regexp supporta entrambi, il parametro file_regexp supporta solo espressioni non globali
logrt.count[]
proc.cpu.util[] No No parametro cmdline
proc.mem[]
proc.num[]
sensor[] parametri device e sensor su Linux 2.4
system.hw.macaddr[] parametro interface
system.sw.packages[] parametro pacchetto
vfs.dir.count[] regex_incl, regex_excl, regex_excl_dir parametri
vfs.dir.size[] regex_incl, regex_excl, regex_excl_dir parametri
vfs.file.regexp[] parametro regexp
vfs.file.regmatch[]
web.page.regexp[]
Trap SNMP
snmptrap[] No parametro regexp
Preelaborazione valore elemento No No parametro pattern
Funzioni per trigger/elementi calcolati
count() parametro pattern se il parametro operator è regexp o iregexp
countunique()
find()
logeventid() No parametro pattern
logsource()
Scoperta di basso livello
Filtri No Campo espressione regolare
Sostituisce No In corrisponde, non corrisponde alle opzioni per le condizioni di Operazione
Condizioni azione No No In corrisponde, non corrisponde alle opzioni per Nome host e Metadati host condizioni di registrazione automatica
Monitoraggio web No Variabili con prefisso regex:
Campo Stringa obbligatoria*
Contesto macro utente No No Nel contesto macro con prefisso regex:
Funzioni macro
regsub() No No parametro pattern
iregsub()
Mappatura icone No Espressione campo
Mappatura valori No No Campo valore se il tipo di mappatura è regexp