大规模Aiops系统在核心网数据中心的探索与实践-算法架构

目录

1.背景:

2. KPI分类:

3. 分类异常检测        ​

4. 关联分析与告警收敛

5. 根因分析


1.背景:

异常检测需要监控的指标繁多(50万左右),覆盖了机器性能,业务用户数,率等众多指标检测。而利用最少的人为参与同时及时准确发现这些指标数据的异常波动,是业务稳定性的重要保证。 但是这些数据不但数量众多,而且不同业务的曲线也有截然不同的特征:

2. KPI分类:

由于KPI数量众多,且形状各异,故先对海量KPI数据进行分类,包括离线和在线2个模块:

      1.离线模块利用时间序列基线提取,数据标准化,聚类输出各种类别的时间序列模型。

      2.在线模块利用离线模块进行实时类别分类,然后根据类别进行对应告警输出。

 

预处理:包括数据填充,异常值剔除,数据标准化。

基线提取:消除噪音,提取一个粗略的基线来表示关键绩效指标的基本结构。

聚类:基于形状相似性对采样的关键绩效指标的基线执行基于密度的聚类。

挑战:噪声,异常值,相位偏移,幅度变化.

由于数据缺失并不严重,脏数据也不多,在利用箱型图IQR消除异常值后,对原先的缺失值,异常值剔除后的值用线性差值法插入。

对2个月指标分段聚合类似/平均压缩为1周数据,由于不同指标上下限不一致,将指标都转化为均值为0,方差为1的数据区间,以消除幅度变化影响。

密度聚类:

1.曼哈顿距离/NCC-SBD/DTW距离度量:多维空间数学证明,曼哈顿距离比传统欧式距离更适合时间序列高维空间;而NCC-SBD距离度量非常适用于具有相位漂移的时间序列。

2.KNN+DBSCAN密度聚类:由于关键绩效指标是从各种应用程序和系统中收集的,因此很难预先确定集群的数量。基于密度的方法在密集区域形成簇,可以是任意形状和大小。其次我们可以利用形状相似性的传递性来扩展集群。例如,名为a、b、c的三个关键绩效指标衡量同一应用程序使用的机器的性能。a和b的形状相似,b和c的形状也相似。直觉上,a和c的形状也相似。因此,它们可以被分配到同一个集群中。 

未标记点在线分配:

1.在离线模块训练完成后,已经将离线指标分为各个类别,对于未标记类别的指标,在经过数据预处理和基线提取后只要分别计算与各个类别核心点的曼哈顿距离即可判断是否属于该类别。

2.由于指标众多,逐个计算距离需要大量的计算资源和时间,故引入快速排序邻居图(SNG)数据结构和三角不等式定理/质心来替代类别里的所有点,以减少在线计算时间。

 

 3. 分类异常检测

利用KPI离线分类后的聚类类别:

1.对于满足时间周期性的指标,分为局部波动大和小类型:  

     1.1对于局部波动比较小的指标,利用LSTM深度学习预测,输出智能阈值。   \

     1.2对于局部波动大的指标,利用时间差分将数据转换到另一个Z空间,再利用ECDF累计分布函数计算上下限。

2.对于磁盘,内存,CPU等指标,利用固定阈值的方式输出告警(例如[10,90]).

3.对于时间规律不明显,突变类型的指标,直接利用ECDF累计分布函数计算上下限。 最后利用累计15/45/60分钟衡定均值输出告警短信

                        

 对于满足时间周期性的指标,分为局部波动大和小类型:  

 1对于局部波动比较小的指标,利用LSTM/prophet预测,输出智能阈值。  

 1对于局部波动大的指标,利用时间差分将数据转换到另一个Z空间,再利用ECDF累计分布函数计算上下限。

  2.对于磁盘,内存,CPU等指标,利用固定阈值的方式输出告警(例如[10,90])

  3.对于时间规律不明显,突变类型的指标,直接利用ECDF累计分布函数计算智能上下限。最后利用累计15/45/60分钟

 4. 关联分析与告警收敛

关联分析:由于指标众多,许多指标存在内在联系,某个指标的突变经常会造成其他指标的突变,为了找出这些指标,我们可以将指标进行1天或者1周的时间差分,以消除时间变化,然后进行Pearson/Spearman的关联分析,找出关联指标,如下所示,左图为原始指标,右图为时间差分后的指标,时间差分后的指标相关性非常明显。

告警收敛:由于指标众多,且很多指标存在上下级和各种关系,某一个指标的迅速恶化可能会导致众多指标迅速恶化,并形成告警风暴,对运维人员排除故障会造成极大影响,我们可以利用极值理论/ECDF检测告警风暴,一旦发生告警风暴立即进行告警收敛并推送核心告警。

 

告警收敛具体流程:收集近一段时间(例如1分钟)在线告警数据,利用ECDF统计分布函数/极值理论进行告警风暴检测;一旦发现告警风暴,就对数据进行特征抽取,并利用异常检测算法对告警数据进行异常值剔除;并输出杰卡德距离的距离度量矩阵给DBSCAN算法进行聚类,然后输出各个聚类类别的核心推送给相关工程师进行故障排除,或者使用关联规则算法对有关联的告警只输出单条:

 5. 根因分析

核心网络数据中心的监控指标是由多个指标汇聚而成,例如话务成功率指标是由多个设备组成的pool利用脚本计算宁波,杭州等全省各个地市的话务成功率汇聚而成,当话务成功率指标出现异常的时候,我们应当下钻到地市,分析哪个地市的指标异动导致的话务成功率指标出现异常。在调研了相关时间序列根因分析算法后,基于微软提出的Adtributor做了适应核心网络数据中心的算法改进

详见:https://github.com/LiaoWenzhe/BigdataAi/tree/main/projects

参考:https://github.com/LiaoWenzhe/Aiops-Learning-Resources

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值