Zabbix поддерживает Perl совместимые регулярные выражения (PCRE).
Имеется два варианта использования регулярных выражений в Zabbix:
Вы можете вручную ввести регулярное выражение в поддерживаемых местах. Обратите внимание, что в этом случае выражение может не начинаться с @, так как этот символ в Zabbix используется как ссылка на глобальные регулярные выражения.
В Zabbix веб-интерфейсе имеется продвинутый редактор для создания и тестирования сложных регулярных выражений.
После того как регулярное выражение создано, его можно использовать в нескольких местах веб-интерфейса, используя ссылку на его имя с префиксом @, например, @мое_пользовательское_выражение.
Для создания глобального регулярного выражения:
Вкладка Выражения позволяет указать имя регулярного выражения и добавить подвыражения.
Все обязательные поля ввода отмечены красной звёздочкой.
Параметр | Описание | |
---|---|---|
Имя | Укажите имя регулярного выражения. Разрешены любые Unicode символы. | |
Выражения | Нажмите на Добавить в Блоке выражений для того, чтобы добавить новое подвыражение. | |
Тип выражения | Выберите тип выражения: Строка символов включена - совпадение по подстроке Любоая строка символов включена - совпадение по любой из подстрок из списка с разделителями. Разделители в списке включают в себя запятую (,), точку (.) или прямую косую черту (/). Строка символов не включена - совпадение по любой строке за исключением подстроки Результат ПРАВДА - совпадение с регулярным выражением Результат ЛОЖЬ - отсутствие совпадения с регулярным выражением |
|
Выражение | Укажите подстроку/регулярное выражение. | |
Разделитель | Запятая (,), точка (.) или прямая косая черта (/) для разделения текстовых строк в регулярном выражении. Этот параметр доступен только когда выбран режим типа выражения "Любоая строка символов включена". | |
Регистрозависимое | Отметьте эту опцию чтобы указать является ли регулярное выражение чувствительным к регистру букв. |
Начиная с Zabbix 2.4.0, косая черта (/) в выражении воспринимается буквально, нежели как разделитель. Таким образом возможно сохранить выражения содержащие косую черту, тогда как ранее такая запись приводила к ошибке.
В Zabbix имя пользовательского регулярного выражения может содержать запятые, пробелы и т.п. В этих случаях, там где имеется вероятность неверной интерпретации при использовании ссылки (например, запятая в параметре ключа элемента данных) нужно всю ссылку заключить в кавычки, вот таким образом: "@Мое выражение для цели, цели2".
В других местах (например, в свойствах LLD правил) имена регулярных выражение нельзя заключать в кавычки.
Использование следующего регулярного выражения в LLD для обнаружения баз данных не будет принимать во внимание базу данных с заданным именем:
Выбран Тип выражения: "Результат ЛОЖЬ". Не соответствует имени, содержащему строку "TESTDATABASE".
Использование следующего регулярного выражения, которое включает inline модификатор (?i) для поиска соответствия символов "error":
Выбран Тип выражения: "Релультат ПРАВДА". Символы "error" совпадают.
Использование следующего регулярного выражения, которое включает несколько inline модификаторов для поиска соответствия символов после указанной строки:
(?<=match (?i)everything(?-i) after this line\n)(?sx).*# мы добавили s модификатор, чтобы разрешить . соответствие символам перехода на новую строку
Выбран Тип выражения: "Релультат ПРАВДА". Символы после указанной строки совпадают.
Модификатор g нельзя указывать в строке. Список доступных модификаторов можно найти на странице помощи по pcresyntax [en]. Для получения более подробной информации о синтаксисе PCRE, пожалуйста, обратитесь к PCRE HTML документации [en].
Пользовательское регулярное выражение может состоять из нескольких подвыражений, и их можно протестировать на вкладке Тест, используя тестовую строку.
Результаты покажут состояние каждого подвыражения и суммарное состояние для всего пользовательского выражения.
Общее состояние пользовательского выражения определяется как Комбинированный результат. Если задано несколько подвыражений, для вычисления Комбинированного результата Zabbix использует логический оператор И. Такое поведение означает, если по крайней мере один Результат является ЛОЖЬЮ, тогда Комбинированный результат будет также иметь состояние Ложь.
Глобальное регулярное выражение | Выражение | Описание |
---|---|---|
File systems for discovery | ^(btrfs\|ext2\|ext3\|ext4\|jfs\|reiser\|xfs\|ffs\|ufs\|jfs\|jfs2\|vxfs\|hfs\|refs\|ntfs\|fat32\|zfs)$ |
Соответствие "btrfs" или "ext2" или "ext3" или "ext4" или "jfs" или "reiser" или " xfs" или "ffs" или "ufs" или "jfs" или "jfs2" или "vxfs" или "hfs" или "refs" или "ntfs" или "fat32" или "zfs" |
Network interfaces for discovery | ^Software Loopback Interface |
Соответствие строкам, которые начинаются с "Software Loopback Interface" |
^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]ystem$ |
Соответствие "System" или "system" | |
^Nu[0-9.]*$ |
Соответствие строк, которые начинаются с "Nu" и затем, опционально следует любое количество цифр или точек | |
Storage devices for SNMP discovery | ^(Physical memory\|Virtual memory\|Memory buffers\|Cached memory\|Swap space)$ |
Соответствие "Physical memory" или "Virtual memory" или "Memory buffers" или "Cached memory" или "Swap space" |
Windows service names for discovery | ^(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 service startup states for discovery | ^(automatic\|automatic delayed)$ |
Соответствие "automatic" или "automatic delayed". |
Назначение | Регулярное выражение | Глобальное регулярное выражение | Комментарии | |
---|---|---|---|---|
Элементы данных агента | ||||
eventlog[] | Да | Да | Параметры регулярное выражение , важность , источник , eventid |
|
log[] | Параметр регулярное выражение |
|||
log.count[] | ||||
logrt[] | Да/Нет | Параметр регулярное выражение поддерживает оба варианта, параметр регулярное_выражение_файла поддерживает только не глобальные выражения |
||
logrt.count[] | ||||
proc.cpu.util[] | Нет | Параметр cmdline |
||
proc.mem[] | ||||
proc.num[] | ||||
sensor[] | Параметры устройство и датчик в Linux 2.4 |
|||
system.hw.macaddr[] | Параметр интерфейс |
|||
system.sw.packages[] | Параметр пакет |
|||
vfs.dir.count[] | Параметры regex_вкл и regex_искл |
|||
vfs.dir.size[] | Параметры regex_вкл и regex_искл |
|||
vfs.file.regexp[] | Параметр регулярное выражение |
|||
vfs.file.regmatch[] | ||||
web.page.regexp[] | ||||
SNMP трапы | ||||
snmptrap[] | Да | Да | Пареметр regexp |
|
Предобработка значений элементов данных | Да | Нет | Параметр шаблон |
|
Функции триггеров | ||||
count() | Да | Да | Параметр шаблон , если параметр оператор равен regexp или iregexp |
|
logeventid() | Параметр шаблон |
|||
logsource() | ||||
iregexp() | ||||
regexp() | ||||
Низкоуровневое обнаружение | Да | Да | Поле Фильтр | |
Веб-мониторинг | Да | Нет | Переменные с префиком regex: Поле Требуемая строка |
|
Функции макросов | ||||
regsub() | Да | Нет | Параметр шаблон |
|
iregsub() | ||||
Соответствие иконок | Да | Да | Поле Выражение |
Location | Regular expression | Global regular expression | Comments | |
---|---|---|---|---|
Agent items | ||||
eventlog[] | Yes | Yes | regexp , severity , source , eventid parameters |
|
log[] | regexp parameter |
|||
log.count[] | ||||
logrt[] | Yes/No | regexp parameter supports both, file_regexp parameter supports non-global expressions only |
||
logrt.count[] | ||||
proc.cpu.util[] | No | cmdline parameter |
||
proc.mem[] | ||||
proc.num[] | ||||
sensor[] | device and sensor parameters on Linux 2.4 |
|||
system.hw.macaddr[] | interface parameter |
|||
system.sw.packages[] | package parameter |
|||
vfs.dir.count[] | regex_incl , regex_excl , regex_excl_dir parameters |
|||
vfs.dir.size[] | regex_incl , regex_excl , regex_excl_dir parameters |
|||
vfs.file.regexp[] | regexp parameter |
|||
vfs.file.regmatch[] | ||||
web.page.regexp[] | ||||
SNMP traps | ||||
snmptrap[] | Yes | Yes | regexp parameter |
|
Item value preprocessing | Yes | No | pattern parameter |
|
Trigger functions | ||||
count() | Yes | Yes | pattern parameter if operator parameter is regexp or iregexp |
|
logeventid() | pattern parameter |
|||
logsource() | ||||
iregexp() | ||||
regexp() | ||||
Low-level discovery | ||||
Filters | Yes | Yes | Regular expression field | |
Overrides | Yes | No | In matches, does not match options for Operation conditions | |
Action conditions | Yes | No | In matches, does not match options for Host name and Host metadata autoregistration conditions | |
Web monitoring | Yes | No | Variables with a regex: prefix Required string field |
|
User macro context | Yes | No | In macro context with a regex: prefix Supported since Zabbix 5.0.2. |
|
Macro functions | ||||
regsub() | Yes | No | pattern parameter |
|
iregsub() | ||||
Icon mapping | Yes | Yes | Expression field |