本发明涉及数据分析挖掘技术领域,具体涉及一种基于网络流量数据的故障诊断方法及系统。
背景技术:
随着网络规模的日益扩大和承载业务种类的逐渐增多,互联网的发展给人们带来了巨大方便;但是,迅速的发展也使网络中出现各种异常的机会大大增加,给网络监测带来了更大的挑战。网络流量异常分析是网络监测中的关键部分,能够准确、及时地检测出异常对提高网络的可用性和可靠性具有非常重要的意义。大规模网络流量的特点是维数多、速度快、规模宏大,但现有的基于时间序列的统计分析和基于信号的小波分析对这类数据的处理能力有限,不能满足当前的需求。同时,造成网络流量异常原因多种多样且动态变化,在大数据和复杂网络环境背景下,不仅要实现网络流量异常的智能发现,如何对于每次流量异常故障事件实现自动化流量异常诊断,也值得进一步研究。
技术实现要素:
为了解决现有技术中所存在的上述不足,本发明提供一种基于网络流量数据的故障诊断方法及系统。当一条异常流量曲线交给一个日常运维网络管理员,他可以快速的发现异常出现的位置,并分析出引起异常的原因,但如果这里有成千上万条流量曲线等待网管去分析,这时就需要由算法直接进行筛选,将异常圈定到一个小范围中去,节省人工成本,提升处理效率。本发明提供的基于网络流量数据的故障诊断方法,可有效地解决大数据时代链路流量异常故障检测、状态收集、故障原因诊断等问题,并在实际应用中得到了有效地验证。
本发明提供的技术方案是:一种基于网络流量数据的故障诊断方法,包括:
基于预先构建的链路流量异常故障传播模型查找所有可能导致故障网络设备发生链路流量异常故障事件的待分析网络设备;
基于网络流量数据和预先构建的链路流量异常检测模型,获得待分析网络设备发生的链路流量异常故障事件;
基于待分析网络设备发生的链路流量异常故障事件获得原因网络设备和原因网络故障。
优选的,所述基于预先构建的链路流量异常故障传播模型查找所有可能导致故障网络设备发生链路流量异常故障事件的待分析网络设备,包括:
预先构建的链路流量异常故障传播模型从预先构建的状态库中筛选出所有可能导致故障网络设备,发生链路流量异常故障事件的网络设备以及对应的原因故障,生成中间状态库;
获取所述中间状态库中的各网络设备在预设分析周期内对应的网络流量状态数据;
基于网络流量状态数据在所述中间状态库中筛选出发生原因故障的待分析网络设备。
优选的,所述状态库的构建,包括:
基于网络拓扑数据和链路流量异常故障原因树进行查找,当网络设备与其他网络设备之间有直接的故障传播关系时,则发起故障传播的网络设备为源网络设备,接收故障传播的网络设备为目标网络设备;
所述源网络设备和目标网络设备之间的故障传播关系为源网络设备和目标网络设备之间的有向边;
基于源网络设备和目标网络设备发生链路流量异常故障的历史数据,获得源网络设备的原因故障和目标网络设备的传播结果故障;
基于发生所述源网络设备的原因故障和目标网络设备的传播结果故障的历史数据,获得源网络设备发生原因故障后向目标网络设备传播结果故障的概率值;
将所述源网络设备和目标网络设备之间的有向边、原因故障、传播结果故障和概率值组成状态库。
优选的,所述概率值,按下式计算:
式中:avg(an,b):在预设历史周期内上级链路中的an网络设备输入到b网络设备的流量平均值;e(an,cm):从上级链路中的an网络设备输出流量到兄弟链路中的cm网络设备的概率值;avg(b,cm):在预设历史周期内从b网络设备输入的总流量中,分发到兄弟链路中的cm网络设备的流量平均值;
其中,所述上级链路为以有向链路起点所对应的网络设备为终点;
所述兄弟链路为以有向链路起点所对应的网络设备为起点。
优选的,所述链路流量异常故障传播模型,按下式表示:
s={x|r}
式中:s:链路流量异常故障传播模型;x:网络设备;r:网络设备之间的故障传播关系;
其中,所述网络设备之间的故障传播关系包括:原因故障、传播结果故障和概率值。
优选的,所述基于网络流量数据和预先构建的链路流量异常检测模型,获得待分析网络设备发生的链路流量异常故障事件,包括:
基于网络流量数据和分析结束时间提取待分析网络设备在预设分析周期内对应的网络流量状态数据;
对各网络流量状态数据基于时间顺序和预设的超出流量均值百分比获得链路流量异常故障事件。
优选的,所述对各网络流量状态数据基于时间顺序和预设的超出流量均值百分比获得链路流量异常故障事件,包括:
对各网络流量状态数据基于所述网络流量状态数据值是否为0进行提取,并分成网络流量状态数据值为0和网络流量状态数据值不为0;
当所述网络流量状态数据值为0则属于0流量异常;
当所述网络流量状态数据值不为0时,获取链路流量异常明细;
基于所述链路流量异常明细与预设的超出流量均值百分比的关系得到流量激增异常;
其中,所述0流量异常和流量激增异常为链路流量异常故障事件。
优选的,所述链路流量异常明细,包括:
所述网络流量状态数据值不为0的时间区域,以及所述时间区域内的流量平均值和流量极大值。
优选的,所述基于所述链路流量异常明细与预设的超出流量均值百分比的关系得到流量激增异常,包括:
基于所述流量平均值和预设的超出流量均值百分比按下列关系式进行验证,当均满足条件时继续验证所述流量极大值;否则链路流量正常;
式中:f:当前流量;
当所述流量极大值处于流量激增异常的时间区间内,则发生了所述流量激增异常;否则链路流量正常。
优选的,所述基于待分析网络设备发生的链路流量异常故障事件获得原因网络设备和原因网络故障,包括:
从所述链路流量异常故障事件中选择对应概率值大的网络设备,作为引起故障网络设备的原因网络设备;
获取所述网络设备对应的原因网络故障,作为故障网络设备的原因网络故障。
基于同一发明构思,本发明还提供了一种基于网络流量数据的故障诊断系统,包括:
第一查找模块,用于基于预先构建的链路流量异常故障传播模型查找所有可能导致故障网络设备发生链路流量异常故障事件的待分析网络设备;
第二查找模块,用于基于网络流量数据和预先构建的链路流量异常检测模型,获得待分析网络设备发生的链路流量异常故障事件;
分析模块,用于基于待分析网络设备发生的链路流量异常故障事件获得原因网络设备和原因网络故障。
优选的,所述第一查找模块,包括:
中间状态库子模块,用于预先构建的链路流量异常故障传播模型从预先构建的状态库中筛选出所有可能导致故障网络设备,发生链路流量异常故障事件的网络设备以及对应的原因故障,生成中间状态库;
获取子模块,用于获取所述中间状态库中的各网络设备在预设分析周期内对应的网络流量状态数据;
筛选子模块,用于基于网络流量状态数据在所述中间状态库中筛选出发生原因故障的待分析网络设备。
与最接近的现有技术相比,本发明提供的技术方案具有以下有益效果:
1、本发明提供的技术方案,基于预先构建的链路流量异常故障传播模型查找所有可能导致故障网络设备发生链路流量异常故障事件的待分析网络设备;基于网络流量数据和预先构建的链路流量异常检测模型,获得待分析网络设备发生的链路流量异常故障事件;基于待分析网络设备发生的链路流量异常故障事件获得原因网络设备和原因网络故障,基于网络链路流量监测数据和网络拓扑数据,实现网络链路流量异常故障自动发现和原因分析诊断的分析处理框架,基于该框架可以实现海量流量数据异常自动分析发现和原因自动诊断。
2、本发明提供的技术方案,基于多重有向图理论构建了网络链路流量异常故障传播模型,可基于该模型实现故障原因分析诊断和相关状态收集。
3、本发明提供的技术方案,适用于海量网络流量监测数据的链路流量异常自动分析,可实现流量为0故障、流量激增故障的自动分析发现。
4、本发明提供的技术方案,基于网络流量数据、链路流量异常故障事件明细、链路流量异常故障传播模型构建网络设备状态采集模型,用于网络流量故障原因分析,可完整状态数据采集,为故障原因诊断提供数据支撑。
5、本发明提供的技术方案,实现自动化分析发现网络流量异常发现和原因诊断分析,降低运维人员的运维成本,提升了异常评估结果的准确性与客观性。
附图说明
图1为本发明中一种基于网络流量数据的故障诊断方法的流程图;
图2为本发明网络流量异常分析发现及原因诊断框架的示意图;
图3为本发明实施例中流量异常分析发现流程图;
图4为本发明的网络流量状态数据采集模型示意图;
图5为本发明的链路流量异常故障传播模型示意图。
具体实施方式
为了更好地理解本发明,下面结合说明书附图和实例对本发明的内容做进一步的说明。
实施例1
图1为本发明中一种基于网络流量数据的故障诊断方法的流程图,包括:
s1、基于预先构建的链路流量异常故障传播模型查找所有可能导致故障网络设备发生链路流量异常故障事件的待分析网络设备;
s2、基于网络流量数据和预先构建的链路流量异常检测模型,获得待分析网络设备发生的链路流量异常故障事件;
s3、基于待分析网络设备发生的链路流量异常故障事件获得原因网络设备和原因网络故障。
本发明中的状态库可以预先构建,也可以每次进行故障诊断时进行构建,预先构建的过程包括:
基于网络拓扑数据和链路流量异常故障原因树进行查找,当网络设备与其他网络设备之间有直接的故障传播关系时,则发起故障传播的网络设备为源网络设备,接收故障传播的网络设备为目标网络设备;
所述源网络设备和目标网络设备之间的故障传播关系为源网络设备和目标网络设备之间的有向边;
基于源网络设备和目标网络设备发生链路流量异常故障的历史数据,获得源网络设备的原因故障和目标网络设备的传播结果故障;
基于发生所述源网络设备的原因故障和目标网络设备的传播结果故障的历史数据,获得源网络设备发生原因故障后向目标网络设备传播结果故障的概率值;
将所述源网络设备和目标网络设备之间的有向边、原因故障、传播结果故障和概率值组成状态库。
本实施例中提供了每次进行故障诊断时进行构建的方法。
图2为网络流量异常分析发现及原因诊断框架的示意图,整个分析过程包含了多个模块的组合,主要步骤如下:
步骤1、基于待分析目标网络的网络拓扑数据、关注的链路流量异常故障等生成链路流量异常故障传播模型;
步骤2、基于网络流量数据进行链路流量异常检测,发现0流量故障、流量激增故障;
步骤3、基于网络流量数据、链路流量异常故障发生明细数据和链路流量异常故障传播模型实现故障发生区域(链路)及其相关设备状态数据采集,生成状态库数据;
步骤4、利用运行状态库数据、链路流量异常检测模型、故障原因树实现故障原因诊断,得到每次故障的故障发生原因。
一、步骤1中链路流量异常故障传播模型的生成,具体包括:
本发明把不同网元(网络设备)之间的故障传播抽象成多重有向图。故障传播有向图是将具体系统的各个网元抽象成图中的节点,把网元间的故障传播关系抽象为连接两个节点的有向边。
每一条边包含3个属性:原因故障、传播结果故障、概率值。
如图5所示,网络设备1与网络设备2之间有一条有向边,边的值为:流量激增,流量激增,0.8。其代表了当网络设备1发生流量激增故障时,会导致网络设备2也可能发生流量激增故障,其发生的可能性的概率值为0.8。
从而将具体系统的故障传播模型化为故障传播有向图,令:
x={xi|xi∈x}
式中:xi为系统的组成要素或单元,i=1,2,…,n,n≥2。
系统各个组成要素之间的关系用r表示,设:
xi∈x、xj∈x,
两者的关系可表述为:
xi=r(xj),xj=r(xi)
在故障诊断领域中,r用来表示系统各要素之间,故障影响关系,即故障的传播性。
系统s可表述为:
s={x|r}
式中:s:链路流量异常故障传播模型;x:网络设备;r:网络设备之间的故障传播关系;
即s是以具有r关系的集合x来表示的;如果用节点表示系统的元件,用边表示各元件之间的故障传播,那么系统就可以用一个有向图来表示,这个有向图就叫做系统的故障传播有向图。
r关系包含3个子元素:原因故障、传播结果故障、概率值。
在进行故障原因诊断时,若某个网络设备发生了故障,首先基于网络拓扑找到所有与该网络设备相关联的设备,并基于网络传播模型得到所有可能导致当前网络设备发生故障的设备以及设备的原因故障;然后再获取可能的网络设备在相应时间段的网络流量状态数据,判定每一个可能引起当前网络设备发生故障的网络设备是否发生了原因故障;若发生了原因故障,再基于概率值即可以算出最有可能的原因网络设备及其原因网络故障。
二、通过链路流量异常检测模型进行步骤2;
1、本实施例中假设构建链路流量异常检测模型的依据为:在指定时间范围内,系统的业务量总体上保持不变,即在比较小的时间区域内,相同的链路(网络环境)的网络流量大致相同;不同时间段内,同一链路(网络环境)不同时段内网络流量整体均值不同;
2、分析链路流量异常检测模型的输入,包括:
数据输入:网络流量监测数据明细;
分析参数输入:分析时间段结束时间、分析时间段时间周期、超出流量均值百分比;
3、链路流量异常检测模型的结果输出,包括:
输出每一条链路流量异常故障事件明细,即:流量异常开始时间、流量异常结束时间、流量异常类型(0流量异常或流量激增异常)、该时间段内流量均值、该时间段内流量最大值。
4、处理流程
链路流量异常检测模型处理流程如图3所示:
(1)基于结束时间、时间周期提取在分析时间范围内所有待分析的网络设备的流量监测数据;
(2)基于模型对输入数据进行提取并分组、合并和时间排序;每个数据分组对应于一条链路流量(有向的)即找到每一个待分析的网络设备的流量数据;
(3)对于每个分组,基于时间顺序对其进行数据筛查,筛选出流量为0的异常流量时间点,并合并成流量为0异常故障事件的时间范围区域;
(4)对于流量不等于0的流量时间区域,求该时间段内的流量平均值、极大值;
(5)对于每个分组的流量值,若同时满足下面2个公式,则为疑似流量激增异常故障事件,否则舍弃该分组中的数据;
式中:f:当前流量;
(6)验证极大值是否处于基于第(5)步发现的某个流量激增异常事件时间区间内,若验证结果为true,则说明为异常流量激增异常故障事件。
三、步骤3中链路流量异常关联链路状态数据采集,具体包括:
链路流量异常关联链路状态数据采集主要采集跟该链路相关的2大类链路数据:
(1)以该有向链路起点所对应网络设备为起点的兄弟链路;
(2)以该有向链路起点所对应网络设备为终点的上级链路。
如图4所示为示例,若b->c1发生流量激增,该链路的起点为b,终点为c1,相关状态数据包括:
(1)该链路激增时间范围内,起点为b的其他兄弟链路状态数据:b->c2,b->c3,…,b->cm;
(2)该链路激增时间范围内,终点为b的上级链路状态数据:a1->b,a2->b,…,an->b。
最后,通过状态采集,形成对应的状态库。
四、步骤4中链路流量异常原因诊断,包括:
本发明采用动态规划模型实现链路流量异常原因诊断,以图4的示例为例,诊断模型抽象如下:
(1)b的所有输入与输出的流量分配比例是一个常量矩阵e,该常量矩阵体现了输入链路与输出链路的后续链路对应的业务之间的关联性、网络路由等特性;e矩阵的维度为:n*m;
(2)e矩阵的初始化:基于历史流量数据的平均值进行初始化,即取k个月份的流量数据,计算每个月份每条链路的流量平均值矩阵avg。基于这些流量平均值求解e矩阵;
其中avg(b,cm)代表了在相应月份从b网络设备输入的总流量中,分发到第m个与它相关联的出度设备的流量平均值。
如图4所示,从a1流入到b的所有流量中,通过c1,c2,…,cm流出,用于分析流量流入与流出分配比例数据。
(3)流量异常原因分析:根据流量异常发生的时间范围内相关链路的流量数据和每条链路的流量分配比例矩阵,计算出每条上级链路对目标链路的分流情况,并与正常流量贡献值进行对比,差异较大的即为流量异常原因主要贡献者。
备注:若存在同级链路流量为0的情况,则其本应负责的流量按照分配比例矩阵分摊到其他的正常链路中。
实施例2
基于同一发明构思,本实施例还提供了一种基于网络流量数据的故障诊断系统,包括:
第一查找模块,用于基于预先构建的链路流量异常故障传播模型查找所有可能导致故障网络设备发生链路流量异常故障事件的待分析网络设备;
第二查找模块,用于基于网络流量数据和预先构建的链路流量异常检测模型,获得待分析网络设备发生的链路流量异常故障事件;
分析模块,用于基于待分析网络设备发生的链路流量异常故障事件获得原因网络设备和原因网络故障。
实施例中,所述第一查找模块,包括:
中间状态库子模块,用于预先构建的链路流量异常故障传播模型从预先构建的状态库中筛选出所有可能导致故障网络设备,发生链路流量异常故障事件的网络设备以及对应的原因故障,生成中间状态库;
获取子模块,用于获取所述中间状态库中的各网络设备在预设分析周期内对应的网络流量状态数据;
筛选子模块,用于基于网络流量状态数据在所述中间状态库中筛选出发生原因故障的待分析网络设备。
实施例中,所述第一查找模块,还包括:
状态库构建子模块,用于构建状态库;
所述状态库构建子模块,包括:
查找单元,用于基于网络拓扑数据和链路流量异常故障原因树进行查找,当网络设备与其他网络设备之间有直接的故障传播关系时,则发起故障传播的网络设备为源网络设备,接收故障传播的网络设备为目标网络设备;
有向边单元,用于所述源网络设备和目标网络设备之间的故障传播关系为源网络设备和目标网络设备之间的有向边;
第一获取单元,用于基于源网络设备和目标网络设备发生链路流量异常故障的历史数据,获得源网络设备的原因故障和目标网络设备的传播结果故障;
第二获取单元,用于基于发生所述源网络设备的原因故障和目标网络设备的传播结果故障的历史数据,获得源网络设备发生原因故障后向目标网络设备传播结果故障的概率值;
组成单元,用于将所述源网络设备和目标网络设备之间的有向边、原因故障、传播结果故障和概率值组成状态库。
实施例中,所述第二查找模块,包括:
提取子模块,用于基于网络流量数据和分析结束时间提取待分析网络设备在预设分析周期内对应的网络流量状态数据;
比较子模块,用于对各网络流量状态数据基于时间顺序和预设的超出流量均值百分比获得链路流量异常故障事件。
实施例中,所述比较子模块,包括:
提取单元,用于对各网络流量状态数据基于所述网络流量状态数据值是否为0进行提取,并分成网络流量状态数据值为0和网络流量状态数据值不为0;
分类单元,用于当所述网络流量状态数据值为0则属于0流量异常;还用于当所述网络流量状态数据值不为0时,获取链路流量异常明细;
判断单元,用于基于所述链路流量异常明细与预设的超出流量均值百分比的关系得到流量激增异常;
其中,所述0流量异常和流量激增异常为链路流量异常故障事件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。