[comment]: # ({1a3ec895-1a3ec895})
# 1 使用示例

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

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

本节提供使用预处理步骤完成实际任务的示例。

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

[comment]: # ({44d7e637-6c9dfb09})
#### 过滤VMware事件日志记录

本示例使用[配置](/manual/config/items/preprocessing#配置)预处理步骤从VMware事件日志中过滤不必要的事件。

1\. 在运行的VMware Hypervisor 主机上，检查事件日志监控项[vmware.eventlog](/manual/config/items/itemtypes/simple_checks/vmware_keys)是否存在且正常工作。
注意如果在主机创建期间关联了[开箱即用模板](/manual/vm_monitoring#开箱即用模板)模板，则事件日志监控项可能已存在于hypervisor上。

2\. 在VMware Hypervisor 主机上，create一个"Log"类型的[dependent item](/manual/config/items/itemtypes/dependent_items)，并将事件日志监控项设为其主项。

3\. 在依赖项监控项的*预处理*标签页中，选择"匹配正则表达式"预处理步骤并指定以下示例参数之一：

```bash
# Filters all log events:
pattern: .* logged in .*

# Filters lines containing usernames after "User":
pattern: \bUser\s+\K\S+
```
::: noteimportant
如果正则表达式不匹配，则依赖项监控项将变为不受支持状态并显示相应错误消息。
为避免这种情况，请勾选"自定义失败处理"复选框并选择丢弃该值或设置自定义值等选项。
请注意[配置](/manual/config/items/preprocessing#配置)值不会存入数据库，因此不会评估触发器也不会生成趋势数据。

:::

或者，您可以使用[Regular expression](/manual/config/items/preprocessing#configuration)预处理步骤来提取匹配组并控制输出。例如：

```bash
# Extracts and outputs the entire log event containing "logged in":
pattern: .*logged in.*
output: \0

# Extracts and outputs usernames following "User":
pattern: User (.*?)(?=\ )
output: \1
```

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

[comment]: # ({11aeda61-561b422b})
#### 检查获取值类型

此示例使用[配置](/manual/config/items/preprocessing#配置)预处理步骤来检查获取的监控项值类型是否为数值型.

在监控项的*预处理*选项卡中，选择"自定义乘数"预处理步骤并设置以下参数:

```bash
# Multiplies the retrieved value by 1:
number: 1
```
::: noteimportant
如果预处理失败(例如输入非数值)，则该监控项将变为不受支持状态并显示相应错误信息.
为避免这种情况，请勾选"失败时自定义操作"复选框并选择相应选项，如丢弃该值或设置自定义值.
请注意[配置](/manual/config/items/preprocessing#配置)值不会存入数据库，因此不会触发告警评估且不会生成趋势数据.

:::

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

[comment]: # ({6c4d73ae-b8a4a171})
#### 检查不支持的值

此示例使用[配置](/manual/config/items/preprocessing#配置)预处理步骤来检查监控项值是否无法获取。

当Zabbix server/proxy轮询器进程尝试收集监控项值时，可能会：

-   返回有效结果
-   返回最初看似有效但后续可能变为不支持的结果（例如由于预处理后的值类型不匹配）
-   返回收集值时的错误，导致监控项变为不支持状态。常见原因包括：

    -   Unknown item key (for Zabbix agent, Simple check, or Zabbix internal items)
    -   Unknown OID (SNMP agent), unknown sensor (IPMI agent), or no JMX metric (JMX agent)
    -   Cannot read trap file (SNMP trap)
    -   Script not found (External check)
    -   No such URL (HTTP agent)
    -   Login failed (SSH agent, TELNET agent)
    -   Invalid formula syntax (Calculated), JavaScript syntax error (Script), or invalid SQL (Database monitor)

要检测和处理监控项值收集错误，可以使用"检查不支持的值"预处理步骤。
请注意该步骤始终最先执行，且仅检测预处理开始前发生的错误。

在监控项的*预处理*标签页中，选择"检查不支持的值"预处理步骤。

然后使用*失败时自定义*选项来丢弃该值（此处指错误）、设置自定义值或返回自定义错误消息。
请注意[2-监控项值预处理](/manual/config/items/preprocessing#2-监控项值预处理)值不会存入数据库，因此不会评估触发器且不会生成趋势数据。

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