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

Обзор

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

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

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

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

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

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

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

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

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

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

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

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

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

1

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

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

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

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

  • Вернуть корректный результат.
  • Вернуть результат, который изначально кажется корректным, но может стать неподдерживаемым позже (например, из-за несоответствия типов значения после предобработки).
  • Вернуть ошибку получения значения, в результате чего элемент станет неподдерживаемым. Распространённые причины включают:
    • Неизвестный ключ элемента данных (для Zabbix агента, Простой проверки или внутренних элементов данных Zabbix)
    • Неизвестный OID (SNMP агент), неизвестный датчик (IPMI агент) или отсутствие метрики JMX (JMX агент)
    • Невозможность прочитать файл трапов (SNMP trap)
    • Скрипт не найден (Внешняя проверка)
    • Нет такого URL (HTTP агент, Браузер)
    • Неуспешный вход (SSH агент, TELNET агент)
    • Недопустимый синтаксис формулы (Вычисляемый), ошибка синтаксиса JavaScript (Скрипт) или некорректный SQL (Монитор баз данных)

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

На вкладке Предобработка (Preprocessing) элемента данных выберите шаг предобработки Проверка на неподдерживаемое значение (Check for not supported value) и укажите один из следующих параметров:

  • Для любых ошибок:
Параметр: любая ошибка (any error)
  • Для ошибок, содержащих «cannot connect»:
Параметр: ошибка соответствует (error matches)
       Шаблон: (?i)cannot connect

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