1 使用示例

概述

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

过滤VMware事件日志记录

本示例使用配置预处理步骤从VMware事件日志中过滤不必要的事件。

1. 在运行的VMware Hypervisor 主机上,检查事件日志监控项vmware.eventlog是否存在且正常工作。 注意如果在主机创建期间关联了开箱即用模板模板,则事件日志监控项可能已存在于hypervisor上。

2. 在VMware Hypervisor 主机上,create一个"Log"类型的dependent item,并将事件日志监控项设为其主项。

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

# Filters all log events:
       pattern: .* logged in .*
       
       # Filters lines containing usernames after "User":
       pattern: \bUser\s+\K\S+

如果正则表达式不匹配,则依赖项监控项将变为不受支持状态并显示相应错误消息。 为避免这种情况,请勾选"自定义失败处理"复选框并选择丢弃该值或设置自定义值等选项。 请注意配置值不会存入数据库,因此不会评估触发器也不会生成趋势数据。

或者,您可以使用Regular expression预处理步骤来提取匹配组并控制输出。例如:

# 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

检查获取值类型

此示例使用配置预处理步骤来检查获取的监控项值类型是否为数值型.

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

# Multiplies the retrieved value by 1:
       number: 1

如果预处理失败(例如输入非数值),则该监控项将变为不受支持状态并显示相应错误信息. 为避免这种情况,请勾选"失败时自定义操作"复选框并选择相应选项,如丢弃该值或设置自定义值. 请注意配置值不会存入数据库,因此不会触发告警评估且不会生成趋势数据.

检查不支持的值

此示例使用配置预处理步骤来检查监控项值是否无法获取。

当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-监控项值预处理值不会存入数据库,因此不会评估触发器且不会生成趋势数据。