12 Reguliere expressies
Overzicht
Perl Compatible Regular Expressions (PCRE, PCRE2) worden ondersteund in Zabbix.
Er zijn twee manieren om reguliere expressies in Zabbix te gebruiken:
- handmatig invoeren van een reguliere expressie
- gebruik van een wereldwijde reguliere expressie die in Zabbix is gemaakt
Reguliere expressies
Je kunt handmatig een reguliere expressie invoeren op ondersteunde plaatsen. Let op dat de expressie niet mag beginnen met @, omdat dat symbool in Zabbix wordt gebruikt voor het refereren naar wereldwijde reguliere expressies.
Het is mogelijk om zonder stackruimte te komen bij het gebruik van reguliere expressies. Zie de pcrestack man pagina voor meer informatie.
Merk op dat bij multiline matching, de ^ en $ ankers overeenkomen met het
begin/einde van elke regel respectievelijk, in plaats van het begin/einde van
de hele tekenreeks.
Globale reguliere expressies
Er is een geavanceerde editor beschikbaar om complexe reguliere expressies te maken en te testen in de Zabbix-frontend.
Nadat een reguliere expressie op deze manier is gemaakt, kan deze op verschillende plaatsen in de frontend worden gebruikt door te verwijzen naar de naam ervan, voorafgegaan door @, bijvoorbeeld, \@mijnklantspecifiekeexpressie.
Om een globale reguliere expressie te maken:
- Ga naar: Beheer → Algemeen
- Selecteer Reguliere expressies in het vervolgkeuzemenu
- Klik op Nieuwe reguliere expressie
Het tabblad Expressies biedt de mogelijkheid om de naam van de reguliere expressie in te stellen en subexpressies toe te voegen.

Alle verplichte invoervelden zijn gemarkeerd met een rode asterisk.
| Parameter | Beschrijving | |
|---|---|---|
| Naam | Stel de naam van de reguliere expressie in. Elk Unicode-teken is toegestaan. | |
| Expressies | Klik op Toevoegen in het gedeelte Expressies om een nieuwe subexpressie toe te voegen. | |
| Expressietype | Selecteer het expressietype: Tekensreeks inbegrepen - overeenkomen met de subreeks Willekeurige tekensreeks inbegrepen - overeenkomen met elke subreeks uit een gescheiden lijst. De gescheiden lijst bevat een komma (,), een punt (.) of een schuine streep (/). Tekensreeks niet inbegrepen - overeenkomen met elke tekenreeks behalve de subreeks Resultaat is WAAR - overeenkomen met de reguliere expressie Resultaat is ONWAAR - niet overeenkomen met de reguliere expressie |
|
| ^ | Expressie | Voer de subreeks/reguliere expressie in. |
| Scheidingsteken | Een komma (,), een punt (.) of een schuine streep (/) om tekstreeksen in een reguliere expressie te scheiden. Deze parameter is alleen actief wanneer het expressietype "Willekeurige tekensreeks inbegrepen" is geselecteerd. | |
| Hoofdlettergevoelig | Een selectievakje om aan te geven of een reguliere expressie hoofdlettergevoelig is voor letters. |
Een schuine streep (/) in de expressie wordt behandeld als een letterlijk teken, eerder dan als een scheidingsteken. Hierdoor is het mogelijk om expressies op te slaan die een schuine streep bevatten, zonder fouten.
Een aangepaste naam voor een reguliere expressie in Zabbix kan komma's, spaties, enzovoort bevatten. In gevallen waar dit tot verwarring kan leiden bij verwijzing (bijvoorbeeld een komma in de parameter van een item-sleutel), kan de hele verwijzing tussen aanhalingstekens worden geplaatst, zoals "\@Mijn klantspecifieke expressie voor doel1, doel2". Reguliere expressienamen mogen niet tussen aanhalingstekens worden geplaatst op andere locaties (bijvoorbeeld in LLD-regel-eigenschappen).
Op het tabblad Testen kunnen de reguliere expressie en de subexpressies worden getest door een testreeks op te geven.

De resultaten tonen de status van elke subexpressie en de totale status van de aangepaste expressie.
De totale status van de aangepaste expressie wordt gedefinieerd als Gecombineerd resultaat. Als er meerdere subexpressies zijn gedefinieerd, gebruikt Zabbix de AND-logische operator om het Gecombineerde resultaat te berekenen. Dit betekent dat als ten minste één Resultaat onwaar is, het Gecombineerde resultaat ook de status Onwaar heeft.
Standaard globale reguliere expressies
Zabbix wordt geleverd met verschillende globale reguliere expressies in zijn standaard dataset.
| Naam | Expressie | Overeenkomsten |
|---|---|---|
| Bestandssystemen voor ontdekking | ^(btrfs|ext2|ext3|ext4|jfs|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|refs|apfs|ntfs|fat32|zfs)$ |
"btrfs" of "ext2" of "ext3" of "ext4" of "jfs" of "reiser" of "xfs" of "ffs" of "ufs" of "jfs" of "jfs2" of "vxfs" of "hfs" of "refs" of "apfs" of "ntfs" of "fat32" of "zfs" |
| Netwerkinterfaces voor ontdekking | ^Software Loopback Interface |
Teksten die beginnen met "Software Loopback Interface". |
^lo$ |
"lo" | |
^(In)?[Ll]oop[Bb]ack[0-9._]*$ |
Teksten die optioneel beginnen met "In", dan "L" of "l", dan "oop", dan "B" of "b", dan "ack", gevolgd door optioneel een willekeurig aantal cijfers, punten of underscores. | |
^NULL[0-9.]*$ |
Teksten die beginnen met "NULL", optioneel gevolgd door een willekeurig aantal cijfers of punten. | |
^[Ll]o[0-9.]*$ |
Teksten die beginnen met "Lo" of "lo" en optioneel gevolgd door een willekeurig aantal cijfers of punten. | |
^[Ss]ystem$ |
"System" of "system" | |
^Nu[0-9.]*$ |
Teksten die beginnen met "Nu" en optioneel gevolgd door een willekeurig aantal cijfers of punten. | |
| Opslagapparaten voor SNMP-ontdekking | ^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$ |
"Physical memory" of "Virtual memory" of "Memory buffers" of "Cached memory" of "Swap space" |
| Windows-service namen voor ontdekking | ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ |
"MMCSS" of "gupdate" of "SysmonLog" of teksten zoals "clr_optimization_v2.0.50727_32" en "clr_optimization_v4.0.30319_32" waar in plaats van punten elk karakter behalve een nieuwe regel kan worden geplaatst. |
| Windows-service opstartstatussen voor ontdekking | ^(automatic|automatic delayed)$ |
"automatic" of "automatic delayed" |
Voorbeelden
Voorbeeld 1
Gebruik van de volgende expressie in low-level ontdekking om databases te ontdekken, behalve een database met een specifieke naam:
^TESTDATABASE$

Gekozen Uitdrukkingstype: "Resultaat is FALSE". Komt niet overeen met de naam die de string "TESTDATABASE" bevat.
Voorbeeld met een inline regex-modifier
Gebruik van de volgende reguliere expressie inclusief een inline modifier (?i) om de tekens "error" te matchen:
(?i)error

Gekozen Uitdrukkingstype: "Resultaat is TRUE". De tekens "error" worden gematcht.
Een ander voorbeeld met een inline regex-modifier
Gebruik van de volgende reguliere expressie inclusief meerdere inline modifiers om de tekens na een specifieke regel te matchen:
(?<=match (?i)everything(?-i) after this line\n)(?sx).*# we add s modifier to allow . match newline characters

Gekozen Uitdrukkingstype: "Resultaat is TRUE". Tekens na een specifieke regel worden gematcht.
g-modifier kan niet in lijn worden gespecificeerd. De lijst met beschikbare modifiers is te vinden in de pcresyntax man pagina. Voor meer informatie over PCRE-syntaxis, raadpleeg de PCRE HTML-documentatie.
Ondersteuning van reguliere expressies per locatie
| Locatie | Reguliere expressie | Globale reguliere expressie | Multiline-matching | Opmerkingen | |
|---|---|---|---|---|---|
| Agent-items | |||||
| eventlog[] | Ja | Ja | Ja | regexp, severity, source, eventid parameters |
|
| ^log[] | ^ | ^ | ^ | regexp parameter |
|
| ^log.count[] | ^ | ^ | ^ | ^ | |
| ^logrt[] | ^ | Ja/Nee | ^ | regexp parameter ondersteunt beide, file_regexp parameter ondersteunt alleen niet-globale expressies |
|
| ^logrt.count[] | ^ | ^ | ^ | ^ | |
| ^proc.cpu.util[] | ^ | Nee | Nee | cmdline parameter |
|
| ^proc.get[] | ^ | ^ | ^ | ^ | |
| ^proc.mem[] | ^ | ^ | ^ | ^ | |
| ^proc.num[] | ^ | ^ | ^ | ^ | |
| ^sensor[] | ^ | ^ | ^ | device en sensor parameters op Linux 2.4 |
|
| ^system.hw.macaddr[] | ^ | ^ | ^ | interface parameter |
|
| ^system.sw.packages[] | ^ | ^ | ^ | regexp parameter |
|
| ^system.sw.packages.get[] | ^ | ^ | ^ | regexp parameter |
|
| ^vfs.dir.count[] | ^ | ^ | ^ | regex_incl, regex_excl, regex_excl_dir parameters |
|
| ^vfs.dir.get[] | ^ | ^ | ^ | regex_incl, regex_excl, regex_excl_dir parameters |
|
| ^vfs.dir.size[] | ^ | ^ | ^ | regex_incl, regex_excl, regex_excl_dir parameters |
|
| ^vfs.file.regexp[] | ^ | ^ | Ja | regexp parameter |
|
| ^vfs.file.regmatch[] | ^ | ^ | ^ | ^ | |
| ^web.page.regexp[] | ^ | ^ | ^ | ^ | |
| SNMP-traps | |||||
| snmptrap[] | Ja | Ja | Nee | regexp parameter |
|
| Itemwaarde-voorverwerking | |||||
| Ja | Nee | Nee | pattern parameter |
||
| Functies voor triggers/berekende items | |||||
| count() | Ja | Ja | Ja | pattern parameter als operator parameter regexp of iregexp is |
|
| countunique() | Ja | Ja | ^ | ^ | |
| find() | Ja | Ja | ^ | ^ | |
| logeventid() | Ja | Ja | Nee | pattern parameter |
|
| logsource() | ^ | ^ | ^ | ^ | |
| Low-level discovery | |||||
| Filters | Ja | Ja | Nee | Reguliere expressie-veld | |
| Overrides | Ja | Nee | ^ | In overeenkomsten, komt niet overeen met opties voor Operatie voorwaarden | |
| Actievoorwaarden | |||||
| Ja | Nee | Nee | In overeenkomsten, komt niet overeen met opties voor Host-naam en Host-metadata autoregistratievoorwaarden | ||
| Webmonitoring | |||||
| Ja | Nee | Ja | Variabelen met een prefix regex: Vereiste tekenreeks-veld |
||
| Gebruikersmacrocontext | |||||
| Ja | Nee | Nee | In macrocontext met een prefix regex: | ||
| Macrofuncties | |||||
| regsub() | Ja | Nee | Nee | pattern parameter |
|
| iregsub() | ^ | ^ | ^ | ^ | |
| Icoonmapping | |||||
| Ja | Ja | Nee | Expressie-veld | ||
| Waardeafbeelding | |||||
| Ja | Nee | Nee | Waarde-veld als mappingtype regexp is |