Статьи

12. Регулярні вирази [Zabbix Documentation 3.4]

  1. огляд
  2. Регулярні вирази
  3. Глобальні регулярні вирази
  4. приклад
  5. Приклад з використанням inline модифікатора регулярного виразу
  6. Інший приклад з використанням inline модифікатора регулярного виразу
  7. Більш складний приклад

огляд

Zabbix підтримує Perl сумісні регулярні вирази (PCRE).

Є два варіанти використання регулярних виразів в Zabbix:

  • введення регулярного виразу вручну

  • використання глобальних регулярних виразів створених в Zabbix

Регулярні вирази

Ви можете вручну ввести регулярний вираз в підтримуваних місцях. Зверніть увагу, що в цьому випадку вираз може не починатися з @, так як цей символ в Zabbix використовується як посилання на глобальні регулярні вирази.

Глобальні регулярні вирази

У Zabbix веб-інтерфейсі є просунутий редактор для створення і тестування складних регулярних виразів.

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

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

  • Перейдіть в: Адміністрування → Загальні

  • Виберіть Регулярні вирази в випадаючому списку

  • Натисніть на Новий регулярний вираз

Вкладка Вирази дозволяє вказати ім'я регулярного виразу і додати подвираженія.

Параметр Опис Ім'я Вкажіть ім'я регулярного виразу. Дозволені будь Unicode символи. Вирази Натисніть на Додати в Блоці виразів для того, щоб додати нове підвираз. Тип виразу Виберіть тип виразу:
Рядок символів включена - збіг по підрядку
Любо рядок символів включена - збіг по кожній із подстрок зі списку з роздільниками. Роздільники в списку включають в себе кому (,), точку (.) Або пряму похилу лінію (/).
Рядок символів не включена - збіг по будь-якому рядку за винятком подстроки
Результат ПРАВДА - збіг з регулярним виразом
Результат БРЕХНЯ - відсутність збігу з регулярним виразом Вираз Вкажіть подстроку / регулярний вираз. Роздільник Кома (,), крапка (.) Або пряма коса риска (/) для поділу текстових рядків в регулярному виразі. Цей параметр доступний лише якщо вибрано режим типу виразу "Любо рядок символів включена". Чутливі до регістру Відзначте цю опцію щоб вказати чи є регулярний вираз чутливим до регістру букв.

Починаючи з Zabbix 2.4.0, коса риска (/) в вираженні сприймається буквально, ніж як роздільник. Таким чином можливо зберегти вираження містять косу риску, тоді як раніше такий запис приводила до помилки.

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

приклад

Використання наступного регулярного виразу в LLD для виявлення баз даних не буде брати до уваги базу даних з заданим ім'ям:

^ TESTDATABASE $

Обрано Тип виразу: "Результат БРЕХНЯ". Не збігається з назвою, що містить рядок "TESTDATABASE".

Приклад з використанням inline модифікатора регулярного виразу

Використання наступного регулярного виразу, яке включає inline модифікатор (? I) для пошуку відповідності символів "error":

(? I) error

Обрано Тип виразу: "Релультат ПРАВДА". Символи "error" збігаються.

Інший приклад з використанням inline модифікатора регулярного виразу

Використання наступного регулярного виразу, яке включає декілька 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 | Swa p 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".

Підтримка регулярних виразів за призначенням

Призначення Підтримка регулярних виразів Підтримка глобальних регулярних виразів Коментарі Функції макросів regsub () Так Ні Параметр шаблон iregsub () Функції тригерів count () Так Так Параметр шаблон, якщо параметр оператор є regexp або iregexp logeventid () Параметр шаблон iregexp () regexp () Низькорівневі виявлення Так Так Поле Фільтр Веб-моніторинг Так Ні Змінні в префіксом regex:
Поле Необхідна рядок Елементи даних Zabbix агента eventlog [] Так Так Параметри регулярний вираз, важливість, джерело, eventid log [] Параметр регулярний вираз log.count [] logrt [] Так / Ні Параметр регулярний вираз підтримує обидва варіанти, параметр файл_regexp може не підтримувати глобальні регулярні вирази тільки logrt.count [] proc.cpu.util [] Ні Параметр cmdline proc.mem [] proc.num [] sensor [] Параметри пристрій і сенсор в Linux 2.4 system.hw.macaddr [] Параметр інтерфейс system.sw .packages [] Параметр пакет vfs.dir.size [] Параметри regex_вкл і regex_іскл vfs.file.regexp [] Параметр регулярний вираз vfs.file.regmatch [] web.page.regexp [] SNMP трапи snmptrap [] Так Так Параметр регулярний вираз Відповідність іконок Так Так Поле Вираз Передобробка значень елементів даних Так Ні Параметр шаблон

Новости