Perl Compatible Regular Expressions (PCRE, PCRE2) worden ondersteund in Zabbix.
Er zijn twee manieren om reguliere expressies in Zabbix te gebruiken:
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.
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:
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.
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" |
Gebruik van de volgende expressie in low-level ontdekking om databases te ontdekken, behalve een database met een specifieke naam:
Gekozen Uitdrukkingstype: "Resultaat is FALSE". Komt niet overeen met de naam die de string "TESTDATABASE" bevat.
Gebruik van de volgende reguliere expressie inclusief een inline modifier (?i) om de tekens "error" te matchen:
Gekozen Uitdrukkingstype: "Resultaat is TRUE". De tekens "error" worden gematcht.
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.
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 |