CheerX团队来自于南瑞研究院系统平台研发中心,中心主要从事NUSP电力自动化通用软件平台的关键技术研究与软件研发。
选题分析
图1 研究现状
本次CheerX团队的选题紧密贴合了目前的运维现状。实际运维中存在多种问题导致运维系统的不可用。比如故障发生时,针对指标的异常检测会产生海量告警风暴。如果想基于有监督方案做故障分类,标注和模型训练成本大,可解释性问题突出。与此同时,多模态的运维数据让我们希望能挖掘出更多有用信息。
针对以上问题,CheerX团队提出了如下选题方案:面向微服务架构系统中无标注、多模态运维数据的异常检测、根因定位与可解释性分析。本方案是一种无监督的方案,融合了多模态数据,输出事件级别的告警以及故障的诊断链路。方案的主要运维能力是异常检测和根因定位。
解决方案
图2 整体流程
方案的整体架构主要包括数据处理、异常检测和根因定位三个环节。同时方案架构中引入了专家知识和运维知识图谱。
◆ 数据处理
图3 多模态数据处理
数据处理环节亮点为多模态指标构造与融合,主要分为指标融合与图谱构建两个部分。
◆ 指标融合
从调用链数据中构造出四种调用链指标,与筛选出的 22个监控指标、4个交易指标一起进行异常检测。
- Monitor指标:包含系统负载、cpu、磁盘、内存、tcp、网络等22种指标。
- tc指标:交易量、交易性能、平均响应时长、业务成功率。
- 调用链指标:耗时、自身耗时、错误率、调用次数。
◆ 图谱构建
图4 运维知识图谱
针对根因定位则是设计了知识图谱的本体层,总共定义了12种概念和21种关系。并从调用链、部署架构和系统资源中抽取出相应的实例。
异常检测
图5 异常检测环节引入专家知识
在异常检测环节,本方案设计了一个通用可解释的指标异常检测流程。从本团队运维经验来看,异常是业务系统存在实际故障时的数据形态离群。因此如果只根据算法的检测结果就发出告警,会造成大量无意义的检测结果,造成告警风暴。
举个例子,对于资源使用率这类指标来说,一般关心使用率上升时候的事件,但是使用率下降往往不是什么问题。而对于业务成功率则是在下降的时候才需要关注。
具体检测什么样的数据形态是专家知识,算法本身是无法区分的。因此这里加入了专家知识对时间序列做筛选和过滤,这样检测出来的结果才是可解释的。
图6 异常检测算法流程
具体针对检测算法而言,使用了卡尔曼滤波和谱残差显著性结合的方式进行指标检测。算法思路是通过卡尔曼滤波获得趋势,然后对原序列与趋势序列之间的距离序列进行谱残差显著性计算,转换为显著性序列。最后对得到的显著性序列只需要一个简单的箱型图检测即可。
图7 谱残差论文
谱残差的好处是不管序列是有周期的还是稳定的或者非稳定的,在异常出现的时候都是显著的,因此有很强的通用性。这里参考了谱残差这篇论文。
根因定位
图8 故障事件化流程
根因定位环节则是基于故障事件化和知识图谱实现根因定位。异常检测结束后会获得很多指标异常事件,这个时候就需要通过故障事件化对指标异常事件进行合并。
图9 故障事件定义
本方案定义了节点故障事件和集群故障事件。通过专家知识,将指标异常事件合并成不同的节点故障事件。再根据拓扑结构将节点故障事件合并成集群的故障事件。此时已经获得了事件级别的故障告警,告警量进一步降低的同时可用性也在进一步增强。
图10 根因定位流程
故障往往会随着调用关系发生故障传播。因此这里的定位思路是根据调用关系和系统拓扑确定实际的调用故障位置。制定根因诊断的规则,将不同的故障事件进一步合并。合并后剩余的故障事件就是所有可能的根因。诊断的过程表现为树的形式,故障诊断树包含了指标、节点和集群的故障事件,输出了完整的诊断过程。
图11 故障诊断案例
这里展示了一个很经典的案例,这是一个外网web集群网络故障,经过统计,该故障影响了200多个指标,涉及17个主机,3个交易,7个调用环节。这里本方案做到了故障的根因定位,避免了告警风暴的同时,还使用树的形式完整的展示了故障诊断链路。这样的输出结果是非常具有可解释性的,对运维人员非常友好。
资源预警
图12 资源预测流程
本次挑战赛我们还做了一些系统资源预测的工作,基于 STL分解与线性回归针对cpu、磁盘、内存等资源使用率进行预测。具体思路是使用STL分解算法分解资源指标序列得到趋势序列和周期序列,对趋势序列使用线性回归算法进行预测,而对周期序列则使用历史同时段平均进行预测。最后对两种结果求和,得到预测值。
图13 资源预警报告
如果预测值超过设定的阈值时,将生成如图所示的资源预警报告,该报告中包含了资源越限时刻,资源指标类型,所在主机等信息。
总结展望
最后总结一下本次挑战赛,CheerX团队面向微服务架构中系统复杂度高、数据多源异构的挑战,提出了一种基于无标注、多模态数据的异常检测、根因定位与可解释性分析智能运维方案。
本方案对运维人员友好,实用性强,准确高效,是一种数据与知识双驱的解决方案。团队在多模态数据融合、运维知识图谱构建、异常检测和根因定位方面都做出了自己的创新性工作。
最后今年的主题是大模型,针对本方案,CheerX团队接下来将会结合大模型在扩充完善运维知识库以及日志数据分析方向上继续研究。