This is a translation of the original English documentation page. Help us make it better.

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
Expressie
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$

regexp_expr_2.png

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

regexp_expr_3a.png

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

regexp_expr_4_new.png

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
^log[]
^log.count[]
^logrt[] Ja/Nee
^logrt.count[]
^proc.cpu.util[] Nee Nee
^proc.get[]
^proc.mem[]
^proc.num[]
^sensor[]
^system.hw.macaddr[]
^system.sw.packages[]
^system.sw.packages.get[]
^vfs.dir.count[]
^vfs.dir.get[]
^vfs.dir.size[]
^vfs.file.regexp[] Ja
^vfs.file.regmatch[]
^web.page.regexp[]
SNMP-traps
snmptrap[] Ja Ja Nee
Itemwaarde-voorverwerking
Ja Nee Nee pattern parameter
Functies voor triggers/berekende items
count() Ja Ja Ja
countunique() Ja Ja
find() Ja Ja
logeventid() Ja Ja Nee
logsource()
Low-level discovery
Filters Ja Ja Nee
Overrides Ja Nee
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
iregsub()
Icoonmapping
Ja Ja Nee Expressie-veld
Waardeafbeelding
Ja Nee Nee Waarde-veld als mappingtype regexp is