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 globālo regulāro izteiksmi, kas izveidota Zabbix

Regulārās izteiksmes

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

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 gadījumā enkuri ^ un $ atbilst attiecīgi katras rindas sākumam un beigām, nevis visas virknes sākumam un beigām.

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

Globālie regulārie izteicieni

Zabbix lietotāja saskarne piedāvā papildu redaktoru sarežģītu regulāro izteicienu izveidei un testēšanai.
Lai tam piekļūtu, dodieties uz Administration > General > Regular expressions.
Zabbix noklusējuma datu kopā ir iekļauts vairāku iepriekš definētu globālo regulāro izteicienu kopums.

Jūs varat filtrēt regulāro izteicienu sarakstu pēc nosaukuma un apraksta, lai atrastu nepieciešamos izteicienus.

Konfigurācija

Lai izveidotu globālu regulāro izteiksmi:

  1. Noklikšķiniet uz Create regular expression.
  2. Formā ievadiet regulārās izteiksmes parametrus.

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

Parametrs Apraksts
Name Iestatiet regulārās izteiksmes nosaukumu. Ir atļautas jebkādas Unicode rakstzīmes.
Expressions Sadaļā Expressions noklikšķiniet uz Add, lai pievienotu jaunu apakšizteiksmi.
Expression type Atlasiet izteiksmes tipu:
Contains string - atbilst apakšvirknei.
Contains any substring from list - atbilst jebkurai apakšvirknei no saraksta, kura elementi ir atdalīti ar norobežotāju. Saraksta elementi tiek atdalīti ar komatu ,, punktu . vai slīpsvītru /.
Does not contain string - atbilst jebkurai virknei, izņemot apakšvirkni.
Matches regular expression - atbilst regulārajai izteiksmei.
Does not match regular expression - neatbilst regulārajai izteiksmei.
Expression Ievadiet apakšvirkni/regulāro izteiksmi.
Maksimālais garums: 2048 rakstzīmes.
Delimiter Komats ,, punkts . vai slīpsvītra /, lai regulārajā izteiksmē atdalītu teksta virknes. Šis parametrs ir aktīvs tikai tad, ja ir atlasīts izteiksmes tips Contains any substring from list.
Case sensitive Izvēles rūtiņa, lai norādītu, vai regulārā izteiksme ir reģistrjutīga.
Description Ievadiet regulārās izteiksmes aprakstu.
Test expression Vērtība, ko izmantot regulārās izteiksmes testēšanai.

Slīpsvītra / izteiksmē tiek interpretēta burtiski, nevis kā norobežotājs. Tas ļauj saglabāt izteiksmes, kurās ir slīpsvītra, neradot kļūdas.

Pielāgotas regulārās izteiksmes nosaukums Zabbix var saturēt komatus, atstarpes u. c. Gadījumos, kad tas var izraisīt nepareizu interpretāciju, veidojot atsauci (piemēram, komats vienuma atslēgas parametrā), visa atsauce var tikt ietverta pēdiņās, piemēram: "\@My custom regexp for purpose1, purpose2".
Citos gadījumos regulāro izteiksmju nosaukumus nedrīkst likt pēdiņās (piemēram, LLD kārtulas rekvizītos).

Kad regulārā izteiksme ir izveidota, to var izmantot vairākās lietotāja saskarnes vietās, atsaucoties uz tās nosaukumu ar prefiksu @, piemēram, @mycustomregexp.

Veidlapas pogas

Pogas veidlapas apakšdaļā ļauj veikt dažādas darbības:

Poga Apraksts
Pievienot regulāro izteiksmi. Šī poga ir pieejama tikai jaunām regulārajām izteiksmēm.
Atjaunināt regulārās izteiksmes īpašības.
Izveidot citu regulāro izteiksmi, pamatojoties uz pašreizējās regulārās izteiksmes īpašībām.
Pārbaudīt regulāro izteiksmi un tās apakšizteiksmes pret norādīto vērtību.
Dzēst regulāro izteiksmi.
Atcelt regulārās izteiksmes īpašību rediģēšanu.

Regulārās izteiksmes testēšana

Jūs varat pārbaudīt regulāro izteiksmi un tās apakšizteiksmes, ievadot vērtību laukā Test expression un noklikšķinot uz Test pogas.

Kolonnā Test result tiek parādīts katras apakšizteiksmes statuss. Lauks Combined result parāda regulārās izteiksmes kopējo statusu. Ja ir definētas vairākas apakšizteiksmes, Zabbix izmanto loģisko AND operatoru, lai aprēķinātu Combined result; tas ir, ja vismaz viens rezultāts ir False, tad arī Combined result ir False.

Noklusējuma globālie regulārie izteicieni

Noklusējuma datu kopā ir iekļauti šādi iepriekš definēti globālie regulārie izteicieni:

Name Expression Matches
Failu sistēmas atklāšanai ^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$ "btrfs" vai "ext2" vai "ext3" vai "ext4" vai "reiser" vai "xfs" vai "ffs" vai "ufs" vai "jfs" vai "jfs2" vai "vxfs" vai "hfs" vai "apfs" vai "refs" 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", kam seko "L" vai "l", pēc tam "oop", pēc tam "B" vai "b", pēc tam "ack", un pēc izvēles seko 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.
SNMP atklāšanas krātuves ierīcēm ^(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 nosaukumiem atklāšanai ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ "MMCSS" vai "gupdate" vai "SysmonLog" vai virknes, kas atbilst "clr_optimization_v2.0.50727_32" vai "clr_optimization_v4.0.30319_32", kur katru punktu var aizstāt ar jebkuru rakstzīmi, izņemot jaunu rindu.
Windows pakalpojumu startēšanas stāvokļiem atklāšanai ^(automatic|automatic delayed)$ "automatic" vai "automatic delayed".

Regulārās izteiksmes importēšana/eksportēšana

Globālās regulārās izteiksmes var importēt vai eksportēt, kā aprakstīts Regulārās izteiksmes eksportēšanas/importēšanas konfigurācijas lapā.

Piemēri

Precīzas virknes izslēgšanas piemērs

Lai zemā līmeņa atklāšanā atrastu datubāzes, izņemot datubāzi ar noteiktu nosaukumu, izmantojiet šādu izteiksmi:

^TESTDATABASE$

Gan Test result, gan Combined result rāda FALSE: nosaukums atbilst "TESTDATABASE", tāpēc nosacījums Does not match regular expression nav izpildīts.

Piemērs ar iekļautu regulārās izteiksmes modifikatoru reģistrjutības ignorēšanai

Izmantojiet šādu regulāro izteiksmi, kurā ir iekļauts iekšējais modifikators (?i), lai veiktu simbolu "error" reģistrneatkarīgu atbilstību:

(?i)error

Gan Test result, gan Combined result rāda TRUE: simboli "error" tiek atrasti pat tad, ja ir atlasīts Case sensitive, jo iekšējais modifikators (?i) padara atbilstību reģistrneatkarīgu.

Piemērs ar vairākiem inline regex modifikatoriem

Izmantojiet šādu regulāro izteiksmi, kas ietver vairākus inline modifikatorus, lai saskaņotu rakstzīmes pēc noteiktas rindas:

(?<=match (?i)eveRything(?-i) after this line\r\n)(?sx).*# comment

kur:

  • (?i) - ieslēdz reģistrjutības ignorēšanu;
  • (?-i) - izslēdz reģistrjutības ignorēšanu;
  • (?s) - iespējo dotall režīmu, ļaujot . saskaņot jaunas rindas rakstzīmes;
  • (?x) - iespējo paplašināto režīmu, ļaujot regulārajā izteiksmē ignorēt atstarpes un komentārus.

Gan Test result, gan Combined result rāda TRUE: tiek saskaņotas rakstzīmes, kas seko konkrētajai rindai.

g modifikatoru nevar norādīt inline. 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 Daudzrindu 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ā izteiksme lauks
Pārrakstīšanas Opcijās atbilst, neatbilst sadaļā Operation nosacījumi
Darbību nosacījumi Opcijās atbilst, neatbilst sadaļā Host name un Host metadata automātiskās reģistrācijas nosacījumi
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