Foglight的Alarm Rule中有一类是 Event Driven事件驱动,可以用于将Foglight产生的报警统一发邮件,发短信,备份保存或转发到其他系统中。
在使用该类报警规则时,会遇到发送两次报警问题,例如,假设我们创建一个Ping 某台网络设备的监控,当ping 不通时,产生一个常用的多级别报警,这时也将触发Event Driven 报警规则,这是符合我们要求的。
接着,如果下一次ping通时,该多级报警就会自动Clear,这是也将触发Event Driven,产生一条与上次完全相同的警报。这不是我们所需要的。
其原因是:对于Event Driven 报警规则,当一个对象的警报状态发生变化时,就会触发一次Event Driven报警, 这类改变包括警报的触发,清除,确认等。
因此,需要在Condition中,进行判断,例如,增加如下代码:
if(@event.get("change/value") == 0) {
<your code>
}
return false