重复模式

重复规则由重复模式定义。该规则计算在指定的时间间隔内接受的第二个时间和后续事件,但跳过对这些事件的规则集处理。该规则为全状态规则。

概述

重复模式通常用于在某个时间段内隔离相似(重复)的事件。重复事件在某些方面与先前事件相似,但不一定是该事件的相同副本。只要事件符合规则的事件选择条件,则认为这些事件重复。时间段由必需的时间窗口指示,该窗口使用规则语言中的 <timeWindow> 元素定义。

规则响应的运行条件

使用重复模式,规则响应将在以下时间运行:
  • 检测到第一个事件时(由 <onDetection> 元素定义)。
  • 处理每个重复事件时(由 <onNextEvent> 元素定义)。
  • 时间窗口完成时(由 <onTimeWindowComplete> 元素定义)。

即使未接收到重复事件,第一个事件仍将触发 <onDetection> 操作。 设置该行为的原因在于您可能要转发第一个事件并跳过重复事件的规则集处理。在这种情况下,您可以添加规则响应操作,该操作在触发规则的 <onDetection> 操作时转发第一个事件。

重复事件(第二个以及后续事件)的缺省处理是计算重复事件数量,但跳过重复事件的规则集处理。如果要对重复事件执行其他操作,则可明确定义 <onNextEvent> 操作。例如在某些情况下,重复事件代表可能已记录到数据库或其他存储库中的事件。因此,可能要对 <onNextEvent> 操作进行编码以除去来自这些其他位置的重复事件。

<onTimeWindowComplete> 操作可用于创建包括那些已处理的重复事件在内的所有重复事件的摘要记录。

此规则模式的示例用法

假定持续出现来自相同资源类型(安全监视器)的“拒绝服务”消息。这表明可能存在安全性违规。重复模式的示例用法为执行以下操作的规则:
在出现来自安全监视器的“拒绝服务”消息后,将计算 30 秒时间内发生的所有重复事件的次数,但不发送至操作员控制台。同时,在 30 秒时间段结束时,规则将生成事件来指示在该时间段内出现的“拒绝服务”消息的次数。
相关参考
重复规则摘要