背景

近年来互联网技术高速发展,接入监控告警的设备和业务也越来越多,不断增新的设备和业务使得告警的量级也逐级递加。各种软硬件模块每天会产生大量的告警信息,这些告警中有表象告警,有冗余告警,也有根因告警。每次故障出现都会引发一系列错综叠加的告警,从而将根因告警淹没在里面,导致故障识别异常困难。一般告警分析主要是靠运维人员进行处理,当告警出现时,常常要求运维人员必须在最短的时间内,正确地判断出告警中存在的关联性,然后根据自己的经验采取相应的措施。

然而面对海量告警,靠人工从大量告警中找到故障原因,分析告警属于哪类事件等慢慢变得不太现实,为了将告警从散落的状态关联起来,目前有以下两种做法:

传统的规则关联:

以网络的告警关联为例,一般是通过网管专家梳理告警关联规则后,再对一系列告警进行关联规则匹配。但这种做法由于网络的复杂性,设备变化的高频性和网元连接经常变化等特点,人工经验建立的关联关系存在规则覆盖不全,不能适应网络变化等问题。

基于AIOps的告警关联:

通过算法能够从大量的、低价值密度、有噪声的数据中提取出有价值的告警关联信息,动态的获取事件的关联关系,辅助运维人员决策。

基于FP-growth的告警关联分析

什么是告警关联分析?

基于上面的叙述,我们知道,告警关联分析就是对一次故障中产生的一系列告警进行压缩和根因识别的手段。它主要目的有两个,一个是告警的压缩,一个是根因告警的定位。

为什么要做告警关系分析?

通过告警关系分析,我们可以对故障根因进行准确定位,提升故障处理效率,并对冗余告警进行压缩,减少故障工单派发量,从而减轻运维人员的故障处理负担,简单来说,就是提效降本。

告警和故障的关系?

在进行关联分析之前,有两个概念在这里需要区分一下:故障告警。它们是运维场景中两个不同的概念。故障是网络运行中的异常状态,故障都需要维护人员进行及时处理。告警是网络设备发生特定事件后的事件通报,告警只是表明可能有故障发生,但并不是一定有故障发生。故障发生后会引发一系列的告警。一个故障还可能引发其他故障,从而引起告警风暴的出现。而一般告警可以分为以下几类:

  • 表象告警:故障造成的结果告警,往往看不出根源,需要运维人员进行进一步分析。
  • 冗余告警:同一告警在某一时间段内的重复告警,或者一些不重要的周期性告警。
  • 根因告警:往往是造成故障的原因的告警。
  • 波动告警:因指标波动造成的一类告警,通常不涉及到故障的发生。

如何去做基于机器学习的告警关联分析?

一般的做法(如下图):

  • 针对告警事件的特点对历史告警数据进行预处理,生成告警事务数据;
  • 然后选择合适的告警关联分析算法,对告警事务数据进行训练,通过对模型的参数调优,生成告警关联规则并得到关联则库;
  • 在推理阶段,将需要推理的告警通过预处理后与关联规则库中告警关联规则进行匹配,确定根因告警。

具体步骤

数据预处理:

常规处理:

  • 提取对告警关联分析有重要作用的关键字段;
  • 剔除部分次要级别的告警以及同一时间段重复类型的告警;
  • 去除告警时间明显异常的告警。

告警事件提取:

告警事件,即每次故障事件所产生的一系列告警的集合,这是算法输入的必要形式,一般采取滑动时间窗的形式生成告警事件,滑动时间窗步长的取值可以根据告警的实际情况按告警事件的时间分布,取90分位数。告警事件的质量和数量与滑动窗口宽度和步长的设置息息相关,而告警事件作为算法的输入则对算法的效果起到重要的作用。如下图示例:ABCDE为告警数据,滑动窗口宽度为12,步长为7 ,通过3个滑动窗口分别得到了 3个告警事件[T1,T2,T3]。

告警权重评估:

一般而言,重要的告警发生的频率较低,而不重要的告警发生频率很高。因此在进行告警关联分析时不能将告警看作平等的对象,需要对重要性不同的告警设置不同的权重,这里按照告警级别、告警节点重要程度对告警进行加权求和。当然该方法具有较强的主观性,需要结合人工经验去设定。

告警拓扑分布:

在进行告警事务提取时不仅需要考虑时间的因素,还需要考虑空间或者网络拓扑的限制条件,比如根据地域或者子网范围等,同一地域/范围内的告警才可能是一类告警事件。进行此类过滤可以使后续的关联分析结果更加准确,但同时也会增加算法的复杂度。

告警关系挖掘:

本文采用的是主流的无序关联分析算法:FP-Growth,该算法的作用是找到项集数据中的频繁项,并生成关联规则,较于Apriori算法具有更高的效率。项集就是同时出现的一组项目的集合,在告警关联分析中,一个告警事件就可以看作是一个项集,项集的频率就是支持度,项集A的支持度与项集B的支持度的比值叫做置信度,它定义了关联规则的可靠程度。提升度能够反映关联规则的相关性程度,提升度大于1表示正相关,越大表示正相关性程度越高,提升度小于1表示负相关,越小负相关度程度越高,提升度等于1表示不相关。

支持度:(X→Y) = P(X,Y) / P(I) = P(X∪Y) / P(I) = num(XUY) / num(I)

置信度:(X→Y) = P(Y|X)  = P(X,Y) / P(X) = P(XUY) / P(X)

提升度:(X→Y) = P(Y|X) / P(Y)

离线挖掘关联关系:

当我们将历史告警事件输入算法后,按照这三个指标进行关联关系的过滤,最终形成一个强相关的图。再通过社区发现算法(如Louvain、LPA、Infomap等)将关联图划分为不同社区。

在线推断压缩告警:

我们同样将待推断的告警生成告警事件,通过PR方法来计算各个告警的得分,推断出此告警事件的根因告警。通过遍历与每个社区告警事件的相似度,将此类告警划入社区,实现告警压缩。

补充

对于关联规则的生成需要对大量的历史告警进行预处理和算法生成的步骤,这通常会花费不少时间,影响实际使用时对算法实时性的要求,通过蓝鲸计算平台的大数据分布式处理方法,我们可以快速处理海量告警数据,满足实际应用的实时需求,快速生成最新最全的关联规则。

对于设备变化没有那么频繁,或者每次设备变化都能及时更新到CMDB中的运维系统而言,可以省略离线的关联挖掘,直接使用最新的设备关联拓扑进行在线的告警压缩和根因推断,同样也可以取得不错的效果。蓝鲸统一告警中心实现了对接CMDB设备拓扑的关联分析,告警可以在通过设备的拓扑图进行查看,辅助运维人员快速找到根因告警。

统一告警中心案例分享:

统一告警中心案例分享

总结

告警来源的设备十分复杂,每天都可能产生大量的告警,其中有根源告警也有表象告警。通过基于AIOps的告警关联分析对告警进行关系挖掘,可以帮助运维人员对告警进行压缩并快速定位根因,对于故障的排查和管理具有十分重要的意义。

如何告别“人工运维”,借助算法进行告警关联挖掘分析?相关推荐

  1. 「电力行业」告别传统运维,拥抱全链路“云上监控”

    随着电力行业信息化建设的快速发展,尤其是随着云原生和分布式技术在电力信息化建设中的大范围推广和应用,电力行业云上业务系统变得更加复杂,业务系统内部节点和互相之间的健康关联影响也越来越动态多变,给资源管 ...

  2. 可观测告警运维系统调研——SLS告警与多款方案对比

    简介: 本文介绍对比多款告警监控运维平台方案,覆盖阿里云SLS.Azure.AWS.自建系统(ELK.Prometheus.TICK)等方案. 前言 本篇是SLS新版告警系列宣传与培训的第三篇,后续我 ...

  3. 浅谈安科瑞电力智能运维在高速铁路电力系统的应用分析

    摘  要:高速铁路电力智能运维管理系统采用终端感知层.系统网络层.系统平台层的三层网络架构模式,通过集成网关,共享通信传输设备,利用铁路专用运维传输网络通道将各类监测数据上传至运维管理平台数据进行实时 ...

  4. 频繁项集挖掘算法在告警关联中的应用

    # 技术黑板报 # 第十期 推荐阅读时长:15min 在上一篇技术黑板报中,我们介绍了频繁项集挖掘这一问题,并讲解了Apriori算法与FP-Growth算法的技术原理.本期技术黑板报我们将主要围绕频 ...

  5. WGCLOUD运维监控系统邮件告警配置说明

    邮件告警配置比较简单,不过还是写一下,因为有时候大家可能会忽略一些细节 本文以qq邮箱发送为例说明,邮件告警配置成功后,所有告警通知都会自动发送邮件,如果不想接收邮件了,删除邮件告警设置即可. qq邮 ...

  6. ccf 智能运维 裴丹_裴丹:智能运维算法需要工业界

    裴丹:智能运维算法需要工业界 学术界密切合作实现技术突破 ■商灏 清华的计算机系,国内一流,而其智能运维研究,据业内人士透露,近两年已超越美国同行,为世界最顶尖水平.本篇可能是国内财经媒体首次触及此类 ...

  7. 腾讯海量存储与CDN的自动化运维

    9月14-15日,GOPS全球运维大会上海站圆满举行,为期两天的运维盛宴,为各位运维人带来了相互交流和学习的绝佳平台,来自腾讯技术工程事业群(TEG)架构平台部的裴泽良给大家带来了「腾讯海量存储与CD ...

  8. 云原生背景下的运维价值思考与实践

    作者:刘天斯,腾讯游戏高级工程师 前言 随着公司自研上云战略如火如荼地进行,IEG-增值服务部作为较早一批响应的团队,截止目前自研上云已完成1/3的流量切换,日PV超百亿.切云的服务大量采用了云原生的 ...

  9. 什么是 SRE?一文详解 SRE 运维体系

    可观测性系统 在任何有一定规模的企业内部,一旦推行起来整个SRE的运维模式,那么对于可观测性系统的建设将变得尤为重要,而在整个可观测性系统中,通常我们会分为如下三个方面: 指标监控:即各种指标监控,比 ...

最新文章

  1. 图像分割之(三)从Graph Cut到Grab Cut
  2. hibernate之生成的和默认的属性值(使用generated刷新实体) .
  3. 【线上分享】边缘云跨区域超低延时架构设计与网络优化实践
  4. [ An Ac a Day ^_^ ] CodeForces 691F Couple Cover 花式暴力
  5. Product search parameter的determine逻辑
  6. Bash脚本教程之行操作
  7. shiro 方法级别细粒度权限控制_Shiro的认证和权限控制
  8. 参数调整 新部署rac_CDH5部署三部曲之三:问题总结
  9. Word2vector原理
  10. 中国省市县数据_收货地址
  11. win7 右键无法新建txt
  12. 干法:经营者应该怎样工作
  13. 内农大计算机学院宿舍,新疆农业大学科学技术学院宿舍条件怎么样
  14. Android UI 设计规范,Android高分面试指南
  15. 微信公众号之渲染静态模板
  16. 招聘 | 华为中央研究院-图计算-科研实习生-杭州/上海/南京/北京/深圳
  17. LeetCode题解:Balanced Binary Tree
  18. 09年中国网络广告:淘宝市场份额直逼新浪
  19. Linux删除文件常用的几种措施
  20. 【转】局域网共享教程

热门文章

  1. Linux常用命令之搜索命令
  2. ie下“无法将这个证书验证到一个受信赖的证书颁发机构”问题解决
  3. 网络营销实验一 企业网站专业性诊断评价
  4. AxonFramework架构概述
  5. php 生成图片带二维码,并且强制用户下载
  6. ssd(Single Shot MultiBox Detector)解读之(一)原理解析
  7. 大光的妈妈给了大光100元,让他去超市买东西,牙膏5元/支,牙刷2元/支,肥皂3元/个,100元买这三种恰好花光,请问有多少种可能性
  8. Java API文档的使用详解
  9. Matlab:向饼图添加图例
  10. 一个清包网友的装修清单3--给广大TX参考!清包路漫漫啊!~~~