文章来源于公众号--布博士(擎创科技资深产品专家)
哈喽,大家好~转眼又到我们分享干货环节了,上一篇AIOps干货后台收到不少反馈,总体来说效果还不错,感谢大家喜欢,后续楼主会定期更新AIOps相关干货,感兴趣的朋友可以一键三连,以防迷路。话不多说,我们往下看
一、前言:
过去几年,AIOps(智能化运维)和PRC(根因分析)在国内市场受到了学术机构、AIOps厂商和客户的过度炒作,看起来就像是运维领域的“灵丹妙药”。各种AIOps和根因定位项目纷纷上架,但结果可谓惨不忍睹。至少在我所见的众多项目中,几乎没有成功的,或者说投入和产出完全不成正比。
在之前发表的文章中也明确地说了AIOps的主语不是AI,而是OPS。AI是为ops赋能的。如果在不了解ops的前提下谈AIOps都是没有任何意义的。
所以今天分分享主要介绍AIOPS领域中的PRC(根因分析)场景,主要基于楼主在众多项目中的经验和对AI需求的理解,在此基础上提供一份可行的根因分析解决方案。主要包含以下内容:
-
国外知名厂商的根因分析实践总结
-
楼主推荐的一种根因分析方法探索
二、国外知名厂商的根因分析实践总结
目前调研的ServiceNow和Moogsoft的PRC分析方法都遵守如下流程:
1.接收原始告警信息后,通过压缩能力生成运维人员需要进行分析处理的告警
2.将告警进行关联形成事件(Incident)
3.形成事件后,具备PRC能力的智能分析系统会向事件管理员推荐可能的根因。事件管理员根据系统推荐的可能根因进行调查,并在解决事件时将调查结果一并提交,并存入当前事件中
4.在线/离线机器学习算法根据人工对事件根因的标记进行重新训练和优化根因推荐模型
5.当产生新的事件时,使用经过优化的模型进行根因推荐
6.该过程持续循环..……
通过上例我们可以看到,这个过程是一个非常典型的有监督学习过程。即将事件管理员对事件的分析处理过程以及处理结果的保存过程作为一次完整的数据标注。这种过程使标注(对事件处置)的过程自然地融入整体的业务流程中,不会给事件管理员增加任何额外的工作量,同时达到了数据标注的效果
三、ServiceNow实践总结
ServiceNow的PRC实现除了考虑用户对历史事件的处理结果标注之外,还综合考虑了事件内的告警、CI拓扑关系、CI近期的变更、事件时段等因素。通过历史告警数据,收集事件上下文中频繁告警模式的信息,最终完成根因的推荐。具体用到的监督学习算法不得而知。
如上图所示,为ServiceNow推荐的PRC TOP-3可能的根因告警,以及作为根因推荐出来的可能原因。同时在这个界面用户可以对根因进行重新标注。
四、Moogsoft实践总结
如上图所示为Moogsoft的PRC推荐结果页面。在incident中会包括多条告警,每条告警都会计算一个可能的根因分值,然后按照根因分值从高到低进行排序,最后给出可能的前三个根因。
Moogsoft的PRC实现的参考因素由系统的管理人员自行配置。也就是说,需要根据业务经验选择哪些特征变量以及哪些因素会影响根因。如下图所示:
Moogsoft的官方文档中说明了它使用了有监督的神经网络算法来实现PRC,并利用告警数据属性和操作员反馈来不断优化模型,以预测新事件的潜在根因。
五、根因分析方法探索推荐
无论是使用神经网络还是其他基于统计学的机器学习方法,其本质都是从历史数据中寻找规律,以推断出当前事件与历史事件中哪些特征拟合得较好(相似性较高),然后找到这些拟合较好的记录(按分值排序),并推荐可能的根本原因。
我所推荐的PRC方法是基于相似事件的识别方法来进行PRC推荐的。历史上相似的事件,其可能的根因也可能会是相同的,基于这样的理论来完成根因的推荐。
相似事件识别算法的具体细节请点击下方内容,一键了解
AIOps探索 | 如何实现相似事件识别https://mp.csdn.net/mp_blog/creation/editor/135458842
基于历史上”相似事件,其可能的根因也可能是相同的“这一理论依据。让我们来看看基于此理论的根因推荐过程:
-
首先,发生了 Incident #1 事件。事件管理人员经过分析后确定告警 #2 是根本原因。在关闭事件时,对其根因告警进行了标注
-
接着,又发生了 incident #2 事件。事件管理人员经过分析后确定告警 #41 是根本原因。在关闭事件时,对其根因告警进行了标注
-
最后,发生了 incident #3 事件。由于有历史数据,相似事件识别算法可以分别对 incident #1 和 incident #2 进行相似度判断,其中一个达到了90%,另一个达到了60%。基于“基于历史上相似事件,其可能的根因也可能会是相同的”这一理论依据,我们同样推荐 incident #3 中可能的根因是告警 #4
这样就完成了根因推荐的过程。在这个过程中,只使用了上文介绍的 Jaccard 相似度计算方法,而不需要对标注后的数据重新进行建模和学习。
当然,在实际使用过程中,还需要综合考虑告警对象的生成时间、最近一段时间内告警对象自身以及关联对象是否发生了变更。再结合 Jaccard 算法,针对不同的因素给出不同的权重,综合判断根因。
六、总结
国外知名厂商如ServiceNow和Moogsoft都采用了有监督学习的方法来进行根因分析,通过历史数据和机器学习算法来推荐可能的根因。本文推荐的方法则是基于相似事件的识别,通过判断历史上相似事件中的根因来进行根因推荐。
擎创科技,Gartner连续推荐的AIOps领域标杆供应商。公司专注于通过提升企业客户对运维数据的洞见能力,为运维降本增效,充分体现科技运维对业务运营的影响力。
行业龙头客户的共同选择
了解更多运维干货与行业前沿动态
可以右上角一键关注
我们是深耕智能运维领域近十年的
连续多年获Gartner推荐的AIOps标杆供应商
下期我们不见不散~