Reguläre Ausdrücke
Übersicht
Perl Compatible Regular Expressions (PCRE, PCRE2) werden in Zabbix unterstützt.
Es gibt zwei Möglichkeiten, reguläre Ausdrücke in Zabbix zu verwenden:
- Manuelle Eingabe eines regulären Ausdrucks
- Verwendung eines in Zabbix erstellten globalen regulären Ausdrucks
Reguläre Ausdrücke
Sie können einen regulären Ausdruck manuell in unterstützten Bereichen eingeben.
Beachten Sie, dass der Ausdruck nicht mit @ beginnen darf, da dieses Symbol in Zabbix verwendet wird, um auf globale reguläre Ausdrücke zu verweisen.
Bei der Verwendung regulärer Ausdrücke kann der Stack-Speicher erschöpft werden. Weitere Informationen finden Sie unter PCRE PERFORMANCE.
Beachten Sie, dass bei der mehrzeiligen Übereinstimmung die Anker ^ und $ jeweils am Anfang und Ende jeder Zeile und nicht am Anfang und Ende des gesamten Strings übereinstimmen.
Siehe auch Beispiele für das korrekte Escaping in verschiedenen Kontexten.
Globale reguläre Ausdrücke
Zabbix stellt im Frontend einen erweiterten Editor zum Erstellen und Testen komplexer regulärer Ausdrücke bereit.
Um darauf zuzugreifen, gehen Sie zu Administration > Allgemein > Reguläre Ausdrücke.
Zabbix enthält in seinem Standarddatensatz eine Reihe von vordefinierten globalen regulären Ausdrücken.

Sie können die Liste der regulären Ausdrücke nach Name und Beschreibung filtern, um die benötigten Ausdrücke zu finden.
Konfiguration
So erstellen Sie einen globalen regulären Ausdruck:
- Klicken Sie auf Regulären Ausdruck erstellen.
- Geben Sie die Parameter des regulären Ausdrucks im Formular ein.

Alle Pflichtfelder sind mit einem roten Sternchen gekennzeichnet.
| Parameter | Beschreibung | |
|---|---|---|
| Name | Legen Sie den Namen des regulären Ausdrucks fest. Alle Unicode-Zeichen sind zulässig. | |
| Ausdrücke | Klicken Sie im Abschnitt Ausdrücke auf Hinzufügen, um einen neuen Unterausdruck hinzuzufügen. | |
| Ausdruckstyp | Wählen Sie den Ausdruckstyp aus: Enthält Zeichenfolge – stimmt mit der Teilzeichenfolge überein. Enthält eine beliebige Teilzeichenfolge aus der Liste – stimmt mit einer beliebigen Teilzeichenfolge aus einer durch Trennzeichen getrennten Liste überein. Die Liste kann durch ein Komma ,, einen Punkt . oder einen Schrägstrich / getrennt sein.Enthält keine Zeichenfolge – stimmt mit jeder Zeichenfolge außer der Teilzeichenfolge überein. Entspricht regulärem Ausdruck – stimmt mit dem regulären Ausdruck überein. Entspricht nicht dem regulären Ausdruck – stimmt nicht mit dem regulären Ausdruck überein. |
|
| Ausdruck | Geben Sie eine Teilzeichenfolge bzw. einen regulären Ausdruck ein. Maximale Länge: 2048 Zeichen. |
|
| Trennzeichen | Ein Komma ,, ein Punkt . oder ein Schrägstrich /, um Textzeichenfolgen in einem regulären Ausdruck zu trennen. Dieser Parameter ist nur aktiv, wenn der Ausdruckstyp Enthält eine beliebige Teilzeichenfolge aus der Liste ausgewählt ist. |
|
| Groß-/Kleinschreibung beachten | Ein Kontrollkästchen, mit dem festgelegt wird, ob beim regulären Ausdruck die Groß-/Kleinschreibung beachtet wird. | |
| Beschreibung | Geben Sie eine Beschreibung für den regulären Ausdruck ein. | |
| Ausdruck testen | Ein Wert, der zum Testen des regulären Ausdrucks verwendet wird. | |
Ein Schrägstrich / im Ausdruck wird wörtlich und nicht als Trennzeichen behandelt.
Dadurch können Ausdrücke mit einem Schrägstrich fehlerfrei gespeichert werden.
Ein benutzerdefinierter Name für einen regulären Ausdruck in Zabbix darf Kommas, Leerzeichen usw. enthalten.
Wenn dies bei der Referenzierung zu Fehlinterpretationen führen kann (beispielsweise ein Komma im Parameter eines Datenpunktschlüssels), kann die gesamte Referenz in Anführungszeichen eingeschlossen werden, zum Beispiel: "\@My custom regexp for purpose1, purpose2".
Namen regulärer Ausdrücke dürfen an anderen Stellen nicht in Anführungszeichen gesetzt werden (beispielsweise in den Eigenschaften einer LLD-Regel).
Nachdem ein regulärer Ausdruck erstellt wurde, kann er an mehreren Stellen im Frontend verwendet werden, indem auf seinen Namen mit dem Präfix @ verwiesen wird, zum Beispiel @mycustomregexp.
Formularschaltflächen
Die Schaltflächen am unteren Rand des Formulars ermöglichen verschiedene Aktionen:
| Schaltfläche | Beschreibung |
|---|---|
![]() |
Einen regulären Ausdruck hinzufügen. Diese Schaltfläche ist nur für neue reguläre Ausdrücke verfügbar. |
![]() |
Die Eigenschaften eines regulären Ausdrucks aktualisieren. |
![]() |
Einen weiteren regulären Ausdruck auf Grundlage der Eigenschaften des aktuellen regulären Ausdrucks erstellen. |
![]() |
Einen regulären Ausdruck und seine Teilausdrücke anhand eines angegebenen Werts testen. |
![]() |
Den regulären Ausdruck löschen. |
![]() |
Die Bearbeitung der Eigenschaften des regulären Ausdrucks abbrechen. |
Testen eines regulären Ausdrucks
Sie können den regulären Ausdruck und seine Teil-Ausdrücke testen, indem Sie einen Wert in das Feld Test expression eingeben und auf die Schaltfläche Test button klicken.

In der Spalte Test result wird der Status jedes Teil-Ausdrucks angezeigt.
Das Feld Combined result zeigt den Gesamtstatus des regulären Ausdrucks an.
Wenn mehrere Teil-Ausdrücke definiert sind, verwendet Zabbix den logischen UND-Operator, um das Combined result zu berechnen; das heißt, wenn mindestens ein Ergebnis False ist, ist auch das Combined result False.
Standardmäßige globale reguläre Ausdrücke
Der Standarddatensatz enthält die folgenden vordefinierten globalen regulären Ausdrücke:
| Name | Expression | Matches |
|---|---|---|
| Dateisysteme für die Erkennung | ^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$ |
"btrfs" oder "ext2" oder "ext3" oder "ext4" oder "reiser" oder "xfs" oder "ffs" oder "ufs" oder "jfs" oder "jfs2" oder "vxfs" oder "hfs" oder "apfs" oder "refs" oder "ntfs" oder "fat32" oder "zfs". |
| Netzwerkschnittstellen für die Erkennung | ^Software Loopback Interface |
Zeichenfolgen, die mit "Software Loopback Interface" beginnen. |
^lo$ |
"lo". | |
^(In)?[Ll]oop[Bb]ack[0-9._]*$ |
Zeichenfolgen, die optional mit "In" beginnen, gefolgt von "L" oder "l", dann "oop", dann "B" oder "b", dann "ack" und optional gefolgt von beliebig vielen Ziffern, Punkten oder Unterstrichen. | |
^NULL[0-9.]*$ |
Zeichenfolgen, die mit "NULL" beginnen und optional von beliebig vielen Ziffern oder Punkten gefolgt werden. | |
^[Ll]o[0-9.]*$ |
Zeichenfolgen, die mit "Lo" oder "lo" beginnen und optional von beliebig vielen Ziffern oder Punkten gefolgt werden. | |
^[Ss]ystem$ |
"System" oder "system". | |
^Nu[0-9.]*$ |
Zeichenfolgen, die mit "Nu" beginnen und optional von beliebig vielen Ziffern oder Punkten gefolgt werden. | |
| Speichergeräte für die SNMP-Erkennung | ^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$ |
"Physical memory" oder "Virtual memory" oder "Memory buffers" oder "Cached memory" oder "Swap space". |
| Windows-Dienstnamen für die Erkennung | ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ |
"MMCSS" oder "gupdate" oder "SysmonLog" oder Zeichenfolgen, die mit "clr_optimization_v2.0.50727_32" oder "clr_optimization_v4.0.30319_32" übereinstimmen, wobei jeder Punkt durch ein beliebiges Zeichen außer einem Zeilenumbruch ersetzt werden kann. |
| Windows-Dienststartzustände für die Erkennung | ^(automatic|automatic delayed)$ |
"automatic" oder "automatic delayed". |
Importieren/Exportieren eines regulären Ausdrucks
Sie können globale reguläre Ausdrücke importieren oder exportieren, wie auf der Konfigurationsseite für den Export/Import von regulären Ausdrücken beschrieben.
Beispiele
Beispiel für den Ausschluss eines exakten Strings
Verwenden Sie den folgenden Ausdruck in der Low-Level-Discovery, um Datenbanken zu entdecken, außer einer Datenbank mit einem bestimmten Namen:
^TESTDATABASE$

Sowohl Test result als auch Combined result zeigen FALSE an: Der Name stimmt mit "TESTDATABASE" überein, daher ist die Bedingung Does not match regular expression nicht erfüllt.
Beispiel mit einem Inline-Regex-Modifikator für einen nicht zwischen Groß- und Kleinschreibung unterscheidenden Abgleich
Verwenden Sie den folgenden regulären Ausdruck, der den Inline-Modifikator (?i) enthält, um einen nicht zwischen Groß- und Kleinschreibung unterscheidenden Abgleich der Zeichenfolge "error" durchzuführen:
(?i)error

Sowohl Test result als auch Combined result zeigen TRUE an: Die Zeichenfolge "error" wird auch dann abgeglichen, wenn Case sensitive ausgewählt ist, da der Inline-Modifikator (?i) den Abgleich unabhängig von Groß- und Kleinschreibung macht.
Beispiel mit mehreren Inline-Regex-Modifikatoren
Verwenden Sie den folgenden regulären Ausdruck, der mehrere Inline-Modifikatoren enthält, um die Zeichen nach einer bestimmten Zeile abzugleichen:
(?<=match (?i)eveRything(?-i) after this line\r\n)(?sx).*# comment
wobei:
(?i)- aktiviert die Groß-/Kleinschreibung ignorierende Übereinstimmung;(?-i)- deaktiviert die Groß-/Kleinschreibung ignorierende Übereinstimmung;(?s)- aktiviert den Dotall-Modus, sodass.mit Zeilenumbruchzeichen übereinstimmen kann;(?x)- aktiviert den erweiterten Modus, sodass Leerzeichen und Kommentare im regulären Ausdruck ignoriert werden.

Sowohl Test result als auch Combined result zeigen TRUE: Die Zeichen nach der spezifischen Zeile werden abgeglichen.
Der g-Modifikator kann nicht inline angegeben werden.
Die Liste der verfügbaren Modifikatoren finden Sie auf der pcresyntax man page.
Weitere Informationen zur PCRE-Syntax finden Sie in der PCRE HTML documentation.
Unterstützung regulärer Ausdrücke nach Ort
| Ort | Regulärer Ausdruck | Globaler regulärer Ausdruck | Mehrzeilenabgleich | Kommentare | |
|---|---|---|---|---|---|
| Agent items | |||||
| eventlog[] | Ja | Ja | Ja | Parameter regexp, severity, source, eventid |
|
| eventlog.count[] | Parameter regexp, severity, source, eventid |
||||
| log[] | Parameter regexp |
||||
| log.count[] | |||||
| logrt[] | Ja/Nein | Parameter regexp unterstützt beide, der Parameter file_regexp unterstützt nur nicht-globale Ausdrücke |
|||
| logrt.count[] | |||||
| proc.cpu.util[] | Nein | Nein | Parameter cmdline |
||
| proc.get[] | |||||
| proc.mem[] | |||||
| proc.num[] | |||||
| sensor[] | Parameter device und sensor unter Linux 2.4 |
||||
| system.hw.macaddr[] | Parameter interface |
||||
| system.sw.packages[] | Parameter regexp |
||||
| system.sw.packages.get[] | Parameter regexp |
||||
| vfs.dir.count[] | Parameter regex_incl, regex_excl, regex_excl_dir |
||||
| vfs.dir.get[] | Parameter regex_incl, regex_excl, regex_excl_dir |
||||
| vfs.dir.size[] | Parameter regex_incl, regex_excl, regex_excl_dir |
||||
| vfs.file.regexp[] | Ja | Parameter regexp |
|||
| vfs.file.regmatch[] | |||||
| web.page.regexp[] | |||||
| SNMP traps | |||||
| snmptrap[] | Ja | Ja | Nein | Parameter regexp |
|
| Item value preprocessing | Ja | Nein | Nein | Parameter pattern |
|
| Functions for triggers/calculated items | |||||
| count() | Ja | Ja | Ja | Parameter pattern, wenn der Parameter operator regexp oder iregexp ist |
|
| countunique() | Ja | Ja | |||
| find() | Ja | Ja | |||
| logeventid() | Ja | Ja | Nein | Parameter pattern |
|
| logsource() | |||||
| Low-level discovery | |||||
| Filter | Ja | Ja | Nein | Feld Regulärer Ausdruck | |
| Überschreibungen | Ja | Nein | In den Optionen entspricht und entspricht nicht für Bedingungen Operation | ||
| Action conditions | Ja | Nein | Nein | In den Optionen entspricht und entspricht nicht für die Autoregistrierungsbedingungen Host name und Host metadata | |
| Scripts | Ja | Ja | Nein | Feld Eingabevalidierungsregel | |
| Web monitoring | Ja | Nein | Ja | Variablen mit Präfix regex: Feld Erforderliche Zeichenfolge |
|
| User macro context | Ja | Nein | Nein | Im Makrokontext mit Präfix regex: | |
| Macro functions | |||||
| regsub() | Ja | Nein | Nein | Parameter pattern |
|
| iregsub() | |||||
| Link indicators in maps | Ja | Nein | Nein | Feld Muster (für Textelemente) | |
| Icon mapping | Ja | Ja | Nein | Feld Ausdruck | |
| Value mapping | Ja | Nein | Nein | Feld Wert, wenn der Zuordnungstyp regexp ist |
|
| Agent configuration parameters | |||||
| AllowKeyRegexp | Ja | Nein | Nein | Muster | |
| DenyKeyRegexp | |||||





