Регулярные выражения
Обзор
Perl Compatible Regular Expressions (PCRE, PCRE2) поддерживаются в Zabbix.
В Zabbix есть два способа использования регулярных выражений:
- Ввод регулярного выражения вручную
- Использование глобального регулярного выражения, созданного в Zabbix
Регулярные выражения
Вы можете вручную ввести регулярное выражение в поддерживаемых местах.
Обратите внимание, что выражение не должно начинаться с @, так как этот символ используется в Zabbix для ссылки на глобальные регулярные выражения.
При использовании регулярных выражений возможно исчерпание памяти стека. Подробнее см. в PCRE PERFORMANCE.
Обратите внимание, что при сопоставлении в многострочном режиме якоря ^ и $ соответствуют началу и концу каждой строки соответственно, а не началу и концу всей строки.
Также см. примеры правильного экранирования в различных контекстах.
Глобальные регулярные выражения
Zabbix предоставляет в веб-интерфейсе расширенный редактор для создания и тестирования сложных регулярных выражений.
Чтобы открыть его, перейдите в Administration > General > Regular expressions.
Zabbix включает ряд предопределенных глобальных регулярных выражений в наборе данных по умолчанию.

Вы можете фильтровать список регулярных выражений по имени и описанию, чтобы найти нужные выражения.
Конфигурация
Чтобы создать глобальное регулярное выражение, нажмите Создать регулярное выражение и введите параметры регулярного выражения в форме.

Все обязательные поля ввода отмечены красной звездочкой.
| Параметр | Описание | |
|---|---|---|
| Имя | Укажите имя регулярного выражения. Допускаются любые символы Unicode. | |
| Выражения | Нажмите Добавить в разделе Выражения, чтобы добавить новое подвыражение. | |
| Тип выражения | Выберите тип выражения: Содержит строку - совпадает с подстрокой. Содержит любую подстроку из списка - совпадает с любой подстрокой из списка, разделенного разделителем. В качестве разделителя можно использовать запятую ,, точку . или косую черту /.Не содержит строку - совпадает с любой строкой, кроме подстроки. Соответствует регулярному выражению - совпадает с регулярным выражением. Не соответствует регулярному выражению - не совпадает с регулярным выражением. |
|
| Выражение | Введите подстроку/регулярное выражение. Максимальная длина: 2048 символов. |
|
| Разделитель | Запятая ,, точка . или косая черта / для разделения текстовых строк в регулярном выражении. Этот параметр активен только при выборе типа выражения Содержит любую подстроку из списка. |
|
| С учетом регистра | Флажок, указывающий, чувствительно ли регулярное выражение к регистру букв. | |
| Описание | Введите описание для регулярного выражения. | |
| Тестовое выражение | Значение, используемое для проверки регулярного выражения. | |
Косая черта / в выражении воспринимается буквально, а не как разделитель.
Это позволяет сохранять выражения, содержащие косую черту, без ошибок.
Пользовательское имя регулярного выражения в Zabbix может содержать запятые, пробелы и т. д.
В случаях, когда это может привести к неверной интерпретации при ссылке на него (например, запятая в параметре ключа элемента данных), всю ссылку можно заключить в кавычки, например: "\@My custom regexp for purpose1, purpose2".
Имена регулярных выражений не должны заключаться в кавычки в других местах (например, в свойствах правила LLD).
После создания регулярного выражения его можно использовать в нескольких местах в веб-интерфейсе, обращаясь к нему по имени с префиксом @, например @mycustomregexp.
Кнопки формы
Кнопки в нижней части формы позволяют выполнять различные операции:
| Button | Description |
|---|---|
![]() |
Добавить регулярное выражение. Эта кнопка доступна только для новых регулярных выражений. |
![]() |
Обновить свойства регулярного выражения. |
![]() |
Создать еще одно регулярное выражение на основе свойств текущего регулярного выражения. |
![]() |
Проверить регулярное выражение и его подвыражения на предоставленном значении. |
![]() |
Удалить регулярное выражение. |
![]() |
Отменить редактирование свойств регулярного выражения. |
Проверка регулярного выражения
Вы можете проверить регулярное выражение и его подвыражения, введя значение в поле Test expression и нажав кнопку Test button.

В столбце Test result отображается статус каждого подвыражения.
Поле Combined result отображает общий статус регулярного выражения.
Если определено несколько подвыражений, Zabbix использует логический оператор AND для вычисления Combined result; то есть, если хотя бы один результат равен False, Combined result также будет False.
Регулярные выражения по умолчанию для глобальных правил
Набор данных по умолчанию включает следующие предопределенные глобальные регулярные выражения:
| Name | Expression | Matches |
|---|---|---|
| File systems for discovery | ^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$ |
"btrfs" or "ext2" or "ext3" or "ext4" or "reiser" or "xfs" or "ffs" or "ufs" or "jfs" or "jfs2" or "vxfs" or "hfs" or "apfs" or "refs" or "ntfs" or "fat32" or "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" or "Virtual memory" or "Memory buffers" or "Cached memory" or "Swap space". |
| Windows service names for discovery | ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ |
"MMCSS" or "gupdate" or "SysmonLog" or strings matching "clr_optimization_v2.0.50727_32" or "clr_optimization_v4.0.30319_32", where each dot can be replaced by any character except a newline. |
| Windows service startup states for discovery | ^(automatic|automatic delayed)$ |
"automatic" or "automatic delayed". |
Импорт/экспорт регулярного выражения
Вы можете импортировать или экспортировать глобальные регулярные выражения, как описано на странице настройки экспорта/импорта Regular expressions.
Примеры
Пример исключения точной строки
Используйте следующее выражение в низкоуровневом обнаружении, чтобы обнаруживать базы данных, кроме базы данных с определенным именем:
^TESTDATABASE$

И Test result, и Combined result отображают FALSE: имя совпадает с "TESTDATABASE", поэтому условие Does not match regular expression не выполняется.
Пример с встроенным модификатором regex для нечувствительного к регистру совпадения
Используйте следующее регулярное выражение, которое включает встроенный модификатор (?i) для выполнения нечувствительного к регистру совпадения символов "error":
(?i)error

И Test result, и Combined result отображают TRUE: символы "error" совпадают даже при выбранном Case sensitive, потому что встроенный модификатор (?i) делает совпадение нечувствительным к регистру.
Пример с несколькими встроенными модификаторами регулярных выражений
Используйте следующее регулярное выражение, которое включает несколько встроенных модификаторов, чтобы сопоставить символы после определенной строки:
(?<=match (?i)eveRything(?-i) after this line\r\n)(?sx).*# comment
где:
(?i)- включает нечувствительное к регистру сопоставление;(?-i)- отключает нечувствительное к регистру сопоставление;(?s)- включает режим dotall, позволяя.сопоставляться с символами новой строки;(?x)- включает расширенный режим, позволяя игнорировать пробелы и комментарии в регулярном выражении.

И Test result, и Combined result отображают TRUE: сопоставляются символы, следующие за указанной строкой.
Модификатор g нельзя указывать встроенно.
Список доступных модификаторов можно найти на странице man pcresyntax.
Для получения дополнительной информации о синтаксисе PCRE см. документацию PCRE в формате HTML.
Поддержка регулярных выражений по расположению
| Расположение | Регулярное выражение | Глобальное регулярное выражение | Многострочное сопоставление | Комментарии | |
|---|---|---|---|---|---|
| Элементы данных агента | |||||
| 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 traps | |||||
| snmptrap[] | Да | Да | Нет | параметр regexp |
|
| Предобработка значения элемента данных | Да | Нет | Нет | параметр pattern |
|
| Функции для триггеров/вычисляемых элементов данных | |||||
| count() | Да | Да | Да | параметр pattern, если параметр operator имеет значение regexp или iregexp |
|
| countunique() | Да | Да | |||
| find() | Да | Да | |||
| logeventid() | Да | Да | Нет | параметр pattern |
|
| logsource() | |||||
| Низкоуровневое обнаружение | |||||
| Фильтры | Да | Да | Нет | поле Regular expression | |
| Переопределения | Да | Нет | в условиях matches, does not match для операций Operation | ||
| Условия действий | Да | Нет | Нет | в условиях автрорегистрации matches, does not match для Host name и Host metadata | |
| Скрипты | Да | Да | Нет | поле Input validation rule | |
| Веб-мониторинг | Да | Нет | Да | Variables с префиксом regex: поле Required string |
|
| Контекст пользовательского макроса | Да | Нет | Нет | в контексте макроса с префиксом regex: | |
| Функции макросов | |||||
| regsub() | Да | Нет | Нет | параметр pattern |
|
| iregsub() | |||||
| Индикаторы ссылок на картах | Да | Нет | Нет | поле Pattern (для текстовых элементов данных) | |
| Сопоставление значков | Да | Да | Нет | поле Expression | |
| Сопоставление значений | Да | Нет | Нет | поле Value, если тип сопоставления — regexp |
|
| Параметры конфигурации агента | |||||
| AllowKeyRegexp | Да | Нет | Нет | Шаблон | |
| DenyKeyRegexp | |||||





