This is a translation of the original English documentation page. Help us make it better.

12 Регуларни изрази

Преглед

Perl компатибилни регуларни изрази (PCRE, PCRE2) су подржани у Zabbix-у.

Постоје два начина коришћења регуларних израза у Zabbix-у:

  • ручно уношење регуларног израза
  • коришћењем глобалног регуларног израза креираног у Zabbix-у

Регуларни изрази

Можете ручно да унесете регуларни израз на подржана места. Напомена да израз можда не почиње са @ јер се тај симбол користи у Zabbix-у за референцирање глобалних регуларних израза.

Могуће је да останете без стека када користите регуларни израз. Погледајте pcrestack man page за више информација.

Имајте на уму да се у вишелинијском поклапању ознаке ^ и $ одговарају почетку/крају сваког реда респективно, уместо почетка/краја целог низа.

Погледајте такође примере за correct escaping у различитим контекстима.

Глобални регуларни изрази

Постоји напредни едитор за креирање и тестирање сложених регуларних израза у Zabbix корисничком интерфјесу.

Када се регуларни израз креира на овај начин, може се користити на неколико места у фронтенду позивањем на његово име, са префиксом @, на пример, @mycustomregexp.

Да бисте креирали глобални регуларни израз:

  • Идите на: Администрација → Опште
  • Изаберите Регуларни изрази из падајућег менија
  • Кликните на Нови регуларни израз

Картица Изрази омогућава подешавање имена регуларног израза и додавање подизраза.

Сва обавезна поља за унос су означена црвеном звездицом.

Parameter Description
Име Поставите име регуларног израза. Дозвољени су било који Unicode знакови.
Изрази Кликните на Додај у блоку Изрази да бисте додали нови подизраз.
Тип израза Изаберите тип израза:
Низ знакова укључен - подудара се са поднизом
Било који низ знакова укључен - подудара се са било којим поднизом из листе са разграничењима. Листа са разграничењима укључује зарез (,), тачку (.) или косу црту (/).
Низ знакова који није укључен - подудара се са било којим низом осим поднизом
Резултат је ТАЧНО - подудара се са регуларним изразом
Резултат је НЕТАЧНО - не подудара се са регуларним изразом
Израз Унесите подниз/регуларни израз.
Разграничник Зарез (,), тачка (.) или коса црта (/) за одвајање текстуалних низова у регуларном изразу. Овај параметар је активан само када је изабран тип израза "Any character string included".
Осетљиво на велика и мала слова Поље за потврду које одређује да ли је регуларни израз осетљив на велика слова.

Коса црта унапред (/) у изразу се третира дословно, а не као разграничник. На овај начин је могуће сачувати изразе који садрже косу црту, без грешака.

Назив прилагођеног регуларног израза у Zabbix-у може садржај зарезе, размаке итд. У случајевима где то може довести до погрешног тумачења приликом референцирања (на пример, зарез у параметру кључа ставке), цела референца може бити стављена под наводнике овако: "@My custom regexp for purpose1, purpose2".
Називи регуларних израза не смеју бити под наводницима на другим локацијама (на пример, у својствима LLD правила).

На картици Тест регуларни израз и његови подизрази могу се тестирати навођењем тест стринга.

Резултати приказују статус сваког подизраза и укупан статус прилагођеног израза.

Укупан статус прилагођеног израза је дефинисан као Комбиновани резултат. Ако је дефинисано неколико подизраза, Zabbix користи логички оператор И да би израчунао Комбиновани резултат. То значи да ако је барем један резултат Нетачно, Комбиновани резултат такође има статус Нетачно.

Подразумевани глобални регуларни изрази

Zabbix долази са неколико глобалних регуларних израза у свом подразумеваном скупу података.

Name Expression Matches
Фајл системи за откривање ^(btrfs|ext2|ext3|ext4|jfs|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|refs|apfs|ntfs|fat32|zfs)$ "btrfs" или "ext2" или "ext3" или "ext4" или "jfs" или "reiser" или "xfs" или "ffs" или "ufs" или "jfs" или "jfs2" или "vxfs" или "hfs" или "refs" или "apfs" или "ntfs" или "fat32" или "zfs"
Мрежни интерфејси за откривање ^Интерфејс за повратну петљу софтвера Низови који почињу са "Интерфејс за повратну петљу софтвера".
^lo$ "lo"
^(In)?[Ll]oop[Bb]ack[0-9._]*$ Низови који опционо почињу са "In", затим имају "L" или "l", затим "oop", затим "B" или "b", па "ack", који опционо могу бити праћени било којим бројем цифара, тачака или доњих цртица.
^NULL[0-9.]*$ Низови који почињу са "NULL" опционо праћени било којим бројем цифара или тачака.
^[Ll]o[0-9.]*$ Низови који почињу са "Lo" или "lo" и опционо праћени било којим бројем цифара или тачака.
^[Ss]system$ "Систем" или "систем"
^Nu[0-9.]*$ Низови који почињу са "Nu" опционо праћени било којим бројем цифара или тачака.
Уређаји за складиштење за SNMP откривање ^(Физичка меморија|Виртуелна меморија|Бафери меморије|Кеширана меморија|Простор за размену)$ "Физичка меморија" или "Виртуелна меморија" или "Бафери меморије" или "Кеширана меморија" или "Простор за размену"
Називи Windows сервиса за откривање ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ "MMCSS" или "gupdate" или "SysmonLog" или стрингови попут "clr_optimization_v2.0.50727_32" и "clr_optimization_v4.0.30319_32" где уместо тачака можете ставити било који знак осим новог реда.
Стања покретања Windows сервиса за откривање ^(automatic|automatic delayed)$ "automatic" or "automatic delayed"

Примери

Пример 1

Употреба следећег израза у откривању ниског нивоа за откривање базе података осим базе података са одређеним именом:

^TESTDATABASE$

regexp_expr_2.png

Изабран Тип израза: "Резултат је FALSE". Не одговара имену, који садржи стринг "TESTDATABASE".

Пример са уграђеним модификатором регуларног израза

Коришћење следећег регуларног израза укључујући уграђени модификатор (?i) са поклапањем са карактером "error":

(?i)error

regexp_expr_3a.png

Изабран Тип израза: "Резултат је TRUE". Карактери "error" су успешно поклопљени.

Још један пример са уграђеним модификатором регуларног израза

Употреба следећег регуларног израза укључујући више уграђених модификатора који одговарају карактерима после одређене линије:

(?<=match (?i)everything(?-i) after this line\n)(?sx).*# додајемо модификатор s да бисмо дозволили да. одговарају карактерима новог реда

regexp_expr_4_new.png

Изабрани тип израза: "Резултат је TRUE". Карактери после одређене линије се подударају.

g модификатор се не може навести унутар реда. Листа доступних модификатора може се наћи у pcresyntax man page. За више информација о PCRE синтакси погледајте PCRE HTML документацију.

Подршка за регуларне изразе по локацији

Location Regular expression Global regular expression Multiline matching Comments
Ставке агента
eventlog[] Да Да Да параметри regexp, severity, source, eventid
eventlog.count[] regexp, severity, source, eventid
log[] regexp параметар
log.count[]
logrt[] Да/Не Параметар regexp подржава оба, параметар file_regexp подржава само неглобалне изразе
logrt.count[]
proc.cpu.util[] Не Не Параметар cmdline
proc.get[]
proc.mem[]
proc.num[]
sensor[] Параметри device и sensor на Linux-у 2.4
system.hw.macaddr[] Параметар interface
system.sw.packages[] regexp параметар
system.sw.packages.get[] regexp параметар
vfs.dir.count[] regex_incl, regex_excl, regex_excl_dir параметри
vfs.dir.get[] regex_incl, regex_excl, regex_excl_dir параметри
vfs.dir.size[] regex_incl, regex_excl, regex_excl_dir параметри
vfs.file.regexp[] Да regexp параметар
vfs.file.regmatch[]
web.page.regexp[]
SNMP замке
snmptrap[] Да Да Не параметар regexp
Претходна обрада вредности ставке Да Не Не параметар pattern
Функције за окидаче/израчунате ставке
count() Да Да Да параметар pattern ако је параметар operator regexp или iregexp
countunique() Да Да
find() Да Да
logeventid() Да Да Не параметар pattern
logsource()
Откривање ниског нивоа
Филтери Да Да Не Поље регуларног израза
Замењује Да Не У подударањима, не подудара се са опцијама за услове Операције
Услови акције Да Не Не У подударањима, не подудара се са опцијама за услове аутоматске регистрације Име домаћина и Метаподаци домаћина
Скрипте Да Да Не Поље за правило валидације уноса
Веб праћење Да Не Да Променљиве са префиксом regex:
Поље Обавезни стринг
Кориснички макро контекст Да Не Не У макро контексту са префиксом regex:
Макро функције
regsub() Да Не Не параметар pattern
iregsub()
Мапирање икона Да Да Не Поље Израз
Мапирање вредности Да Не Не Поље Вредност ако је тип мапирања regexp