Regulārās izteiksmes

Pārskats

Perl Compatible Regular Expressions (PCRE, PCRE2) tiek atbalstītas Zabbix.

Zabbix regulārās izteiksmes var izmantot divos veidos:

  • manuāli ievadot regulāro izteiksmi
  • izmantojot Zabbix izveidotu globālo regulāro izteiksmi

Regulārās izteiksmes

Atbalstītajās vietās varat manuāli ievadīt regulāro izteiksmi. Ņemiet vērā, ka izteiksme nedrīkst sākties ar @, jo šis simbols Zabbix tiek izmantots globālo regulāro izteiksmju atsaukšanai.

Izmantojot regulārās izteiksmes, var beigties steka atmiņa. Plašāku informāciju skatiet PCRE PERFORMANCE.

Ņemiet vērā, ka vairākrindu atbilstības režīmā enkuri ^ un $ attiecīgi atbilst katras rindas sākumam/beigām, nevis visas virknes sākumam/beigām.

Skatiet arī piemērus par pareizu atsoļošanu dažādos kontekstos.

Globālie regulārie izteicieni

Zabbix lietotāja saskarnē ir pieejams paplašināts redaktors sarežģītu regulāro izteicienu izveidei un testēšanai.

Kad regulārais izteiciens ir izveidots šādā veidā, to var izmantot vairākās lietotāja saskarnes vietās, atsaucoties uz tā nosaukumu ar prefiksu @, piemēram, @mycustomregexp.

Lai izveidotu globālu regulāro izteicienu:

  1. Dodieties uz Administration > General.
  2. Nolaižamajā sarakstā atlasiet Regular expressions.
  3. Noklikšķiniet uz New regular expression.

Cilne Expressions ļauj iestatīt regulārā izteiciena nosaukumu un pievienot apakšizteicienus.

Visi obligātie ievades lauki ir atzīmēti ar sarkanu zvaigznīti.

Parameter Description
Name Iestatiet regulārā izteiciena nosaukumu. Ir atļautas jebkādas Unicode rakstzīmes.
Expressions Noklikšķiniet uz Add blokā Expressions, lai pievienotu jaunu apakšizteicienu.
Expression type Atlasiet izteiciena tipu:
Character string included - atbilst apakšvirknei
Any character string included - atbilst jebkurai apakšvirknei no norobežota saraksta. Norobežotajā sarakstā ietilpst komats (,), punkts (.) vai slīpsvītra (/).
Character string not included - atbilst jebkurai virknei, izņemot apakšvirkni
Result is TRUE - atbilst regulārajam izteicienam
Result is FALSE - neatbilst regulārajam izteicienam
Expression Ievadiet apakšvirkni/regulāro izteicienu.
Delimiter Komats (,), punkts (.) vai slīpsvītra (/), lai atdalītu teksta virknes regulārajā izteicienā. Šis parametrs ir aktīvs tikai tad, ja ir atlasīts izteiciena tips "Any character string included".
Case sensitive Atzīmējama izvēles rūtiņa, lai norādītu, vai regulārais izteiciens ir jutīgs pret burtu reģistru.

Slīpsvītra (/) izteicienā tiek apstrādāta burtiski, nevis kā norobežotājs. Tādējādi ir iespējams saglabāt izteicienus, kas satur slīpsvītru, bez kļūdām.

Pielāgota regulārā izteiciena nosaukums Zabbix var saturēt komatus, atstarpes u. c. Tajos gadījumos, kad tas var novest pie nepareizas interpretācijas, uz to atsaucoties (piemēram, komats vienuma atslēgas parametrā), visu atsauci var ievietot pēdiņās šādi: "\@My custom regexp for purpose1, purpose2".
Citās vietās regulāro izteicienu nosaukumus nedrīkst likt pēdiņās (piemēram, LLD noteikuma īpašībās).

Cilnē Test regulāro izteicienu un tā apakšizteicienus var pārbaudīt, ievadot testa virkni.

Rezultātos tiek parādīts katra apakšizteiciena statuss un kopējais pielāgotā izteiciena statuss.

Kopējais pielāgotā izteiciena statuss ir definēts kā Combined result. Ja ir definēti vairāki apakšizteicieni, Zabbix izmanto loģisko operatoru AND, lai aprēķinātu Combined result. Tas nozīmē, ka, ja vismaz vienam Result ir False, Combined result statuss arī būs False.

Noklusējuma globālie regulārie izteicieni

Zabbix komplektā ir iekļauti vairāki globālie regulārie izteicieni tā noklusējuma datu kopā.

Name Expression Matches
Failu sistēmas atklāšanai ^(btrfs|ext2|ext3|ext4|jfs|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|refs|apfs|ntfs|fat32|zfs)$ "btrfs" vai "ext2" vai "ext3" vai "ext4" vai "jfs" vai "reiser" vai "xfs" vai "ffs" vai "ufs" vai "jfs" vai "jfs2" vai "vxfs" vai "hfs" vai "refs" vai "apfs" vai "ntfs" vai "fat32" vai "zfs"
Tīkla saskarnes atklāšanai ^Software Loopback Interface Virknes, kas sākas ar "Software Loopback Interface".
^lo$ "lo"
^(In)?[Ll]oop[Bb]ack[0-9._]*$ Virknes, kas pēc izvēles sākas ar "In", pēc tam satur "L" vai "l", tad "oop", tad "B" vai "b", tad "ack", kam pēc izvēles var sekot jebkurš ciparu, punktu vai pasvītrojumu skaits.
^NULL[0-9.]*$ Virknes, kas sākas ar "NULL" un kam pēc izvēles seko jebkurš ciparu vai punktu skaits.
^[Ll]o[0-9.]*$ Virknes, kas sākas ar "Lo" vai "lo" un kam pēc izvēles seko jebkurš ciparu vai punktu skaits.
^[Ss]ystem$ "System" vai "system"
^Nu[0-9.]*$ Virknes, kas sākas ar "Nu" un kam pēc izvēles seko jebkurš ciparu vai punktu skaits.
Krātuves ierīces SNMP atklāšanai ^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$ "Physical memory" vai "Virtual memory" vai "Memory buffers" vai "Cached memory" vai "Swap space"
Windows pakalpojumu nosaukumi atklāšanai ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ "MMCSS" vai "gupdate" vai "SysmonLog" vai virknes, piemēram, "clr_optimization_v2.0.50727_32" un "clr_optimization_v4.0.30319_32", kur punktu vietā var ievietot jebkuru rakstzīmi, izņemot jaunu rindu.
Windows pakalpojumu startēšanas stāvokļi atklāšanai ^(automatic|automatic delayed)$ "automatic" vai "automatic delayed"

Piemēri

Piemērs 1

Tālāk norādītās izteiksmes izmantošana zemlīmeņa atklāšanā, lai atklātu datubāzes, izņemot datubāzi ar konkrētu nosaukumu:

^TESTDATABASE$

regexp\_expr\_2.png

Izvēlētais Expression type: "Result is FALSE". Neatbilst nosaukumam, kas satur virkni "TESTDATABASE".

Piemērs ar iekļautu regulārās izteiksmes modifikatoru

Tālāk norādītās regulārās izteiksmes izmantošana, iekļaujot iekļautu modifikatoru (?i), lai atbilstu rakstzīmēm "error":

(?i)error

regexp\_expr\_3a.png

Izvēlētais Expression type: "Result is TRUE". Rakstzīmes "error" tiek atrastas.

Vēl viens piemērs ar inline regex modifikatoru

Tālāk redzamās regulārās izteiksmes izmantošana, iekļaujot vairākus inline modifikatorus, lai atrastu rakstzīmes pēc noteiktas rindas:

(?<=match (?i)everything(?-i) after this line\n)(?sx).*# we add s modifier to allow . match newline characters

regexp\_expr\_4\_new.png

Izvēlētais izteiksmes tips: "Rezultāts ir PATIESS". Rakstzīmes pēc noteiktas rindas tiek atrastas.

g modifikatoru nevar norādīt rindā. Pieejamo modifikatoru sarakstu var atrast pcresyntax man page. Lai iegūtu vairāk informācijas par PCRE sintaksi, lūdzu, skatiet PCRE HTML dokumentāciju.

Regulārās izteiksmes atbalsts pēc atrašanās vietas

Atrašanās vieta Regulārā izteiksme Globālā regulārā izteiksme Vairākrindu atbilstība Komentāri
Aģenta vienumi
eventlog[] regexp, severity, source, eventid parametri
eventlog.count[] regexp, severity, source, eventid parametri
log[] regexp parametrs
log.count[]
logrt[] Jā/Nē regexp parametrs atbalsta abus, file_regexp parametrs atbalsta tikai neglobālās izteiksmes
logrt.count[]
proc.cpu.util[] cmdline parametrs
proc.get[]
proc.mem[]
proc.num[]
sensor[] device un sensor parametri Linux 2.4
system.hw.macaddr[] interface parametrs
system.sw.packages[] regexp parametrs
system.sw.packages.get[] regexp parametrs
vfs.dir.count[] regex_incl, regex_excl, regex_excl_dir parametri
vfs.dir.get[] regex_incl, regex_excl, regex_excl_dir parametri
vfs.dir.size[] regex_incl, regex_excl, regex_excl_dir parametri
vfs.file.regexp[] regexp parametrs
vfs.file.regmatch[]
web.page.regexp[]
SNMP slazdi
snmptrap[] regexp parametrs
Vienuma vērtības pirmapstrāde pattern parametrs
Funkcijas trigeriem/ aprēķinātajiem vienumiem
count() pattern parametrs, ja operator parametrs ir regexp vai iregexp
countunique()
find()
logeventid() pattern parametrs
logsource()
Zema līmeņa atklāšana
Filtri Regulārās izteiksmes lauks
Pārrakstīšanas Operation nosacījumu opcijās matches, does not match
Darbību nosacījumi Autoreģistrācijas nosacījumu Host name un Host metadata opcijās matches, does not match
Skripti Input validation rule lauks
Tīmekļa uzraudzība Variables ar prefiksu regex:
Required string lauks
Lietotāja makro konteksts Makro kontekstā ar prefiksu regex:
Makro funkcijas
regsub() pattern parametrs
iregsub()
Saišu indikatori kartēs Pattern lauks (teksta vienumiem)
Ikonu kartēšana Expression lauks
Vērtību kartēšana Value lauks, ja kartēšanas tips ir regexp
Aģenta konfigurācijas parametri
AllowKeyRegexp Raksts
DenyKeyRegexp