基于网络拓扑及告警的故障根因定位系统实现及算法研究——赛题分析

  赛题背景:网络拓扑中一个节点出现故障,往往会导致与其相连的其他节点也发生异常,进而产生大量告警,将真正根因淹没掉。当出现大量告警时,为保证电商业务的稳定运行,我们需要对这些告警进行分析处理,过滤掉无效的告警,准确定位出可能的疑似根因节点,缩短故障定位时间。

  赛题分析:经过我们组的全体讨论,我们任务这个赛题的大致的流程为,拓扑图的构建->告警信息预处理->告警故障定位->局部可视化拓扑展示

  (1)根据后期告警故障定位,需要构建拓扑图,根据json文件的节点关系,我们采用邻接矩阵的形式来描述拓扑图的结构。参考如下:

  

 

 

 相关代码:

import json
import numpy as np


def readJSONFile(path):
    f = open(path, "r")
    return json.load(f)


def createNodesMatrix():
    arr = np.zeros((100, 100))
    nodes_json = readJSONFile("data_release/topology/topology_edges_node.json")
    for node in nodes_json:
        for son in nodes_json[node]:
            arr[int(son.split("_")[1])][int(node.split("_")[1])] = 1
    np.savetxt("arr.csv", arr, fmt="%i", delimiter=",")
    return arr


if __name__ == '__main__':
    nodes = createNodesMatrix()
邻接矩阵

 

 

  (2)告警信息预处理:

    a.去重处理:在相同报警源,不同时间报的统一告警信息,进行去重处理。

    b.分类处理:将拓扑图中的路径为依据,一条路径代表一个分类,具体参考:http://cdmd.cnki.com.cn/Article/CDMD-10079-2008073368.htm

  (3)告警定位处理:

    运用神经网络的相关知识,对告警信息的训练集进行训练,之后进行定位。

  (4)可视化处理:

    展示根因的局部拓扑图。

    

posted @ 2020-04-29 22:23  九离  阅读(1552)  评论(1编辑  收藏  举报