10 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
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 atsaucēm.
Izmantojot regulārās izteiksmes, var beigties steks. Plašāku informāciju skatiet pcrestack man lapā.
Ņemiet vērā, ka vairākrindu atbilstības gadījumā enkuri ^ un $ atbilst attiecīgi 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:
- Dodieties uz: Administration > General
- Nolaižamajā sarakstā atlasiet Regular expressions
- 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ā var būt 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 | 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 utt.
Tajos gadījumos, kad tas var novest pie nepareizas interpretācijas, veicot atsauci (piemēram, komats vienuma atslēgas parametrā), visu atsauci var ievietot pēdiņās šādi: "\@My custom regexp for purpose1, purpose2".
Regulāro izteicienu nosaukumus citās vietās 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, arī Combined result 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", pēc tam "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", kam pēc izvēles var sekot jebkurš ciparu vai punktu skaits. | |
^[Ll]o[0-9.]*$ |
Virknes, kas sākas ar "Lo" vai "lo" un kam pēc izvēles var sekot jebkurš ciparu vai punktu skaits. | |
^[Ss]ystem$ |
"System" vai "system" | |
^Nu[0-9.]*$ |
Virknes, kas sākas ar "Nu", kam pēc izvēles var sekot 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 zemā līmeņa atklāšanā, lai atklātu datubāzes, izņemot datubāzi ar noteiktu nosaukumu:
^TESTDATABASE$

Izvēlētais izteiksmes tips: "Rezultāts ir 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

Izvēlētais Expression type: "Result is TRUE". Rakstzīmes "error" tiek atrastas.
Vēl viens 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 vairākus iekļautos modifikatorus, lai atrastu rakstzīmes aiz noteiktas rindas:
(?<=match (?i)everything(?-i) after this line\n)(?sx).*# we add s modifier to allow . match newline characters

Izvēlētais izteiksmes tips: "Result is TRUE". Rakstzīmes aiz noteiktas rindas tiek atrastas.
g modifikatoru nevar norādīt rindā. Pieejamo modifikatoru sarakstu var atrast pcresyntax man page. Plašāku informāciju par PCRE sintaksi skatiet PCRE HTML documentation.
Regulāro izteiksmju 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[] | Jā | Jā | Jā | 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[] | Nē | Nē | 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[] | Jā | regexp parametrs |
|||
| vfs.file.regmatch[] | |||||
| web.page.regexp[] | |||||
| SNMP slazdi | |||||
| snmptrap[] | Jā | Jā | Nē | regexp parametrs |
|
| Vienuma vērtības priekšapstrāde | Jā | Nē | Nē | pattern parametrs |
|
| Funkcijas trigeriem/aprēķinātajiem vienumiem | |||||
| count() | Jā | Jā | Jā | pattern parametrs, ja operator parametrs ir regexp vai iregexp |
|
| countunique() | Jā | Jā | |||
| find() | Jā | Jā | |||
| logeventid() | Jā | Jā | Nē | pattern parametrs |
|
| logsource() | |||||
| Zema līmeņa atklāšana | |||||
| Filtri | Jā | Jā | Nē | Lauks Regular expression | |
| Aizstāšanas | Jā | Nē | Opcijās matches, does not match nosacījumiem Operation | ||
| Darbību nosacījumi | Jā | Nē | Nē | Opcijās matches, does not match automātiskās reģistrācijas nosacījumiem Host name un Host metadata | |
| Skripti | Jā | Jā | Nē | Lauks Input validation rule | |
| Tīmekļa uzraudzība | Jā | Nē | Jā | Variables ar prefiksu regex: Lauks Required string |
|
| Lietotāja makro konteksts | Jā | Nē | Nē | Makro kontekstā ar prefiksu regex: | |
| Makro funkcijas | |||||
| regsub() | Jā | Nē | Nē | pattern parametrs |
|
| iregsub() | |||||
| Saišu indikatori kartēs | Jā | Nē | Nē | Lauks Pattern (teksta vienumiem) | |
| Ikonu kartēšana | Jā | Jā | Nē | Lauks Expression | |
| Vērtību kartēšana | Jā | Nē | Nē | Lauks Value, ja kartēšanas tips ir regexp |
|