重複型樣

重複規則是由重複型樣來定義。此規則會計算在指定時間間隔內接受的第二個及後續事件數, 但會略過這些事件的規則集處理程序。它是有狀態的規則。

概觀

通常,重複型樣可用來隔離一段時間內的相似 (重複) 事件。重複事件在某方面與前一個事件類似, 但不一定完全是該事件的複本。只要事件符合規則的事件選擇準則,它們就是重複事件。時段是由必要的時間範圍來指示, 如規則語言中的 <timeWindow> 元素所定義。

執行規則回應的條件

使用重複型樣,規則回應就會在下列時間執行:
  • 偵測到第一個事件的時候,如 <onDetection> 元素所定義。
  • 處理每個重複事件的時候,如 <onNextEvent> 元素所定義。
  • 時間範圍結束的時候,如 <onTimeWindowComplete> 元素所定義。

即使未收到任何重複事件,第一個事件也會觸發 <onDetection> 動作。此行為的原因是您可能想要轉遞第一個事件, 並略過重複事件的規則集處理程序。在此情況下,您可以新增規則回應動作, 在觸發規則的 <onDetection> 動作時轉遞第一個事件。

重複事件 (第二個及後續事件) 的預設處理是計算重複事件數, 但略過重複事件的規則集處理程序。如果想要對重複事件採取其他動作,則可明確定義 <onNextEvent> 動作。例如,在某些情況下, 重複事件代表可能已經記載到資料庫或其他儲存庫的事件。因此,您可能想要對 <onNextEvent> 動作編碼, 以從這些其他位置移除重複事件。

<onTimeWindowComplete> 動作可用來為所有重複事件建立摘要記錄, 包括已處理的重複事件數目。

此規則型樣的範例用法

假設「拒絕服務」訊息不斷地從相同的資源類型 (安全監視器) 出現。這表示可能存在安全中斷。重複型樣的範例用法是執行下列作業的規則:
「拒絕服務」訊息從安全監視器出現之後,會計算 30 秒期間內發生之該事件的任何重複事件數,但不會將這些事件傳送至操作員主控台。另外,在 30 秒的時段結束時,規則會產生一個事件,指出在此時段內所發生的「拒絕服務」訊息數目。
相關參考
重複規則摘要