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 om complexe reguliere expressies te maken en te testen in de Zabbix frontend.

Zodra 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 @mycustomregexp.

Om een globale reguliere expressie te maken:

  • Ga naar: Beheer → Algemeen
  • Selecteer Reguliere expressies uit het dropdown-menu
  • Klik op Nieuwe reguliere expressie

Het tabblad Uitdrukkingen stelt je in staat 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. Alle Unicode karakters zijn toegestaan.
Uitdrukkingen Klik op Toevoegen in het Uitdrukkingen blok om een nieuwe subexpressie toe te voegen.
Uitdrukkingstype Selecteer het uitdrukkingstype:
Karakterreeks inbegrepen - zoek de substring
Willekeurige karakterreeks inbegrepen - zoek elke substring uit een gescheiden lijst. De gescheiden lijst bevat een komma (,), een punt (.) of een schuine streep (/).
Karakterreeks niet inbegrepen - zoek elke string behalve de substring
Resultaat is WAAR - zoek de reguliere expressie
Resultaat is ONWAAR - zoek de reguliere expressie niet
Uitdrukking Voer de substring/reguliere expressie in.
Scheidingsteken Een komma (,), een punt (.) of een schuine streep (/) om tekststrings te scheiden in een reguliere expressie. Deze parameter is alleen actief wanneer het uitdrukkingstype "Willekeurige karakterreeks inbegrepen" is geselecteerd.
Hoofdlettergevoelig Een selectievakje om aan te geven of een reguliere expressie gevoelig is voor hoofdletters van letters.

Een schuine streep (/) in de expressie wordt letterlijk behandeld, in plaats van een scheidingsteken. Op deze manier is het mogelijk om expressies die een schuine streep bevatten, op te slaan zonder fouten.

Een aangepaste naam voor een reguliere expressie in Zabbix kan komma's, spaties, etc. bevatten. In die gevallen waarin dat kan leiden tot verkeerde interpretatie bij verwijzing (bijvoorbeeld, een komma in de parameter van een item sleutel) kan de hele verwijzing tussen aanhalingstekens worden geplaatst zoals dit: "@My custom regexp for purpose1, purpose2".
Reguliere expressienamen mogen niet tussen aanhalingstekens worden geplaatst op andere locaties (bijvoorbeeld in LLD regel eigenschappen).

In het tabblad Test 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 logische operator AND om het Gecombineerde resultaat te berekenen. Dit betekent dat als minstens éé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 Matches
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 Tekenreeksen die beginnen met "Software Loopback Interface".
^lo$ "lo"
^(In)?[Ll]oop[Bb]ack[0-9._]*$ Tekenreeksen die optioneel beginnen met "In", dan "L" of "l", dan "oop", dan "B" of "b", dan "ack", die optioneel gevolgd kunnen worden door willekeurig veel cijfers, punten of underscores.
^NULL[0-9.]*$ Tekenreeksen die beginnen met "NULL" en optioneel gevolgd kunnen worden door willekeurig veel cijfers of punten.
^[Ll]o[0-9.]*$ Tekenreeksen die beginnen met "Lo" of "lo" en optioneel gevolgd kunnen worden door willekeurig veel cijfers of punten.
^[Ss]ystem$ "System" of "system"
^Nu[0-9.]*$ Tekenreeksen die beginnen met "Nu" en optioneel gevolgd kunnen worden door willekeurig veel 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-servicenamen voor ontdekking ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ "MMCSS" of "gupdate" of "SysmonLog" of tekenreeksen zoals "clr_optimization_v2.0.50727_32" en "clr_optimization_v4.0.30319_32" waar in plaats van punten je elk teken behalve een nieuwe regel kunt plaatsen.
Windows-servicestartstatussen 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 voor reguliere expressies per locatie

Locatie Reguliere expressie Globale reguliere expressie Multilijn overeenkomst Opmerkingen
Agent items
eventlog[] Ja Ja Ja Parameters regexp, severity, source, eventid
log[] Parameter regexp
log.count[]
logrt[] Ja/Nee Parameter regexp ondersteunt beide, parameter file_regexp ondersteunt alleen niet-globale expressies
logrt.count[]
proc.cpu.util[] Nee Nee Parameter cmdline
proc.mem[]
proc.num[]
sensor[] Parameters device en sensor op Linux 2.4
system.hw.macaddr[] Parameter interface
system.sw.packages[] Parameter package
vfs.dir.count[] Parameters regex_incl, regex_excl, regex_excl_dir
vfs.dir.get[] Parameters regex_incl, regex_excl, regex_excl_dir
vfs.dir.size[] Parameters regex_incl, regex_excl, regex_excl_dir
vfs.file.regexp[] Ja Parameter regexp
vfs.file.regmatch[]
web.page.regexp[]
SNMP-traps
snmptrap[] Ja Ja Nee Parameter regexp
Itemwaarde voorbewerking Ja Nee Nee Parameter pattern
Functies voor triggers/berekende items
count() Ja Ja Ja Parameter pattern als operator-parameter regexp of iregexp is
countunique() Ja Ja
find() Ja Ja
logeventid() Ja Ja Nee Parameter pattern
logsource()
Lagedrempelontdekking
Filters Ja Ja Nee Veld Reguliere expressie
Overrides Ja Nee Opties Overeenkomt met, Komt niet overeen met voor Operatie voorwaarden
Actievoorwaarden Ja Nee Nee Opties Overeenkomt met, Komt niet overeen met voor autoregistratievoorwaarden Hostnaam en Hostmetadata
Webmonitoring Ja Nee Ja Variabelen met een voorvoegsel regex:
Veld Vereiste string
Gebruikermacro-context Ja Nee Nee In macrocontext met een voorvoegsel regex:
Macrofuncties
regsub() Ja Nee Nee Parameter pattern
iregsub()
Pictogramtoewijzing Ja Ja Nee Veld Uitdrukking
Waardetoewijzing Ja Nee Nee Veld Waarde als het mappingtype regexp is