Schema di duplicato

Una regola di duplicato viene definita da uno schema di duplicato. Esso conta gli eventi secondi e successivi accettati all'interno di un intervallo di tempo specificato ma ignora l'elaborazione della serie di regole per questi eventi. Essa è una regola stateful.

Panoramica

Lo schema di duplicato è in genere utilizzato per isolare eventi simili (duplicati) in un periodo di tempo. Un evento duplicato è simile in qualche modo ad un evento precedente, ma non è necessariamente una copia esatta di quell'evento. Gli eventi sono duplicati semplicemente se essi rispondono ai criteri di selezione evento per la regola. Il periodo è indicato da una finestra definita dall'elemento <timeWindow> nella lingua della regola.

Condizioni in cui viene eseguita la risposta della regola

Con lo schema di duplicato, la risposta della regola viene eseguita nei seguenti momenti:
  • Quando viene rilevato il primo evento, come definito dall'elemento <onDetection>.
  • Quando viene elaborato ogni evento duplicato, come definito dall'elemento <onNextEvent>.
  • Quando la finestra di tempo è completa, come definito dall'elemento <onTimeWindowComplete>.

Il primo evento attiva l'azione <onDetection> anche se non sono stati ricevuti eventi duplicati. Il motivo di questo comportamento è che è possibile inoltrare il primo evento e ignorare l'elaborazione della serie di regole per gli eventi duplicati. In questo caso, è possibile aggiungere un'azione di risposta della regola che inoltra il primo evento quando viene attivata l'azione <onDetection> per la regola.

L'elaborazione predefinita per gli eventi duplicati (gli eventi secondi e susseguenti) è di conteggiare un evento duplicato ma di ignorare l'elaborazione della serie di regole per un evento duplicato. Per eseguire ulteriori azioni su un evento duplicato, è possibile definire in modo esplicito un'azione <onNextEvent>. Ad esempio, in certi casi, l'evento duplicato rappresenta un evento che può già essere registrato in un database o in altro contenitore. Di conseguenza, è possibile codificare un'azione <onNextEvent> per rimuovere l'evento duplicato da queste altre ubicazioni.

Un'azione <onTimeWindowComplete> può essere utilizzata per creare un record di riepilogo per tutti gli eventi duplicati che includa il numero di duplicati elaborati.

Esempio d'uso di questo schema di regola

Considerare che il messaggio "Servizio negato" continui ad essere emesso dallo stesso tipo di risorsa (un monitor della sicurezza). Ciò indica una possibile violazione della sicurezza. Un esempio d'uso di uno schema di duplicato è una regola che funziona in questo modo:
Dopo l'emissione di un messaggio "Servizio negato" dal monitor della sicurezza, tutti i duplicati di quell'evento che si verificano durante un periodo di tempo di 30 secondi vengono conteggiati ma non inviati alla console dell'operatore. Inoltre, alla fine del periodo di tempo di 30 secondi, la regola genera un evento che indica il numero di messaggi "Servizio negato" che si sono verificati in quel periodo di tempo.
Riferimenti correlati
Riepilogo regola di duplicato