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, noklikšķiniet uz Izveidot regulāro izteiksmi un formā ievadiet regulārās izteiksmes parametrus.

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

Parametrs Apraksts
Nosaukums Norādiet regulārās izteiksmes nosaukumu. Ir atļautas jebkādas Unicode rakstzīmes.
Izteiksmes Noklikšķiniet uz Pievienot sadaļā Izteiksmes, lai pievienotu jaunu apakšizteiksmi.
Izteiksmes tips Izvēlieties izteiksmes tipu:
Satur virkni - atbilst apakšvirknei.
Satur jebkuru apakšvirkni no saraksta - atbilst jebkurai apakšvirknei no norobežota saraksta. Norobežotais saraksts ietver komatu ,, punktu . vai slīpsvītru /.
Nesatur virkni - atbilst jebkurai virknei, izņemot apakšvirkni.
Atbilst regulārajai izteiksmei - atbilst regulārajai izteiksmei.
Neatbilst regulārajai izteiksmei - neatbilst regulārajai izteiksmei.
Izteiksme Ievadiet apakšvirkni/regulāro izteiksmi.
Maksimālais garums: 2048 rakstzīmes.
Norobežotājs Komats ,, punkts . vai slīpsvītra /, lai atdalītu teksta virknes regulārajā izteiksmē. Šis parametrs ir aktīvs tikai tad, ja ir izvēlēts izteiksmes tips Satur jebkuru apakšvirkni no saraksta.
Reģistrjutīgs Atzīmes rūtiņa, lai norādītu, vai regulārā izteiksme ir jutīga pret burtu lielumu.
Apraksts Ievadiet regulārās izteiksmes aprakstu.
Testa izteiksme 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, kas satur slīpsvītru, bez kļūdām.

Pielāgots regulārās izteiksmes nosaukums Zabbix var saturēt komatus, atstarpes utt. Gadījumos, kad tas var novest pie nepareizas interpretācijas, uz to atsaucoties (piemēram, komats vienuma atslēgas parametrā), visu atsauci var ietvert pēdiņās, piemēram, šādi: "\@My custom regexp for purpose1, purpose2".
Regulārās izteiksmes nosaukumus citās vietās nedrīkst likt pēdiņās (piemēram, LLD noteikuma rekvizītos).

Kad regulārā izteiksme ir izveidota, to var izmantot vairākās vietās lietotāja saskarne, 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