前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于知识图谱算法的网络故障智能诊断探索

基于知识图谱算法的网络故障智能诊断探索

原创
作者头像
jackiefang
修改2018-07-20 16:42:57
6.9K11
修改2018-07-20 16:42:57
举报

17年这波AI浪潮推动着各行各业在进行着智能化和AI+的尝试,而当前业界在网络故障智能监控诊断这块到目前为止还没有可参照的成熟案例。知识图谱相对于很火的深度学习,其可解释性为智能诊断提供了新的选项和思路。

背景

      在当前的网络监控系统中,我们主要是针对单个指标和网元进行了监测告警,以及一些特殊的布尔逻辑进行了简单的同类事件收敛,给网络运营同事进一步处理。随后运营同事根据自身经验分析各类事件,找到根因问题并解决。

      我司作为运营着百万级服务器的公司,基础网络设施的规模也十分庞大、复杂。与之伴随的是每天数以万计的网络异常事件,这给网络运营带来了巨大的挑战。本文从网络的拓扑知识出发,设计了一套基于图算法的故障诊断系统,对网络的智能运营进行了一些探索。

整体思路

      下图是网络中的一个简单的组成部分拓扑,我们可以看到网络是由网元和网元间的连接构成,其中连接既包含物理上的,也包含逻辑上的,一个网元(如交换机、路由器)内部也有复杂的结构和特性。

图1 部分网络结构示意图
图1 部分网络结构示意图

      由于公司整个网络规模巨大,网络中时刻都会有各种事件发生,包括设备syslog告警、流量包量异常、路由变化、异常变更等等,我们可以简单抽象对应到下图中,黄色部分为产生异常事件的网元设备。

图2 异常网元设备示意图
图2 异常网元设备示意图

      从图中我们看到产生异常事件的设备是存在community聚集现象的,而在实际中同一个事件簇很有可能是由某一个根因事件造成的,而产生这一个根因事件的网元很大概率就在这个簇的枢纽和最中心位置。

技术方案设计和实现

图3 总体方案示意图
图3 总体方案示意图

        上图是故障智能诊断的整体方案,大体上分为如下部分:

a)      网络信息知识图谱构建

        我们当前主要使用关系式数据库来描述和存储全网各类信息,包括每个网元的属性、网元之前的连接关系、专线描述等。当涉及拓扑信息查询、路径搜索等使用场景时需进行大量昂贵的join表操作,同时连接关系的更新维护也较为复杂。这里我们调研了业界主流的一些图数据库后,最终基于易用性,成熟度等考虑选用了neo4j做为网络信息知识图谱的存储引擎,见示意图1。

b)     统一网络事件库构建

        如图3所示,事件库需要导入多种类型的事件,因此我们选用了schema-free的elastic-search(es)作为我们的事件库存储。在此基础上构建event-manager从各类事件源导入至事件库中,并提供API给诊断程序调用。

c)      网元着色和事件过滤

        在有了网络信息知识图谱和事件库之后,我们就可以选取时间片,将产生异常事件的设备在图谱上着色,在实际使用图数据库neo4j的实现过程中只需给对应节点添加一个Label即可。这里值得注意的是,我们可以选择需要过滤的事件类型来定制调节诊断程序的偏好。着色后的状态如上面图2所示。

d)     事件簇发现和边界划分

        在图2异常网元着色的基础上,我们把其它的正常的节点忽略掉,就会得到如下图4的结果。

图4 事件簇发现示意图
图4 事件簇发现示意图

        接下来要做的事就很一目了然了,找出图中所有的连通子图。这里如果使用neo4j的话,甚至都不需要自己去实现具体代码,call一个算法库函数即可

CALL algo.unionFind.stream('Abnormal', 'NetLink', {})
YIELD nodeId,setId
RETURN nodeId,setId;

         这样我们便得到了所有的事件簇。

e)     基于中心度的事件簇分析和根因定位

        取得所有事件簇之后,我们对每个簇进行中心度计算然后排序,中心度top N就是我们想要得到的最终的根因事件大概率所在故障点。

        中心度计算有很多算法可以选择:degree、closeness和betweenness等等,这里可以根据实际需要来选择。我们这里选择的betweenness算法,即计算结点被经过的路径条数最高的那个。

        结果如下图5所示,红色结点就是诊断出的根因故障点。

图5 基于中心度的根因定位示意图
图5 基于中心度的根因定位示意图

总结和展望

        以上就是基于知识图谱相关算法的网络故障智能诊断程序的思路和实现方案,现已完成开发和离线数据测试验证。实际中整个方案的每个部分都有很多细节和问题值得推敲和雕琢,后续我们将依据现网运行效果进行持续的优化演进。

        同时在这里我们还有很多尝试正在进行,比如事件簇根因的特征提取、分类,基于异常事件指数回归的根因节点发现,欢迎大家多来指点交流。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 整体思路
  • 技术方案设计和实现
    • a)      网络信息知识图谱构建
      • b)     统一网络事件库构建
        • c)      网元着色和事件过滤
          • d)     事件簇发现和边界划分
            • e)     基于中心度的事件簇分析和根因定位
            • 总结和展望
            相关产品与服务
            灰盒安全测试
            腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档