Sidebar

zh:manual:config:event_correlation

5 事件关联

概述

通常,在Zabbix中正常事件会关闭所有的问题事件,但在某些情况下需要更的细致的方法。例如,当监控日志文件时,在日志文件中想要发现某些问题,并将它们单独关闭,而不是一起关闭。

当触发器配置页面的“多重问题事件生成”选项为启用的情况下,通常适用于日志监控、主动采集(trap)处理等。

在Zabbix中,可以根据事件标签关联问题事件。标签用于提取值并为问题事件创建标识。利用这一点,问题也可以根据匹配的标签进行关闭。

换言之,相同的触发器可以创建由事件标签标识的的不同事件。因此,可以单独地标识问题事件,并基于事件标签地标识单独关闭。

事件关联可以被定义在:

  • 触发器配置 - 可以使用一个触发器来将问题与解决方案相关联。
  • 全局 - 可以使用全局关联规则从不同地触发器/轮询方法将问题与解决问题相关联。

工作原理

在日志监控中,可能会遇到下面类似地输出:

Line1: Application 1 stopped
Line2: Application 2 stopped
Line3: Application 1 was restarted
Line4: Application 2 was restarted

事件关联地想法是将从“Line1”的问题事件到“Line3”的恢复事件,和从“Line2”的问题事件到“Line4”的恢复事件相匹配,并能逐个关闭这些问题:

Line1: Application 1 stopped
Line3: Application 1 was restarted #problem from Line 1 closed

Line2: Application 2 stopped
Line4: Application 2 was restarted #problem from Line 2 closed

为此,需要将通过标签将这些事件相关联,例如,可以标识为“Application 1”和“Application 2”。这个过程也可以将正则表达式应用于日志中来提取标签的值。然后,当事件创建时,他们分别给标识为“Application 1”和“Application 2”,并且问题可以与解决方法相匹配

配置

在触发器的配置界面配置事件关联:

  • 转到触发器的 配置界面;

  • 选择“问题事件生成模式”的“多重”选项;
  • 选择“正常事件关闭”的“如果标签值配置的所有问题”
  • 输入事件匹配的标签名称;
  • 从日志中提取标签的值以配置事件标签

如果配置成功,能偶看到标记的“application ”的问题事件,并与监测中问题页面看到结果相匹配

当为不相关的问题创建相似的事件标签时,有一些警告信息是关于配置错误的:

  • 当由两个applications向相同的日志文件写入故障和恢复信息,用户通过在标签中使用单独的正则表达式来提取标签的名称。例如“application A”和来自宏{ITEM.VALUE}的“application B”(当消息格式不同时),然而,如果和正则表达式不匹配的话,可能会无法按照计划工作。不匹配的正则表达式将生成空的标签值,并且在问题和正常事件中的单个空标签值足以关联它们。因此,来自“application A”的恢复消息可能会意外地关闭来自“application B”地错误消息。

* 实际上标签和标签的值只有在触发器触发时才会显示。如果所使用的正则表达式无效的话,则会使用默认的字段“UNKNOWN”进行替换。如果错过了标签值“UNKNOWN”的初始问题事件,那么可能会出现与标签值“UNKNOWN”的后续正常事件,并有可能导致关闭不应该关闭的问题事件。

  • 如果用户使用没有宏功能的宏{ITEM.VALUE}作为标签值,则会有255个字符串的限制。当日志消息很长,并且前面255个字符串是不明确的话,就有可能导致类似的事件标签用于不相关的问题上。

配置全局关联

在略微不同的情况下,可能会有不同的触发器来触发问题和解决问题。例如,日志触发器可能会报告应用程序有问题,而轮询触发器可能会报告应用程序还处于运行状态。

利用事件标签,可以将日志触发器标记为“Status: Down”,而轮询触发器将标记为“Status: Up”。然而,在全局关联规则中,可以关联这些触发器并将动作的操作分配给此关联。例如关闭旧事件或关闭新事件。

配置事件的全局关联规则:

  • 在前端点击Configuration,转到Event correlation页面;
  • 在右上角点击“Create correlation”(或者在已有的关联名称上编辑);
  • 输入关联规则的参数。

  • 选择关联规则的操作。