3. Примеры предобработки

Обзор

В этом разделе представлены примеры использования шагов предобработки для выполнения некоторых практических задач.

Фильтрация записей журнала событий VMware

В этом примере используется шаг предобработки Совпадает с регулярным выражением для фильтрации ненужных событий из журнала событий VMware.

1. На рабочем узле сети VMware Hypervisor проверьте, что элемент данных vmware.eventlog присутствует и работает корректно. Обратите внимание, что элемент данных журнала событий уже может присутствовать на гипервизоре, если при создании узла сети был привязан шаблон VMware.

2. На узле сети VMware Hypervisor создайте зависимый элемент данных типа Log и укажите элемент данных журнала событий в качестве его мастер-элемента данных.

3. На вкладке Preprocessing зависимого элемента данных нажмите Add, чтобы создать шаг предобработки, и выберите Matches regular expression из выпадающего списка. Затем укажите один из следующих шаблонов:

  • Для фильтрации всех событий журнала:
.* logged in .*
  • Для фильтрации строк, содержащих имена пользователей после "User":
\bUser\s+\K\S+

Если регулярное выражение не совпадает, зависимый элемент данных становится неподдерживаемым с соответствующим сообщением об ошибке. Чтобы избежать этого, установите флажок Custom on fail и выберите такой вариант, как отбрасывание значения или установка пользовательского значения. Обратите внимание, что отброшенные значения не сохраняются в базе данных; в результате триггеры не вычисляются, а данные трендов не создаются.

В качестве альтернативы можно использовать шаг предобработки Regular expression для извлечения совпадающих групп и управления выводом:

  • Для извлечения и вывода всего события журнала, содержащего "logged in", укажите следующие параметры:
Pattern: .*logged in.*
Output: \0
  • Для извлечения и вывода имен пользователей после "User":
Pattern: User (.*?)(?=\ )
Output: \1

Проверка типа полученного значения

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

На вкладке Предобработка элемента данных выберите шаг предобработки Пользовательский множитель и укажите следующий параметр (умножает полученное значение на 1):

1

Если предобработка завершается ошибкой (например, входное значение не является числовым), то элемент данных становится неподдерживаемым с соответствующим сообщением об ошибке. Чтобы избежать этого, установите флажок Пользовательское действие при ошибке и выберите вариант, например отбрасывание значения или установку пользовательского значения. Обратите внимание, что отброшенные значения не сохраняются в базе данных; в результате триггеры не вычисляются и данные трендов не создаются.

Проверка неподдерживаемого значения

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

Когда процесс poller сервера/прокси Zabbix пытается собрать значение элемента данных, он может:

  • Вернуть корректный результат.
  • Вернуть результат, который изначально кажется корректным, но позже может стать неподдерживаемым (например, из-за несоответствия типа значения после предобработки).
  • Вернуть ошибку при сборе значения, из-за чего элемент данных становится неподдерживаемым. Распространённые причины включают:
    • Неизвестный ключ элемента данных (для элементов данных Zabbix агент, Simple check или Zabbix internal)
    • Неизвестный OID (SNMP агент), неизвестный сенсор (IPMI агент) или отсутствие метрики JMX (JMX агент)
    • Не удаётся прочитать файл trap (SNMP trap)
    • Скрипт не найден (External check)
    • Такой URL не существует (HTTP агент, Browser)
    • Ошибка входа (SSH агент, TELNET агент)
    • Неверный синтаксис формулы (Calculated), синтаксическая ошибка JavaScript (Script) или неверный SQL-запрос (Database monitor)

Чтобы обнаруживать и обрабатывать ошибки при сборе значений элементов данных, можно использовать шаг предобработки Проверка неподдерживаемого значения. Обратите внимание, что этот шаг всегда выполняется первым и обнаруживает только ошибки, возникающие до начала предобработки.

На вкладке Предобработка элемента данных выберите шаг предобработки Проверка неподдерживаемого значения и укажите один из следующих параметров:

  • Для любых ошибок:
Parameter: any error
  • Для ошибок, содержащих "cannot connect":
Parameter: error matches
Pattern: (?i)cannot connect

Затем используйте опцию Custom on fail, чтобы отбросить значение (в данном случае ошибку), задать пользовательское значение или вернуть пользовательское сообщение об ошибке. Обратите внимание, что отброшенные значения не сохраняются в базе данных; в результате триггер не вычисляются и данные трендов не генерируются.