[comment]: # ({1a3ec895-1a3ec895})
# 1. Примеры использования

[comment]: # ({/1a3ec895-1a3ec895})

[comment]: # ({c85251c8-f4923ce3})
#### Обзор

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

[comment]: # ({/c85251c8-f4923ce3})

[comment]: # ({44d7e637-6c9dfb09})
#### Фильтрация записей журнала событий VMware

В этом примере используется шаг предварительной обработки [Совпадение регулярному выражению](/manual/config/items/preprocessing#настройка) для фильтрации ненужных событий из журнала событий VMware.

1\. Убедитесь, что на работающем узле сети гипервизора VMware элемент данных журнала событий [vmware.eventlog](/manual/config/items/itemtypes/simple_checks/vmware_keys) присутствует и работает должным образом.
Обратите внимание, что элемент данных журнала событий уже может присутствовать у гипервизора, если при создании узла сети был присоединён шаблон [VMware](/manual/vm_monitoring#готовые-к-использованию-шаблоны).

2\. На узле сети гипервизора VMware создайте [зависимый элемент данных](/manual/config/items/itemtypes/dependent_items) с типом «Журнал (лог)» и выберите элемент данных журнала событий в качестве основного элемента данных.

3\. На вкладке *Предобработка* зависимого элемента данных выберите шаг предобработки «Совпадение регулярному выражению» и укажите, например, один из следующих параметров:

```bash
# Фильтрация всех событий входа в систему:
pattern: .* logged in .*

# Фильтрация строк, содержащих имена пользователей после «User»:
pattern: \bUser\s+\K\S+
```

::: noteimportant
Если нет соответствия регулярному выражению, то зависимый элемент данных станет неподдерживаемым с соответствующим сообщением об ошибке.
Чтобы избежать этого, отметьте флажок «Другое при ошибке» и выберите опцию — например, отбросить значение либо выставить пользовательское значение.
Обратите внимание, что [отброшенные](/manual/config/items/preprocessing#настройка) значения не сохраняются в базе данных; в результате триггеры не пересчитываются и данные о динамике изменений не генерируются.
:::

В качестве альтернативы вы можете использовать шаг предварительной обработки [Регулярное выражение](/manual/config/items/preprocessing#настройка) для извлечения соответствующих групп и управления выводом. Например:

```bash
# Извлечь и вывести из журнала событий полное событие, содержащащее строку «logged in»:
pattern: .*logged in.*
output: \0

# Извлечь и вывести имена пользователей после «User»:
pattern: User (.*?)(?=\ )
output: \1
```

[comment]: # ({/44d7e637-6c9dfb09})

[comment]: # ({11aeda61-561b422b})
#### Проверка типа полученного значения

В этом примере используется шаг предварительной обработки [Пользовательский множитель](/manual/config/items/preprocessing#настройка) для проверки того, является ли тип полученного значения элемента данных числовым.

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

```bash
# Домножить полученное значение на 1:
число: 1
```

::: noteimportant
Если предварительная обработка не удалась (например, значение на входе не является числовым), то элемент данных становится неподдерживаемым с соответствующим сообщением об ошибке.
Чтобы избежать этого, отметьте флажок «Другое при ошибке» и выберите параметр, например, отбрасывание значения или установка пользовательского значения.
Обратите внимание, что [отброшенные](/manual/config/items/preprocessing#настройка) значения не сохраняются в базе данных; в результате триггеры не пересчитываются и данные о динамике изменений не генерируются.
:::

[comment]: # ({/11aeda61-561b422b})

[comment]: # ({6c4d73ae-b8a4a171})
#### Проверка на неподдерживаемое значение

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

Когда процесс поллера 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)».

Затем используйте параметр *Другое при ошибке (Custom on fail)*, чтобы отбросить значение (в данном случае ошибку), задать пользовательское значение или вернуть пользовательское сообщение об ошибке.
Обратите внимание, что [отброшенные](/manual/config/items/preprocessing#discardunchanged) значения в базе данных не сохраняются; в результате триггеры не вычисляются и данные о динамике изменений не генерируются.

[comment]: # ({/6c4d73ae-b8a4a171})
