11. Регулярные выражения

Обзор

Zabbix поддерживает расширенные регулярные выражения стандарта POSIX.

Имеется два варианта использования регулярных выражений в Zabbix:

  • ручной ввод регулярного выражения
  • использование глобальных регулярных выражений созданных в Zabbix

Регулярные выражения

Вы можете вручную ввести регулярное выражение в поддерживаемых местах. Обратите внимание, что в этом случае выражение может не начинаться с @, так как этот символ в Zabbix используется как ссылка на глобальные регулярные выражения.

Глобальные регулярные выражения

В Zabbix веб-интерфейсе имеется продвинутый редактор для создания и тестирования сложных регулярных выражений.

После того как регулярное выражение создано, его можно использовать в нескольких местах веб-интерфейса, используя ссылку на его имя с префиксом @, например, @моепользовательскоевыражение.

Для создания глобального регулярного выражения:

  • Перейдите в: Администрирование → Общие
  • Выберите Регулярные выражения в выпадающем списке
  • Нажмите на Новое регулярное выражение

Вкладка Выражения позволяет указать имя регулярного выражения и добавить подвыражения.

Пример создания регулярного выражения

Параметр Описание
Имя Укажите имя регулярного выражения. Разрешены любые Unicode символы.
Выражения Нажмите на Добавить в Блоке выражений для того, чтобы добавить новое подвыражение.
Тип выражения Выберите тип выражения:
Любая строка символов включена - совпадение подстроки
Любая строка символов включена - совпадение любой подстроки из разделенного запятыми списка
Строка символов не включена - совпадение любой строки за исключением указанной подстроки
Результат ИСТИНА - соответствие регулярному выражению
Результат ЛОЖЬ - несоответствие регулярному выражению
Выражение Введите подстроку/регулярное выражение.

В Zabbix имя пользовательского регулярного выражения может содержать запятые, пробелы и т.п. В этих случаях, там где имеется вероятность неверной интерпретации при использовании ссылки (например, запятая в параметре ключа элемента данных) нужно всю ссылку заключить в кавычки, вот таким образом: "@Мое выражение для цели, цели2".
В других местах (например, в свойствах LLD правил) имена регулярных выражение нельзя заключать в кавычки.

Пример

Используйте следующее регулярное выражение в LLD для обнаружения баз данных без учёта базы данных с заданным именем:

^TESTDATABASE$

Выбрано Тип выражения: "Результат ЛОЖЬ". Не совпадает имени, которое содержит строку "TESTDATABASE".

regexp_expr_2.png

Более сложный пример

Пользовательское регулярное выражение может состоять из нескольких подвыражений, и их можно протестировать на вкладке Тест, используя тестовую строку.

Результаты покажут состояние каждого подвыражения и суммарное состояние для всего пользовательского выражения.

Общее состояние пользовательского выражения определяется как Комбинированный результат. Если задано несколько подвыражений, для вычисления Комбинированного результата 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".