AnyRobot-基于规则引擎的智能告警最佳实践
简介:AnyRobot-基于规则引擎的智能告警最佳实践
关键字
规则引擎、日志智能告警
适用产品
· AnyRobot 3.0.x
目的
规则引擎是基于实时告警的一种智能告警功能,可以更灵活的实现动态配置,而且比传统告警匹配更多聚合处理的结果,可以实现复杂场景下的智能告警并对告警进行抑制,减少无效告警。
解决方案
基本思路
在告警的场景下,有两种情况是需要考虑的:实时告警的配置会影响 logstash 接受数据;用户环境告警复杂,需要匹配告警更多聚合形式的事件结果。
针对第一种情况,配置的实时告警本质是配置的 logstash 过滤规则,每一次的配置都会导致 logstash 的更新,假如这时遇到 logstash 接受数据,那么会导致数据的缺失。采用规则引擎替代 logstash 实现的实时告警功能,一方面可以减少 logstash 更新的次数,减少接受数据的缺失率,另
一方面,规则引擎可以实现动态的配置规则,在无需重启服务的情况下,动态实现实时告警。
针对第二种情况,采用流处理引擎 spark+ 规则引擎 drools 的方式,使得规则引擎可以匹配更多的流处理引擎聚合处理的结果。
使用方法
步骤一:进入配置页
1.登录 AnyRobot ,首先进入数据源 > 数据输入,新建端口,添加数据类型,如 AnyShare 操作日志。
2.由于在下面设置告警策略时需要在数据筛选中选择告警字段,因此这里先上传或采集若干条目标日志,且必须存在字段或通过解析规则被解析,如 AnyShare 操作日志。
3.选择智能告警默认进入告警记录页面,切换到告警策略-规则策略,点击新建按钮,进入配置。
步骤二:新建告警策略和告警场景
1.数据类型选择步骤一中上传的 AnyShare 操作日志,在数据筛选中设置需要告警的字段或者关键字,在触发条件中设置触发告警条件,并正确填写其他项后保存。
2.切换到告警场景,点击新建按钮,场景规则中可以选择一个或多个上一步中新建的告警策略,计算方式目前只支持 OR ,告警抑制这里选择不抑制,填写名称后保存。
3.同样地,可新建多个告警策略和告警场景,保存后返回查看列表。
步骤三:接入数据,产生告警
1.通过步骤一中的端口实时接入 AnyShare 操作日志数据,若日志数据符合当前告警场景则会产生告警。同样地,新建其他端口,新建告警策略和场景,上传数据,也可以产生相应的告警。