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
Um einen globalen regulären Ausdruck zu erstellen, klicken Sie auf Regulären Ausdruck erstellen und geben Sie die Parameter des regulären Ausdrucks im Formular ein.

Alle Pflichtfelder sind mit einem roten Sternchen markiert.
| 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 Teilausdruck 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 durch Trennzeichen getrennte Liste enthält ein Komma ,, einen Punkt . oder einen Schrägstrich /.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 regulärem Ausdruck - stimmt nicht mit dem regulären Ausdruck überein. |
|
| Ausdruck | Geben Sie die Teilzeichenfolge/den 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 bei einem regulären Ausdruck zwischen Groß- und Kleinschreibung unterschieden 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, die einen Schrägstrich enthalten, ohne Fehler gespeichert werden.
Ein benutzerdefinierter Name für einen regulären Ausdruck in Zabbix kann Kommas, Leerzeichen usw. enthalten.
In Fällen, in denen dies bei Verweisen zu Missverständnissen führen kann (zum Beispiel ein Komma im Parameter eines item-Schlüssels), kann der gesamte Verweis in Anführungszeichen gesetzt werden, etwa so: "\@My custom regexp for purpose1, purpose2".
Namen regulärer Ausdrücke dürfen an anderen Stellen nicht in Anführungszeichen gesetzt werden (zum Beispiel in den Eigenschaften von LLD-Regeln).
Sobald 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 | |||||





