Espressioni regolari
Panoramica
Perl Compatible Regular Expressions (PCRE, PCRE2) sono supportate in Zabbix.
Esistono due modi per utilizzare le espressioni regolari in Zabbix:
- Inserire manualmente un'espressione regolare
- Utilizzare un'espressione regolare globale creata in Zabbix
Espressioni regolari
È possibile inserire manualmente un'espressione regolare nei punti supportati.
Si noti che l'espressione non deve iniziare con @, poiché questo simbolo viene utilizzato in Zabbix per fare riferimento alle espressioni regolari globali.
È possibile esaurire la memoria dello stack quando si utilizzano espressioni regolari. Per ulteriori informazioni, vedere PCRE PERFORMANCE.
Si noti che, nella corrispondenza multilinea, gli ancoraggi ^ e $ corrispondono rispettivamente all'inizio e alla fine di ogni riga, invece che all'inizio e alla fine dell'intera stringa.
Vedere anche gli esempi di escaping corretto in vari contesti.
Espressioni regolari globali
Zabbix fornisce un editor avanzato nel frontend per creare e testare espressioni regolari complesse.
Per accedervi, vai su Administration > General > Regular expressions.
Zabbix include un certo numero di espressioni regolari globali predefinite nel proprio set di dati predefinito.

Puoi filtrare l'elenco delle espressioni regolari per nome e descrizione per trovare le espressioni di cui hai bisogno.
Configurazione
Per creare una regular expression globale, fai clic su Create regular expression e inserisci i parametri della regular expression nel modulo.

Tutti i campi obbligatori sono contrassegnati da un asterisco rosso.
| Parameter | Description | |
|---|---|---|
| Name | Imposta il nome della regular expression. Sono consentiti tutti i caratteri Unicode. | |
| Expressions | Fai clic su Add nella sezione Expressions per aggiungere una nuova sottoespressione. | |
| Expression type | Seleziona il tipo di espressione: Contains string - corrisponde alla sottostringa. Contains any substring from list - corrisponde a una qualsiasi sottostringa da un elenco delimitato. L'elenco delimitato include una virgola ,, un punto . o una barra obliqua /.Does not contain string - corrisponde a qualsiasi stringa tranne la sottostringa. Matches regular expression - corrisponde alla regular expression. Does not match regular expression - non corrisponde alla regular expression. |
|
| Expression | Inserisci la sottostringa/regular expression. Lunghezza massima: 2048 caratteri. |
|
| Delimiter | Una virgola ,, un punto ., o una barra obliqua / per separare le stringhe di testo in una regular expression. Questo parametro è attivo solo quando è selezionato il tipo di espressione Contains any substring from list. |
|
| Case sensitive | Una casella di controllo per specificare se una regular expression distingue tra maiuscole e minuscole. | |
| Description | Inserisci una descrizione per la regular expression. | |
| Test expression | Un valore da usare per testare la regular expression. | |
Una barra obliqua / nell'espressione viene trattata letteralmente anziché come delimitatore.
Questo consente di salvare espressioni contenenti una barra obliqua senza errori.
Un nome di regular expression personalizzata in Zabbix può contenere virgole, spazi, ecc.
Nei casi in cui ciò possa portare a un'interpretazione errata durante il riferimento (ad esempio, una virgola nel parametro di una item key), l'intero riferimento può essere racchiuso tra virgolette, in questo modo: "\@My custom regexp for purpose1, purpose2".
I nomi delle regular expression non devono essere racchiusi tra virgolette in altre posizioni (ad esempio, nelle proprietà delle regole LLD).
Una volta creata una regular expression, può essere usata in diversi punti nel frontend facendo riferimento al suo nome, preceduto da @, ad esempio @mycustomregexp.
Pulsanti del modulo
I pulsanti nella parte inferiore del modulo consentono di eseguire varie operazioni:
| Button | Description |
|---|---|
![]() |
Aggiungi un'espressione regolare. Questo pulsante è disponibile solo per le nuove espressioni regolari. |
![]() |
Aggiorna le proprietà di un'espressione regolare. |
![]() |
Crea un'altra espressione regolare basata sulle proprietà dell'espressione regolare corrente. |
![]() |
Verifica un'espressione regolare e le sue sottoespressioni rispetto a un valore fornito. |
![]() |
Elimina l'espressione regolare. |
![]() |
Annulla la modifica delle proprietà dell'espressione regolare. |
Test di un'espressione regolare
È possibile testare l'espressione regolare e le sue sottoespressioni inserendo un valore nel campo Test expression e facendo clic sul pulsante Test.

Nella colonna Test result viene visualizzato lo stato di ciascuna sottoespressione.
Il campo Combined result visualizza lo stato complessivo dell'espressione regolare.
Se sono definite più sottoespressioni, Zabbix usa l'operatore logico AND per calcolare il Combined result; cioè, se almeno un risultato è False, anche il Combined result è False.
Espressioni regolari globali predefinite
Il dataset predefinito include le seguenti espressioni regolari globali predefinite:
| Nome | Espressione | Corrisponde a |
|---|---|---|
| File systems for discovery | ^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$ |
"btrfs" o "ext2" o "ext3" o "ext4" o "reiser" o "xfs" o "ffs" o "ufs" o "jfs" o "jfs2" o "vxfs" o "hfs" o "apfs" o "refs" o "ntfs" o "fat32" o "zfs". |
| Network interfaces for discovery | ^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", seguite da "L" o "l", poi da "oop", poi da "B" o "b", poi da "ack", e facoltativamente seguite da un numero qualsiasi di cifre, punti o underscore. | |
^NULL[0-9.]*$ |
Stringhe che iniziano con "NULL" e sono facoltativamente seguite da un numero qualsiasi di cifre o punti. | |
^[Ll]o[0-9.]*$ |
Stringhe che iniziano con "Lo" o "lo" e sono facoltativamente seguite da un numero qualsiasi di cifre o punti. | |
^[Ss]ystem$ |
"System" o "system". | |
^Nu[0-9.]*$ |
Stringhe che iniziano con "Nu" e sono facoltativamente seguite da un numero qualsiasi di cifre o punti. | |
| Storage devices for SNMP discovery | ^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$ |
"Physical memory" o "Virtual memory" o "Memory buffers" o "Cached memory" o "Swap space". |
| Windows service names for discovery | ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ |
"MMCSS" o "gupdate" o "SysmonLog" o stringhe corrispondenti a "clr_optimization_v2.0.50727_32" o "clr_optimization_v4.0.30319_32", dove ogni punto può essere sostituito da qualsiasi carattere tranne un ritorno a capo. |
| Windows service startup states for discovery | ^(automatic|automatic delayed)$ |
"automatic" o "automatic delayed". |
Importazione/esportazione di un'espressione regolare
È possibile importare o esportare espressioni regolari globali come descritto nella pagina di configurazione di esportazione/importazione Espressioni regolari.
Esempi
Esempio di esclusione di una stringa esatta
Usa la seguente espressione nella discovery a basso livello per individuare i database, tranne un database con un nome specifico:
^TESTDATABASE$

Sia Test result sia Combined result mostrano FALSE: il nome corrisponde a "TESTDATABASE", quindi la condizione Does not match regular expression non è soddisfatta.
Esempio con un modificatore regex inline per una corrispondenza senza distinzione tra maiuscole e minuscole
Usa la seguente espressione regolare, che include il modificatore inline (?i) per eseguire una corrispondenza senza distinzione tra maiuscole e minuscole dei caratteri "error":
(?i)error

Sia Test result sia Combined result mostrano TRUE: i caratteri "error" vengono trovati anche con Case sensitive selezionato, perché il modificatore inline (?i) rende la corrispondenza senza distinzione tra maiuscole e minuscole.
Esempio con più modificatori regex inline
Usa la seguente espressione regolare, che include più modificatori inline, per corrispondere ai caratteri dopo una riga specifica:
(?<=match (?i)eveRything(?-i) after this line\r\n)(?sx).*# comment
dove:
(?i)- attiva la corrispondenza senza distinzione tra maiuscole e minuscole;(?-i)- disattiva la corrispondenza senza distinzione tra maiuscole e minuscole;(?s)- abilita la modalità dotall, consentendo a.di corrispondere ai caratteri di nuova riga;(?x)- abilita la modalità estesa, consentendo di ignorare spazi bianchi e commenti nell'espressione regolare.

Sia Test result sia Combined result mostrano TRUE: i caratteri che seguono la riga specifica vengono corrisposti.
Il modificatore g non può essere specificato inline.
L'elenco dei modificatori disponibili è disponibile nella pagina man di pcresyntax.
Per ulteriori informazioni sulla sintassi PCRE, consulta la documentazione HTML di PCRE.
Supporto delle espressioni regolari per posizione
| Posizione | Espressione regolare | Espressione regolare globale | Corrispondenza multilinea | Commenti | |
|---|---|---|---|---|---|
| Item dell'agent | |||||
| eventlog[] | Sì | Sì | Sì | parametri regexp, severity, source, eventid |
|
| eventlog.count[] | 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.get[] | |||||
| proc.mem[] | |||||
| proc.num[] | |||||
| sensor[] | parametri device e sensor su Linux 2.4 |
||||
| system.hw.macaddr[] | parametro interface |
||||
| system.sw.packages[] | parametro regexp |
||||
| system.sw.packages.get[] | parametro regexp |
||||
| vfs.dir.count[] | parametri regex_incl, regex_excl, regex_excl_dir |
||||
| vfs.dir.get[] | parametri regex_incl, regex_excl, regex_excl_dir |
||||
| vfs.dir.size[] | parametri regex_incl, regex_excl, regex_excl_dir |
||||
| vfs.file.regexp[] | Sì | parametro regexp |
|||
| vfs.file.regmatch[] | |||||
| web.page.regexp[] | |||||
| SNMP traps | |||||
| snmptrap[] | Sì | Sì | No | parametro regexp |
|
| Preprocessing del valore dell'item | Sì | No | No | campo pattern |
|
| Funzioni per trigger/item calcolati | |||||
| count() | Sì | Sì | Sì | parametro pattern se il parametro operator è regexp o iregexp |
|
| countunique() | Sì | Sì | |||
| find() | Sì | Sì | |||
| logeventid() | Sì | Sì | No | parametro pattern |
|
| logsource() | |||||
| Low-level discovery | |||||
| Filtri | Sì | Sì | No | campo Espressione regolare | |
| Override | Sì | No | nelle opzioni corrisponde, non corrisponde per le condizioni Operazione | ||
| Condizioni delle azioni | Sì | No | No | nelle opzioni corrisponde, non corrisponde per le condizioni di autoregistrazione Nome host e Metadati host | |
| Script | Sì | Sì | No | campo Regola di convalida dell'input | |
| Monitoraggio web | Sì | No | Sì | Variabili con prefisso regex: campo Stringa richiesta |
|
| Contesto delle macro utente | Sì | No | No | nel contesto della macro con prefisso regex: | |
| Funzioni macro | |||||
| regsub() | Sì | No | No | parametro pattern |
|
| iregsub() | |||||
| Indicatori di collegamento nelle mappe | Sì | No | No | campo Pattern (per gli item di testo) | |
| Mappatura delle icone | Sì | Sì | No | campo Espressione | |
| Mappatura dei valori | Sì | No | No | campo Valore se il tipo di mappatura è regexp |
|
| Parametri di configurazione dell'agent | |||||
| AllowKeyRegexp | Sì | No | No | Pattern | |
| DenyKeyRegexp | |||||





