一种用于故障根因的识别方法、装置和设备与流程

文档序号:21405708发布日期:2020-07-07 14:39阅读:213来源:国知局
一种用于故障根因的识别方法、装置和设备与流程

本申请涉及通信技术领域,特别是涉及一种用于故障根因的识别方法、装置和设备。



背景技术:

目前,对于网络,例如:数据中心网络(英文:datacenternetwork,简称:dcn),被广泛的用于在internet网络基础设施上传递、加速、展示、计算、存储数据信息。

在网络中,包括:服务器和转发节点,服务器之间可以通过各转发节点进行各种协议的访问,例如:传输控制协议(英文:transmissioncontrolprotocol,简称:tcp)访问、互联网协议(英文:internetprotocol,简称:ip)访问和用户数据报协议(英文:userdatagramprotocol,简称:udp)访问等。以tcp访问为例,具体过程包括:源服务器通过各转发节点向目的服务器发送tcp连接请求,由目的服务器再通过各转发节点向源服务器发送tcp应答消息,从而建立tcp访问连接。

但是,由于ip下线、应用下线或者应用负载过重等原因,网络中的访问连接可能建立失败,此时,视作该网络发生了一个连通性故障,为了保证业务不中断、该网络继续有序地运行,就需要及时的找出导致该访问发生连通性故障的准确原因,即,故障根因,从而可以高效且有针对性的排除故障。



技术实现要素:

为了解决上述问题,本申请实施例提供了一种用于故障根因的识别方法、装置和设备,可以准确的识别出导致网络中访问发生连通性故障的故障根因,从而节约了网络的维护升本,提高了用户使用网络的体验。

第一方面,提供了一种用于故障根因的识别方法,对于具体的第一网络,如果有访问发生连通性故障对应的失败流出现,那么,首先,从第一网络的多个第一成功流中,根据该第一失败流确定与该第一失败流具有高相似度的第一目标成功流;然后,将第一失败流和该第一目标成功流输入到已训练的第一机器学习模型中,即可输出该第一失败流的目标故障根因。

这样,通过从网络的多个成功流中确定与失败流相似的目标成功流,即,确定了与该失败流只有少部分特征指标存在差别的目标成功流,结合利用大量的具有较少差异的成功和失败流反复训练出的第一机器学习模型,可以准确的学习出该待分析的失败流和其相关的目标成功流之间的特征指标的差别,从而基于这少量存在差别的特征指标,可以准确的输出该失败流的目标故障根因,如此,实现了对导致失败流发生连通性故障的故障根因的准确识别,从而节约了网络的维护升本,提高了用户使用该网络的体验。

在第一方面的第一种可能的实现方式中,本申请实施例还可以包括对第一机器学习模型的训练过程,具体包括:首先,确定第二网络中的多条第二失败流和与每条第二失败流对应的第一已知故障根因;然后,从第二网络的多条第二成功流中为每条第二失败流分别确定一条相关的第二目标成功流,其中,每条第二失败流和与其相关的第二目标成功流具有高相似度;接着,根据多条第二失败流的特征指标、与每条第二失败流对应的第一已知故障根因和与每条第二失败流相关的第二目标成功流的特征指标进行训练,得到第一机器学习模型。如此,训练得到的第一机器学习模型可以准确的学习出待分析的失败流和其相关的目标成功流之间的特征指标的少量差别,依据该差别得到表示该失败流的目标故障根因的输出结果,即,为本申请实施例提供的用于故障根因的识别方法提供了数据基础。

其中,本申请实施例所提及的流,例如:第一失败流、第一目标成功流、多条第一成功流、多条第二失败流、与每条第二失败流相关的第二目标成功流和多条第二成功流,均为tcp流、ip流或者udp流。可以理解的是,第一失败流、第一目标成功流、多条第一成功流为同一类型的流,同理,多条第二失败流、与每条第二失败流相关的第二目标成功流和多条第二成功流也必须是同一类型的流。

可以理解的是,第一目标成功流与第一失败流具有高相似度,具体为:第一目标成功流与第一失败流之间的相似度大于预设相似度阈值,或,第一目标成功流与第一失败流之间的相似度属于第一网络中的多个第一成功流与第一失败流的相似度中最大的前n个,n为预设值。

在第一方面的第二种可能的实现方式中,根据第一网络中的第一失败流,从多条成功流中确定与第一失败流相关的第一目标成功流,包括:第一步,获取第一网络中第一失败流的特征指标,以及第一网络中多条第一成功流的特征指标;第二步,基于目标系数集合、第一失败流的特征指标以及各第一成功流的特征指标,计算各第一成功流和第一失败流之间的相似度;目标系数集合包括的每个目标系数分别与第一失败流中的一个特征指标以及每个第一成功流中的一个特征指标对应;第三步,将计算所得的多个相似度中最高的相似度对应的第一成功流记作第一目标成功流。

其中,在该第一方面的第二种可能的实现方式中,还可以包括其第二步中的目标系数集合的确定过程,具体包括:首先,获取第三网络中第三失败流的特征指标,以及第三网络中多条第三成功流的特征指标;然后,分别基于随机选取的多个初始系数集合,第三失败流的特征指标以及各第三成功流的特征指标,计算各初始系数集合下,各第三成功流和第三失败流之间的相似度;接着,基于计算所得的多个相似度,确定每个初始系数集合下第三失败流对应的第三目标成功流;接着,根据第三失败流的特征指标、多个初始系数集合对应的第三目标成功流的特征指标和第二机器学习模型,确定每个初始系数集合下第三失败流对应的第二学习故障根因与第三失败流对应的第二已知故障根因之间的差异;最后,根据多个初始系数集合和每个初始系数集合对应的差异,确定目标系数集合。其中,初始系数集合可以是采用e-贪心算法随机选择的。

作为一个示例,对于上述“目标系数集合的确定过程”中的“确定每个初始系数集合下第三失败流对应的第二学习故障根因与第三失败流对应的第二已知故障根因之间的差异”,具体可以通过下述方式实现:基于初始系数集合,计算各第三成功流和第三失败流之间的相似度,并基于计算所得的多个相似度,确定初始系数集合对应的第三失败流对应的第三目标成功流;将第三失败流和第三目标成功流输入到第二机器学习模型,并根据第二机器学习模型的输出结果,确定第三失败流对应的第二学习故障根因;计算第二学习故障根因与第三失败流对应的第二已知故障根因之间的第一差异;基于第一差异对第二机器学习模型进行参数调整,将参数调整后的第二机器学习模型重新作为第二机器学习模型,并返回执行“将第三失败流和第三目标成功流输入到第二机器学习模型”;直到满足参数调整次数达到预设次数阈值,或者,当前的第二学习故障根因与第二已知故障根因之间的第一差异小于预设差异阈值,则,根据多次计算所得的多个第一差异,确定初始系数集合对应的差异。

需要说明的是,从初始目标系数集合中确定目标系数集合后,才可以准确的从多条第一成功流中确定与第一失败流相关的第一目标成功流,从而确保了已训练的第一机器学习模型输入数据的准备性,提高了识别出的第一失败流的目标故障根因的准确性。

作为一个示例,在该第一方面的第二种可能的实现方式的第三步“根据多个初始系数集合和每个初始系数集合对应的差异,确定目标系数集合”的一种具体实现过程,具体包括:对多个初始系数集合和每个初始系数集合对应的差异进行拟合;确定拟合结果中最小值点对应的系数集合为目标系数集合。

可以理解的是,目标故障根因包括:ip下线、应用下线、安全设备层异常、路由设备层异常、网口出错或者应用负载过重。

在第一方面的第三种可能的实现方式中,为了可以让该连通性故障可以被快速的排除,让该网络可以快速的为用户提供高质量的服务,本申请实施例还可以包括:基于目标故障根因,对第一网络进行维护。

第二方面,还提供了一种用于故障根因的识别装置,包括:第一确定单元,用于根据第一网络中的第一失败流,从多条第一成功流中确定与第一失败流相关的第一目标成功流,其中,第一目标成功流与第一失败流具有高相似度;第二确定单元,用于根据第一失败流的特征指标、第一目标成功流的特征指标和已训练的第一机器学习模型,确定第一失败流的目标故障根因。

在第二方面的第一种可能的实现方式中,本申请实施例还可以包括对第一机器学习模型的训练过程,具体由第三确定单元、第四确定单元和训练单元实现,即,该装置还包括:第三确定单元,用于确定第二网络中的多条第二失败流和与每条第二失败流对应的第一已知故障根因;第四确定单元,用于从第二网络的多条第二成功流中为每条第二失败流分别确定一条相关的第二目标成功流,其中,每条第二失败流和与其相关的第二目标成功流具有高相似度;训练单元,用于根据多条第二失败流的特征指标、与每条第二失败流对应的第一已知故障根因和与每条第二失败流相关的第二目标成功流的特征指标进行训练,得到第一机器学习模型。

其中,本申请实施例的装置中所提及的流,例如:第一失败流、第一目标成功流、多条第一成功流、多条第二失败流、与每条第二失败流相关的第二目标成功流和多条第二成功流,均为tcp流、ip流或者udp流。可以理解的是,第一失败流、第一目标成功流、多条第一成功流为同一类型的流,同理,多条第二失败流、与每条第二失败流相关的第二目标成功流和多条第二成功流也必须是同一类型的流。

可以理解的是,第一目标成功流与第一失败流具有高相似度,具体为:第一目标成功流与第一失败流之间的相似度大于预设相似度阈值,或,第一目标成功流与第一失败流之间的相似度属于第一网络中的多个第一成功流与第一失败流的相似度中最大的前n个,n为预设值。

在第二方面的第二种可能的实现方式中,该装置的第一确定单元,具体可以包括:获取子单元,用于获取第一网络中第一失败流的特征指标,以及第一网络中多条第一成功流的特征指标;计算子单元,用于基于目标系数集合、第一失败流的特征指标以及各第一成功流的特征指标,计算各第一成功流和第一失败流之间的相似度;目标系数集合包括的每个目标系数分别与第一失败流中的一个特征指标以及每个第一成功流中的一个特征指标对应;第一确定子单元,用于将计算所得的多个相似度中最高的相似度对应的第一成功流记作第一目标成功流。

其中,该实现方式中还可以包括对目标系数集合的确定过程,具体可以由该装置中的获取单元、计算单元、第五确定单元、第六确定单元和第七确定单元实现,即,该装置还包括:获取单元,用于获取第三网络中第三失败流的特征指标,以及第三网络中多条第三成功流的特征指标;计算单元,用于分别基于随机选取的多个初始系数集合,第三失败流的特征指标以及各第三成功流的特征指标,计算各初始系数集合下,各第三成功流和第三失败流之间的相似度;第五确定单元,用于基于计算所得的多个相似度,确定每个初始系数集合下第三失败流对应的第三目标成功流;第六确定单元,用于根据第三失败流的特征指标、多个初始系数集合对应的第三目标成功流的特征指标和第二机器学习模型,确定每个初始系数集合下第三失败流对应的第二学习故障根因与第三失败流对应的第二已知故障根因之间的差异;第七确定单元,用于根据多个初始系数集合和每个初始系数集合对应的差异,确定目标系数集合。其中,初始系数集合可以是采用e-贪心算法随机选择的。

作为一个示例,对于上述“第六确定单元”,具体可以通过下述方式实现:第三确定子单元,用于基于初始系数集合,计算各第三成功流和第三失败流之间的相似度,并基于计算所得的多个相似度,确定初始系数集合对应的第三失败流对应的第三目标成功流;处理子单元,用于将第三失败流和第三目标成功流输入到第二机器学习模型,并根据第二机器学习模型的输出结果,确定第三失败流对应的第二学习故障根因,计算第二学习故障根因与第三失败流对应的第二已知故障根因之间的第一差异;调整子单元,用于基于第一差异对第二机器学习模型进行参数调整,将参数调整后的第二机器学习模型重新作为第二机器学习模型,并返回触发所述处理子单元执行;直到满足参数调整次数达到预设次数阈值,或者,当前的第二学习故障根因与第二已知故障根因之间的第一差异小于预设差异阈值,则,触发第四确定子单元执行,具体用于:根据多次计算所得的多个第一差异,确定初始系数集合对应的差异。

作为一个示例,上述第七确定单元,具体可以包括:拟合子单元,用于对多个初始系数集合和每个初始系数集合对应的差异进行拟合;第二确定子单元,用于确定拟合结果中最小值点对应的系数集合为目标系数集合。

可以理解的是,目标故障根因包括:ip下线、应用下线、安全设备层异常、路由设备层异常、网口出错或者应用负载过重。

在第一方面的第三种可能的实现方式中,为了可以让该连通性故障可以被快速的排除,让该网络可以快速的为用户提供高质量的服务,本申请实施例提供的装置还可以包括:维护单元,用于基于目标故障根因,对第一网络进行维护。

需要说明的是,本申请实施例在第二方面提供的装置,实现效果可以参见上述第一方面提供的方法的描述,这里不再赘述。

第三方面,本申请实施例提供了一种用于故障根因的识别设备,该设备具有实现上述方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,上述设备的结构中包括处理器和收发器,所述处理器被配置为处理该用于故障根因的识别装置执行上述方法中相应的功能。所述收发器用于实现上述用于故障根因的识别装置与其他设备之间的通信。所述用于故障根因的识别设备还可以包括存储器,所述存储器用于与处理器耦合,其保存该用于故障根因的识别设备必要的程序指令和数据。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。

第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。

第六方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持上述装置或用户设备实现上述方面中所涉及的功能,例如,生成或处理上述方法中所涉及的信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存数据发送设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本申请实施例中一机器学习模型的结构示意图;

图2为本申请实施例中一种用于故障根因的识别方法的流程示意图;

图3为本申请实施例中步骤201的一实现方式的流程示意图;

图4为本申请实施例中第一机器学习模型的一结构示意图;

图5为本申请实施例中第一机器学习模型的另一结构示意图;

图6为本申请实施例步骤301中的目标系数集合的确定方法的流程图;

图7为本申请实施例步骤604的一实现方式的流程流程图;

图8为本申请实施例中一种用于故障根因的识别装置的结构示意图;

图9为本申请实施例中一种用于故障根因的识别设备的结构示意图。

具体实施方式

为了满足日益增加的数据处理需求,一方面,许多网络中采用冗余设备,即,每个网络中的每层设置多个交换设备作为转发节点;另一方面,将服务器进行物理资源到逻辑资源的抽象,虚拟化为多台虚拟机(英文:virtualmachine,简称:vm),提升了资源利用率。

随着网络架构的日趋复杂化,在网络中为用户提供的应用不断增多,服务器之间、vm之间或者服务器和vm之间的各类访问也十分频繁,而各类流可以记录每次访问(包括连接请求和应答消息等)的相关信息。在各类流产生的基数较大的情况下,由于ip下线、应用下线或者应用负载过重等状况导致各类访问连接建立失败的情况时有发生,视作该网络发生了连通性故障,各类流中也就包括了记录有这些访问连接建立失败时所对应的相关信息的失败流。

为了保证业务不中断、网络可以持续有序地运行,需要准确的找出导致该访问发生连通性故障的故障根因,从而可以高效且有针对性的排除故障,恢复网络的正常运行。而确定失败流的故障根因的一种常用的方式为:由用户主动发现访问连接建立失败的状态并进行相应的投诉操作后,由技术人员分析、查找该网络中产生的失败流,并通过数据分析确定导致该失败流失败的故障原因。如此,不仅耗费技术人员的时间和精力,而且该处理方式处理效率低下,难以满足用户对于时效性的要求,且需要用户自主投诉发生的异常,大大较低了网络带给用户的体验。

为了解决上述人工确定失败流的故障根因存在的问题,还可以搭建并且训练一个用于识别失败流连通性故障的故障根因的机器学习模型,例如:参见图1所示的机器学习模型,其中,该机器学习模型100包括卷积神经网络模块110和全连接模块120,卷积神经网络模块110可以包括:卷积层111、归一化层112和第一激活层113;全连接模块120可以包括:第一全连接层121、第二激活层122和第二全连接层123。但是,对于该单输入通道的机器学习模型100,由于网络中产生的流记录的信息复杂繁多,即使对卷积神经网络模块110和全连接模块120进行合理的搭建,而且以足够大的训练样本集训练,该机器学习模型100也不能准确的得出所输入的失败流的真实故障根因,而且该机器学习模型100只适用于对训练样本对应的网络所产生的失败流进行故障根因识别,不可以被推广应用,所以,该机器学习模型100无论输入的是网络中所有流还是该网络中所有的失败流,无论进行多少次训练,均不能被在线广泛应用。

基于此,为了克服上述机器学习模型100无法收敛,不能准确的识别和被广泛推广使用的问题,在本申请实施例中,提供了一种可以自动和准确的识别出失败流故障根因的方法,即,从第一网络的多个第一成功流中,为该第一网络中产生的第一失败流确定与该第一失败流相关的第一目标成功流,为该第一失败流引入与其具有高相似度的第一目标成功流;接着,通过该第一失败流和该第一目标成功流和已训练的第一机器学习模型,该已训练完成的第一机器学习模型即可对比学习具有高相似度的两个流,较为容易发现这两个流之间之间的少部分差异,那么,就可以有效的分析出该差异对应的目标故障根因,即导致该第一失败发生连通性故障的根本原因,如此,无需通过技术人员去人工分析确定故障根因,也弥补了采用例如图1的方式确定的故障根因不够准确和无法广泛推广使用的问题,从而节约了网络的维护升本,提高了用户使用网络的体验。

下面结合附图,通过实施例来详细说明本申请实施例中一种故障根因的识别方法的具体实现方式。

参见图2,示出了本申请实施例中一种用于故障根因的识别方法的流程示意图。该用于故障根因的识别方法具体可以包括:

步骤201,根据第一网络中的第一失败流,从多条第一成功流中确定与该第一失败流相关的第一目标成功流,其中,该第一目标成功流与该第一失败流具有高相似度。

可以理解的是,流用于记录网络(例如:dcn)中的服务器之间、vm之间或者服务器与vm之间的发生的各类访问的相关信息。需要说明的是,各类访问产生对应类型的流,例如:对于记录tcp访问的相关信息的流记作tcp流,对于记录ip访问的相关信息的流记作ip流,对于记录udp访问的相关信息的流记作udp流。

被流记录下的相关信息也记作该流的特征指标,例如:对于tcp访问中产生的tcp流,记录的特征指标可以包括:源ip、源端口、目的ip、目的端口、请求连接时间、请求方向状态标志、应答方向状态标志、请求方向所经过的每个转发节点的ip地址和应答方向所经过的每个转发节点的ip地址。

根据流中记录的特征指标,可以确定产生的流是否为失败流。例如:可以通过对tcp流所记录的特征指标进行分析确定tcp流是否为失败tcp流,一种情况下,如果该tcp流中记录的发出相同请求的数目过多,但是未接收到与该请求对应的应答,可以认为该tcp流为失败tcp流;另一种情况下,如果该tcp流中发出相同请求的数目过多且请求之后源节点和目的节点之间没有数据交互,也可以认为该tcp流为失败tcp流。再例如:也可以通过读取tcp流中的请求方向状态标志和应答方向状态标志,确定该tcp为失败tcp流,一种情况下,当tcp流记录的特征指标中,请求方向状态标志表示失败,那么,可以认为该tcp流为失败tcp流;另一种情况下,当tcp流记录的特征指标中,应答方向状态标志也表示失败,那么,可以认为该tcp流为失败tcp流。

可以理解的是,每个网络中,每时每刻均可以产生很多的流,一旦出现失败流,则表示有用户的对应访问建立失败,那么,为了让该网络可以尽快恢复从而用户提供服务,可以根据本申请实施例及时和准确的识别出该失败流的故障根因,从而从根本上排除该故障,以便提升用户体验。

具体实现时,在第一网络中,包括很多第一成功流;当该网络中产生了第一失败流时,可以从这多条第一成功流中选择的与该第一失败流相关的第一成功流,作为第一目标成功流。需要说明的是,第一网络,是指连通性故障导致出现第一失败流的任何网络,不是特指某一个特定的网络。

可以理解的是,第一目标成功流与第一失败流相关,是指该第一目标成功流和第一失败流之间具有高相似度,具体可以下述两种可能的情况:第一目标成功流与第一失败流之间的相似度大于预设相似度阈值;或者,第一目标成功流与第一失败流之间的相似度属于第一网络中的多个第一成功流与第一失败流的相似度中最大的前n个,n为预设值。

作为一个示例,第一目标成功流和第一失败流之间具有高相似度可以是第一目标成功流与第一失败流之间的相似度大于预设相似度阈值。其中,预设相似度阈值,是指第一成功流的特征指标与第一失败流的特征指标的相似度的最小允许值,当第一成功流的特征指标与第一失败流的特征指标的相似度大于该预设相似度阈值时,表示该第一成功流与第一失败流是具有高相似度的两个流,那么,可以确定该第一成功流为第一目标成功流;否则,当第一成功流的特征指标与第一失败流的特征指标的相似度不大于该预设相似度阈值时,表示该第一成功流与第一失败流的相似度不够高,那么,可以确定该第一成功流不是该第一失败流对应的第一目标成功流。

可以理解的是,两条流的相似度,具有与两条流包括的各特征指标(如:源ip、源端口、目的ip、目的端口、请求连接时间、请求方向状态标志、应答方向状态标志、请求方向所经过的每个转发节点的ip地址和应答方向所经过的每个转发节点的ip地址),以及每个特征指标对应设置的权重系数相关。

在一个例子中,两条流的相似度的计算方式具体可以是:将两条流的各个对应的特征指标的多位分别相与;再将每个特征指标对应的与运算后的结果与该特征指标对应的权重系数相乘;最后把多个乘积相加。例如:对于dcn中的两条tcp流:tcp流1和tcp流2,假设tcp流1包括:源ip:aaaa、源端口:bb、目的ip:cccc、目的端口:dd、请求连接时间:efef、请求方向状态标志:gggg、应答方向状态标志:hhhh,tcp流2包括:源ip:iiii、源端口:jj、目的ip-kkkk、目的端口:ll、请求连接时间:mnmn、请求方向状态标志:oooo、应答方向状态标志:pppp,且对应设置的权重为:源ip:0.1、源端口:0.2、目的ip:0.1、目的端口:0.2、请求连接时间:0.2、请求方向状态标志:0.1、应答方向状态标志:0.1,那么,该tcp流1和tcp流2中,源ip这一特征指标的相似度为:r1=0.1*(aaaa&iiii),其中,&代表“与”运算,同理,源端口这一特征指标的相似度为:r2=0.2*(bb&jj),以此类推,可以得到目的ip对应的相似度r3、目的端口对应的相似度r4、请求连接时间对应的相似度r5、请求方向状态标志对应的相似度r6和应答方向状态标志对应的相似度r7,至此,可以计算该tcp流1和tcp流2的相似度为:r=r1+r2+……+r6+r7。

需要说明的是,两条流的相似度也可以采用其他的计算方式,例如:将上述例子中的与运算替换为异或运算,只要获得的计算结果可以体现两条流的相关程度,均可以作为本申请实施例中计算流的相似度的计算方式。

以第一网络为第一dcn,流的类型为第一dcn中的tcp流进行举例说明:假设第一dcn中预设相似度阈值为85%,且该第一dcn中包括第一成功tcp流1、第一成功tcp流2和第一成功tcp流3,第一失败tcp流4;那么,可以先分别计算得到第一成功tcp流1和第一失败tcp流4之间的相似度为80%,第一成功tcp流2和第一失败tcp流4之间的相似度为50%,以及第一成功tcp流3和第一失败tcp流4之间的相似度为90%;再分别比较计算所得的多个相似度是否大于85%,发现只有第一成功tcp流3和第一失败tcp流4之间的相似度90%大于85%,则,确定第一成功tcp流3为与第一失败tcp流4相关的第一目标成功tcp流。

作为另一个示例,第一目标成功流和第一失败流之间具有高相似度,也可以是从第一网络中的多条成功流与第一失败流的多个相似度中,选择相似度最大的前n个,n为预设值。可以理解的是,n可以是技术人员根据经验或者根据网络的实际情况,预先设置的需要确定的与第一失败流相关的第一目标成功流的数目。

一些情况下,可以根据该第一网络的架构复杂程度进行设置n的取值,为后续确定该第一失败流的目标故障根因提供充足的数据基础。如果该第一网络中包括了较多的转发节点,结构复杂,则,可以为第一失败流确定数目较多的第一目标成功流,即,第一网络结构越复杂,设置n越大;如果该第一网络中包括了较少的转发节点,结构相对简单,则,可以为第一失败流确定数目较少的第一目标成功流,即,第一网络结构越简单,设置n越小,例如:可以设置n=1(即,为第一失败流确定一个相似度的最高的第一目标成功流)。

以第一网络为第一dcn,流的类型为第一dcn中的ip流进行举例说明:假设第一dcn中预设值n=2,且该第一dcn中包括第一成功ip流1、第一成功ip流2和第一成功ip流3,第一失败ip流4;那么,可以先分别计算得到第一成功ip流1和第一失败ip流4之间的相似度为80%,第一成功ip流2和第一失败ip流4之间的相似度为50%,以及第一成功ip流3和第一失败ip流4之间的相似度为90%;再将多个第一成功ip流按照对应的相似度从大到小的顺序进行排序,可知:90%>80%>50%,多个第一成功ip流按照相似度从大到小的顺序为:第一成功ip流3、第一成功ip流1、第一成功ip流2,那么,选取2个最大的相似度对应的第一成功tcp流,即,选取排在前两位的第一成功tcp流3和第一成功tcp流1,作为和第一失败tcp流4相关的第一目标成功ip流。

n=1可以表示从多条第一成功流中只确定一条与第一失败流相关的第一目标成功流,可以确保该确定出第一目标成功流和第一失败流最为相关,从而使得确定出第一失败流的目标故障根因更加准确,有利用本申请实施例可以被更加广泛的投入各种网络中,为用户提供更好的体验。

在一些可能的实现方式中,参见图3,示出了步骤201的一种具体实现方式,可以包括下述步骤301~步骤303:

步骤301,获取第一网络中第一失败流的特征指标,以及第一网络中多个第一成功流的特征指标。

可以理解的是,当该第一网络中产生了第一失败流后,可以提取该第一失败流中所记录的特征指标,并且,获取该第一网络中的多条第一成功流,从中提取各条第一成功流中记录的特征指标。

需要说明的是,第一网络中多条第一成功流,可能基于该网络中架构的变化或者ip地址的变化而触发更新,也可能周期性触发更新,不是固定不变的。确定第一目标成功流时,一种情况下,为了数据的全面和分析的准确性,该第一网络中的多条第一成功流,可以是指该第一网络中的当前所有第一成功流;另一种情况下,为了节约资源并提升处理速率,该第一网络中的多条第一成功流,也可以是该第一网络中的当前所有第一成功流中的部分第一成功流,例如:从当前所有第一成功tcp流中选取最近3分钟产生的多条第一成功tcp。

其中,第一失败流包括的特征指标的数目,和每条第一成功流的特征指标的数目基本一致,即,第一失败流和每个第一成功流的长度可以是一致的。

步骤302,基于目标系数集合、第一失败流的特征指标以及各第一成功流的特征指标,计算各第一成功流和第一失败流之间的相似度;其中,该目标系数集合包括的每个目标系数分别与第一失败流的一个特征指标以及每个第一成功流的一个特征指标对应。

可以理解的是,目标系数集合,是多个目标系数的组成的集合。每个目标系数与流中的一个特征指标对应,用于计算该特征指标在第一失败流中的数值与在第一成功流中的数值之间的相似度。

作为一个示例,可以通过下述公式(1)计算该第一失败流与每一条第一成功流之间的相似度:

bi=wb×(f&si)公式(1)

其中,wb表示目标系数集合,其中包括j个目标系数wbj,f表示第一失败流,si表示第i条第一成功流,两组特征指标对应位数的值相与后,与对应的目标系数wbj组成的多位数进行各位相乘之后求和,得到第i条第一成功流与第一失败流之间的相似度bi,i=1,2,…,m。在该例子中,wbj可以采用多臂老虎机算法确定,也可以通过其他的实现方式确定,在此不作具体限定。

以第一失败流和第一成功流的类型均为tcp流进行举例说明:假设第一失败tcp流包括特征指标a、b、c和d,第一条第一成功tcp流对应包括特征指标a1、b1、c1和d1,第二条第一成功tcp流对应包括特征指标a2、b2、c2和d2,目标系数集合对应包括目标系数w11、w12、w13和w14,那么,可以根据上述公式(1)计算该第一条第一成功tcp流和第一失败tcp流之间的相似度b1:b1=w11×(a&a1)+w12×(b&b1)+w13×(c&c1)+w14×(d&d1);同理,可以根据上述公式(1)计算该第二条第一成功tcp流和第一失败tcp流之间的相似度b2:b2=w11×(a&a2)+w12×(b&b2)+w13×(c&c2)+w14×(d&d2)。依次类推,可以针对每个第一成功tcp流,计算出一个该第一成功tcp流与第一失败tcp流之间的相似度。

步骤303,将计算所得的多个相似度中最高的相似度对应的第一成功流记作第一目标成功流。

通过步骤302可以计算得到第一失败流与每个第一成功流之间的相似度,从而可以从该多个相似度中确定一个或者多个最高的相似度,将该一个或者多个最高的相似度对应的第一成功流记作第一目标成功流。

作为一个示例,当计算出多条第一成功流对应的多个bi后,可以根据下述公式(2)选取最大bi对应的那条第一成功流,作为该第一失败流对应的第一目标成功流:

ib=argmax(bi)公式(2)

其中,该argmax()是用于求取bi的最大值对应的si,ib是确定的bi的最大值对应的si,记作第一目标成功流。

需要说明的是,该实现方式下步骤302中的目标系数集合可以是通过强化学习算法基于多个初始系数集合确定的,具体确定目标系数集合的实现方式参见下述图6所示的实施例的相关描述,在此不再赘述。

在另一些可能的实现方式中,步骤201也可以通过其他的方式实现,例如:将第一网络中的多条第一成功流和第一失败流输入到已训练的第三机器学习模型中,并根据该第三机器学习模型的输出结果,确定第一目标成功流。

可以理解的是,第三机器学习模型,是用于从多个第一成功流中确定与第一失败流具有高相似度的第一目标成功流。该第三机器学习模型是通过构建的第三初始机器学习模型采用大量的训练样本集进行训练得到的已训练的模型,其中,训练样本集中的每个训练样本具体可以包括属于同一网络中的多个条成功流和失败流。

为了确保已训练的第三机器学习模型处理的准确性,需要提供多样的训练样本,即,训练样本集中的各个训练样本可以来自同一网络,但是每个训练样本中包括不同的失败流;该训练样本集中的各个训练样本也可以来自不同的网络。

需要说明的是,对第三机器学习模型进行训练得到已训练的第三机器学习模型的具体过程,即为确定该第三机器学习模型中对应的目标系数集合的过程,可以参见下述图6所示的实施例的相关描述,在此不再赘述。

具体实现时,由于第一成功流和第一失败流中均包括多个特征指标,为了步骤201可以有效的在多条第一成功流中确定与第一失败流相关的第一目标成功流,可以在步骤201之前,先将多条第一成功流和第一失败流进行数据格式转换,得到具有相同数据格式的多条第一成功流和第一失败流。需要说明的是,该对多条第一成功流和第一失败流进行数据格式转换的预处理功能,可以是由独立于实现步骤201的功能单元的一个预处理模块实现;也可以集成于该实现步骤201的功能单元中,由该该实现步骤201的功能单元实现。

以第一失败流和第一成功流的类型均为tcp流进行举例说明:将第一失败tcp流和每个第一成功tcp流的数据格式均转换为预设数据格式,预设数据格式为:源ip、源端口、目的ip、目的端口、请求连接时间、请求方向状态标志、应答方向状态标志、请求方向所经过的每个转发节点的ip地址和应答方向所经过的每个转发节点的ip地址,如此,对转换后具有相同数据格式的多条第一成功tcp流和第一失败tcp流执行步骤201,即可对每个第一成功tcp流分别和第一失败tcp流中的特征指标依次进行对应比较和学习,无需在特征指标比对之前再查找与该第一失败tcp中的该特征指标是第一成功tcp流的哪个相应的特征指标,提高了步骤201的处理效率和准确性。

此外,步骤201还可以通过其他的方式实现,例如:通过其他的计算公式以及确定目标相似度的预设规则,确定与第一失败流相似的第一目标成功流,其中,该计算公式以及确定目标相似度的预设规则可以由技术人员根据实际需要或者专业经验设定,在此不再赘述。

可以理解的是,根据步骤201确定出与第一失败流的特征指标相关的第一目标成功流,为步骤202中通过双通道的第一机器学习模型学习该第一失败流提供了充分和有效的数据基础,为识别出该第一失败流的准确的目标故障根因提供了必要的前提条件。

步骤202,根据第一失败流的特征指标、第一目标成功流的特征指标和已训练的第一机器学习模型,确定所述第一失败流的目标故障根因。

作为一个示例,可以将第一失败流和第一目标成功流输入到已训练的第一机器学习模型中,并根据第一机器学习模型的输出结果,确定该第一失败流的目标故障根因。

可以理解的是,第一机器学习模型,是用于对输入的第一目标成功流和第一失败流进行学习,确定并输出与该第一失败流的目标故障根因对应的输出结果。该第一机器学习模型是通过对构建的第一机器学习模型采用大量的训练样本集进行训练得到的已训练的模型,其中,训练样本集中的每个训练样本具体可以包括属于同一网络中的多条成功流和失败流。

为了确保已训练的第一机器学习模型处理的准确性,需要提供多样的训练样本,即,训练样本集中的各个训练样本可以来自同一网络,但是每个训练样本中包括不同的失败流;该训练样本集中的各个训练样本也可以来自不同的网络。

具体实现时,对第一机器学习模型进行训练得到已训练的第一机器学习模型的过程具体可以包括:首先,确定第二网络中的多条第二失败流和与每条第二失败流对应的第一已知故障根因;然后,从该第二网络的多条第二成功流中为每条第二失败流分别确定一条相关的第二目标成功流,其中,每条第二失败流和与其相关的第二目标成功流具有高相似度;接着,根据多条第二失败流的特征指标、与每条第二失败流对应的第一已知故障根因和与每条第二失败流相关的第二目标成功流的特征指标进行训练,得到所述第一机器学习模型。

作为一个示例,对第一机器学习模型进行训练得到已训练的第一机器学习模型,采用的训练样本集中的训练样本可以包括:第二网络中的已知故障根因为第一故障根因的第二失败流和与该第二失败流相关的第二目标成功流,每个训练样本,对初始构建的第一机器学习模型进行训练的过程具体可以包括:第一步,将第二失败流和第二目标成功流输入到第一机器学习模型,根据输出结果确定第一学习故障根因;第二步,判断第一学习故障根因与第一已知故障根因是否一致,如果不一致,则对第一机器学习模型进行参数调整,将参数调整后的第一机器学习模型重新作为第一机器学习模型,并返回执行第一步;直到第一学习故障根因与第一已知故障根因一致,则确定当前的第一机器学习模型为步骤202中提及的已训练的第一机器学习模型。

在一些实现方式中,第一机器学习模型的结构如图4所示,该第一机器学习模型400具体可以包括:第一神经网络模块410、第二神经网络模块420和第三神经网络模块420。该第一机器学习模型400中各模块的连接关系及信号传输方向具体为:第一神经网络模块310的输入可以是第一失败流本身或者第一失败流经过处理后的相关数据;第二神经网络模块420的输入可以是第一目标成功流本身或者第一目标成功流经过处理后的相关数据;第一神经网络模块410和第二神经网络模块420将输出端连接到第三神经网络模块430的输入端,第三神经网络模块430的输出为第一机器学习模型400的输出。

的一个例子中,具体可以参见图5,对于第一神经网络模块410,按照输入数据流经的顺序依次可以包括:第一卷积层411、第一归一化层412和第三激活层413;对于第二神经网络模块420,按照输入数据流经的顺序依次可以包括:第二卷积层421、第二归一化层422和第四激活层423;对于第三神经网络模块430,按照输入数据流经的顺序依次可以包括:第三全连接层431、第五激活层432和第四全连接层433;且,在第一神经网络模块410和第二神经网络模块420的输出端接入第三神经网络模块430之间,还可以包括连接模块440,用于将第一神经网络模块410和第二神经网络模块420的输出端的数据进行连接后输入给第三神经网络模块430进行后续分析。

需要说明的是,该第一机器学习模型不仅可以采用卷积神经网络、全连接网络进行搭建,还可以采用其他的网络算法,例如:随机森林网络、长短期记忆网络(英文:longshort-termmemory,简称:lstm)、遗传算法网络等来构建。只要可以实现对第一失败流和第一目标成功流的学习,输出与第一失败流的目标故障根因对应的输出结果,均可以作为构建该第一机器学习模型的网络。

具体实现时,在确定了第一失败流相似的第一目标成功流后,可以将第一失败流和第一目标成功流本身或者其处理后的相关数据输入至已训练的第一机器学习模型中,该第一机器学习模型经过对输入的处理,输出与第一失败流的目标故障根因对应的输出结果。那么,一种情况下,该输出结果可以是第一失败流的目标故障根因本身,如此,可以直接将该输出结果确定为第一失败流的目标故障根因;另一种情况下,该输出结果可以是第一失败流的目标故障根因对应的标识,如此,可以通过对该输出结果的分析,才可以确定出标识对应的目标故障根因,例如:输出结果为数字1~n,(n(n,n为整数),每个数字对应一个故障根因,如,1:ip下线、2:应用下线、3:安全设备层异常、4:路由设备层异常、5:网口出错、6:应用负载过重等,该对应关系是预先设置的,那么,当该第一机器学习模型的输出结果为1时,通过与该预先设置的对应关系的对比可知,该第一失败流对应的目标故障根因为ip下线。

需要说明的是,对于同一个失败流而言,导致该失败流对应的访问出现连通性故障的原因,可能有多个。但是,为了方便识别该失败流的故障根因以及方便后续网络的维护,技术人员根据经验累积或者实际情况,可以为多个可能导致访问发生连通性故障的原因设置不同的优先级,一旦出现多个原因导致某个访问发生连通性故障,就可以根据各个原因的优先级,将优先级最高的原因作为导致该访问发生连通性故障的根本原因,即,对应该失败流的故障根因。

在步骤202之后,为了可以让该连通性故障可以被快速的排除,让该网络可以快速的为用户提供高质量的服务,本申请实施例还可以包括:基于目标故障根因,对第一网络进行维护。一种情况下,可以根据目标故障根因,自动的、针对性的修复该连通性故障,恢复该访问路径;另一种情况下,对于不可以自动排除的连通性故障,可以将该目标故障根因发送到维护管理平台或者维护人员的客户端上,提示维护人员作出对应的修复。

可见,在本实施例中,通过从第一网络的多个第一成功流中确定与第一失败流相关的第一目标成功流,即,确定了与该第一失败流只有少部分特征指标存在差异的第一目标成功流,利用大量的具有较少差异的成功和失败流反复训练出第一机器学习模型,即可快速、准确的学习该第一目标成功流和第一失败流的特征指标之间的差异,从而可以根据该已训练的第一机器学习模型的输出结果准确的得出该第一失败流的目标故障根因,如此,实现了对网络中发生连通性故障后产生的失败流的故障根因的准确识别,从而节约了网络的维护升本,提高了用户使用网络的体验。

在介绍完本申请实施例提供的用于故障根因的识别方法之后,下面结合附图对本申请实施例中涉及到通过强化学习算法确定与第一失败流相关的第一目标成功流的实现方式进行阐述。

在介绍该过程之前,需要说明的是,本申请实施例中,第一网络、第二网络和第三网络,可以是同一个网络,也可以是不同的网络;同理,第一成功流、第二成功流和第三成功流可以是同一个网络中的多个相同的成功流,也可以是同一个网络中的不同的多个成功流,还可以是不同网络中的不同的多个成功流;第一失败流、第二失败流和第三失败流,可以是同一网络中的不同失败流,也可以是不同网络中的失败流;在本申请实施例中不作具体限定。

需要说明的是,第一失败流、多个第一成功流和第一目标成功流必须是同一类型的流,同理,第二失败流、多个第二成功流和第二目标成功流也必须是同一类型的流,第三失败流、多个第三成功流和第三目标成功流也必须是同一类型的流。例如:第一失败流为udp流,那么,多个第一成功流和第一目标成功流也必须是udp流。

对于强化学习样本,除了要包括网络中的多个成功流,还需要包括已知故障根因的失败流,对于训练样本中的失败流的获取方式:一种情况下,可以由技术人员对已有的失败流进行人工分析和排查,从而获得的该失败流对应的故障根因。另一种情况下,也可以通过人工制造确定的连通性故障的方式,获得失败流,且该失败流的已知故障根因即为人工制造的连通性故障对应的故障原因,例如:可以对网络中的访问采取:人工关闭某些ip、下线某些应用、改变某些防火墙策略、改变某些路由转发路径、制造某些超负载应用等措施,从而得到对应已知故障根因的失败流。

具体实现时,为了第一失败流输入到已训练的第一机器学习模型后,该第一机器学习模型可以准确的为其确定出目标故障根因,需要确定可以准确确定出第一失败流具有高相似度的第一目标成功流,这就需要确定出可以准确计算各第一成功流和第一失败流之间相似度的目标系数集合,具体的确定方法如图6所示,可以包括下述步骤601~步骤605:

步骤601,获取第三网络中第三失败流的特征指标,以及该第三网络中多个第三成功流的特征指标。

可以理解的是,可以预先在训练样本集中确定训练样本,该训练样本可以包括第三网络中的多条第三成功流,已知故障根因为第二已知故障根因的第三失败流。那么,根据步骤601获取该训练样本中各流的特征指标,为后续计算相似度从而确定目标系数集合提供了数据基础。

步骤602,分别基于随机选取的多个初始系数集合,第三失败流的特征指标以及各第三成功流的特征指标,计算各初始系数集合下,各第三成功流和第三失败流之间的相似度。

可以理解的是,多个初始系数集合的每组初始系数集合中,可以包括固定数目的初始系数,该固定数目可以由第三网络中各流包括的特征指标的数目确定。

作为一个示例,可以采用摇臂老虎机算法产生多个初始系数集合,具体的产生过程包括:确定每组初始系数集合包括l个初始系数(l为正整数),预先设置每个初始系数包括n种状态,例如:n=5,5种状态分别可以是预先设置的:0,0.2,0.4,0.6,0.8;那么,该老虎机则包括nl条摇臂,每条摇臂对应一个初始系数集合。

具体实现时,可以采用e-贪心算法随机从多个初始系数集合中选择当前要被进行强化学习的初始系数集合。具体实现方式可以包括:假设预设设置e=0.8,那么,在选择初始系数集合之前,产生一个随机数a,如果a<e,则,从所有的初始系数集合中随机选择一个初始系数集合作为待强化学习的初始系数集合;如果a≥e,则,从强化学习后的初始系数集合中选择一个强化学习效果最好的(即,已经确定第三失败流对应的第二学习故障根因与第三失败流对应的第二已知故障根因之间的差异中的最小差异)的初始系数集合,再进行一次强化学习。这样,可以既保证选择的初始系数集合的随机性,又可以对强化学习较好的初始系数结合进行多次强化学习,即,即确保了选取数据的全面性,又提升了数据的有效性,使强化学习更快更好的收敛。

作为另一个示例,假设每组初始系数集合包括l个初始系数,那么,可以产生预设个数的初始系数集合,每个初始系数集合中包括5个随机产生的初始系数。

具体实现时,在确定了待强化学习的初始系数集合后,即可基于随机选取的初始系数集合,以及步骤601中获取到的第三失败流的特征指标以及各第三成功流的特征指标,根据上述公式(1)计算在该初始系数集合下,各第三成功流和第三失败流之间的相似度。

步骤603,基于计算所得的多个所述相似度,确定每个初始系数集合下的第三失败流对应的第三目标成功流。

可以理解的是,可以从该多个相似度中确定一个或者多个最高的相似度,将该一个或者多个最高的相似度对应的第三成功流记作第三目标成功流。作为一个示例,可以采用上述公式(2)计算在该初始系数集合下,第三失败流对应的第三目标成功流。

步骤604,根据第三失败流的特征指标、多个初始系数集合对应的第三目标成功流的特征指标和第二机器学习模型,确定每个初始系数集合下第三失败流对应的第二学习故障根因与第三失败流对应的第二已知故障根因之间的差异。

具体实现时,将多个初始系数集合对应的第三目标成功流分别和第三失败流输入到第二机器学习模型,并根据第二机器学习模型的输出结果,确定每个初始系数集合下第三失败流对应的第二学习故障根因与第三失败流对应的第二已知故障根因之间的差异。

可以理解的是,该第二机器学习模型可以是构建的与第一机器学习模型结构相同的机器学习模型,也可以是任何训练状态下的第一机器学习模型,在此不进行具体限定,该第二机器学习模型的输入可以是任何失败流以及确定的该失败流对应的目标成功流,输出可以表示该失败流的学习故障根因。

具体实现时,首先,可以根据第二机器学习模型的输出结果,确定每个初始系数集合下第三失败流对应的第二学习故障根因;然后,可以将该第二学习故障根因与第三失败流对应的第二已知故障根因进行比较,确定第二学习故障根因与第二已知故障根因之间的差异。需要说明的是,该差异可以用于体现:该初始系数集合用于确定失败流对应的目标成功流,与目标系数集合确定失败流对应的目标成功流之间的准确程度的差异。

作为一个示例,如图7所示,对于每个初始系数集合,执行步骤604的过程具体可以包括:

步骤6041,基于初始系数集合,计算各第三成功流和第三失败流之间的相似度,并基于计算所得的多个相似度,确定该初始系数集合对应的第三失败流对应的第三目标成功流。

需要说明的是,具体实现过程可以参见步骤602~步骤603中的相关描述。

步骤6042,将第三失败流和第三目标成功流输入到第二机器学习模型,并根据第二机器学习模型的输出结果,确定第三失败流对应的第二学习故障根因。

需要说明的是,具体实现过程可以参见步骤202中的相关描述。

步骤6043,计算第二学习故障根因与第三失败流对应的第二已知故障根因之间的第一差异。

可以理解的是,第二已知学习故障根因和该第二机器学习模型输出的第二学习故障根因是不同的,该不同由两方面的原因引起:第一,第二机器学习模型不是已训练的第一机器学习模型,第二,确定的第三目标成功流与第三失败流相关的目标成功流存在区别。

具体实现时,可以将第二学习故障根因和第二已知故障根因进行差异化比较,得到第一差异,用于表示当前强化学习状态下存在的差异。

步骤6044,判断是否满足:参数调整次数达到预设次数阈值,或者,当前的第二学习故障根因与第二已知故障根因之间的第一差异小于预设差异阈值,如果否,则执行步骤6045,否则,执行步骤6046。

需要说明的是,为了弱化第二机器学习模型不是已训练的第一机器学习模型导致出现该第一差异这一原因,可以在同一初始系数集合确定第三目标成功流的基础上,对该第二机器学习模型进行多轮学习,并记录每轮学习后的第二机器学习模型输出结果确定的第一差异,从而确定该初始系数集合下,由确定的第三目标成功流与第三失败流相关的目标成功流之间的区别,而造成的相对准确的差异,以便为后续确定目标系数集合提供有效的数据基础。

可以理解的是,对于第二机器学习模型的多轮学习的截止条件,一种情况下,可以预先设置预设次数阈值(例如:100),那么,需要对第二机器学习模型进行100轮的学习,对应的获得100轮学习所得的100个第一差异;另一种情况下,可以预先设置预设差异阈值,可以理解的是,在对第二机器学习模型的多轮学习过程中,输出的第二学习故障根因大体上是逐渐趋近第二已知故障根因的,即,得到的第一差异在大趋势上是减小的,那么,可以在第一差异小于预设差异阈值时,停止对第二机器学习模型的学习,得到多个第一差异。

在一次学习过后,判断是否满足第二机器学习模型的多轮学习的截止条件,当不满足时,继续进行下次学习,即,执行步骤6045;如果满足,则可以结束多轮学习,执行步骤6046。

步骤6045,基于第一差异对第二机器学习模型进行参数调整,将参数调整后的第二机器学习模型重新作为第二机器学习模型,并返回执行步骤6042。

可以理解的是,当没有进行足够轮数的对第二机器学习模型的学习,或者,没有对第二机器学习模型学习到预设的效果时,可以进入对该第二机器学习模型的下一次学习:首先,可以基于该次学习产生的第一差异,对第二机器学习模型进行参数调整;然后,将调整后的第二机器学习模型重新作为新的第二机器学习模型;接着,将第三失败流和第三目标成功流输入到该调整后的第二机器学习模型,并根据调整后的第二机器学习模型的输出结果,确定第三失败流对应的新的第二学习故障根因;最后,计算该新的第二学习故障根因与第二已知故障根因之间的第一差异。如此往复,直到满足了第二机器学习模型的多轮学习的截止条件。

步骤6046,根据多次计算所得的多个第一差异,确定初始系数集合对应的差异。

具体实现时,根据上述步骤6041~步骤6045的多次执行,可以得到该初始系数集合下,第三失败流的第二已知故障根因和多个第二学习故障根因之间的多个第一差异,那么,可以基于多个第一差异,确定该初始系数集合对应的差异,即,步骤604中提及的“第三失败流对应的第二学习故障根因与第三失败流对应的第二已知故障根因之间的差异”。

作为一个示例,可以将多个第一差异的和作为该初始系数集合对应的差异;作为另一示例,也可以将多个第一差异进行求平均处理,将得到的平均值作为该初始系数集合对应的差异;作为再一个示例,还可以按照每轮学习对整体确定目标系数集合的贡献大小,为多个第一差异设置对应的权值,通过第一差异以及其对应权值的加权值作为该初始系数集合对应的差异。

需要说明的是,对于每次选择的初始系数集合,均可以执行步骤602~步骤604,确定每个初始系数集合下第三失败流对应的第二学习故障根因与第三失败流对应的第二已知故障根因之间的差异,其中,对于每次执行步骤604,均可以执行图7所示的实施例,以提高确定的差异的准确性。而且,为了对于每个初始系数集合可以进行相同基准下的处理,需要在对一个初始系数集合处理完成之后,对下一个初始系数集合处理至步骤602时,将第二机器学习模型恢复到未调整之前的状态。

步骤605,根据多个初始系数集合和每个初始系数集合对应的差异,确定目标系数集合。

作为一个示例,步骤605具体可以通过选取的方式实现,例如:直接从多个初始系数集合中,选择最小的差异对应的初始系数集合,作为目标系数集合。

作为另一个示例,步骤605具体还可以通过拟合的方式实现,例如:对多个初始系数集合和每个初始系数集合对应的差异进行拟合;确定拟合结果中最小值点对应的系数集合为目标系数集合。需要说明的是,该目标系数结合可以是多个初始系数集合中的某个初始系数集合,也可以不属于该多个初始系数集合,是一个完全不同的系数集合。例如:以浅层神经网络模拟“摇臂-差异”表,以确定最小的差异对应的目标摇臂,读取该目标摇臂对应的目标系数集合。

如何,经过图6所示的实现方式确定了目标系数集合,可以准确为待处理的第一失败流确定出与其相关的第一目标成功流,即,确定了与该第一失败流只有少部分特征指标存在差异的第一目标成功流,为后续利用大量的具有较少差异的成功和失败流反复训练出的第一机器学习模型处理该第一失败流提供了有效的数据基础,即该第一机器学习模型可以依据第一目标成功流和第一失败流之间的特征指标的差异,准确的输出该第一失败流的目标故障根因,如此,无需通过技术人员去人工分析确定故障根因,也弥补了采用例如图1的方式确定的故障根因不够准确和无法广泛推广使用的问题,从而节约了网络的维护升本,提高了用户使用网络的体验。

需要说明的是,确定目标系数集合,还可以采用其他的方式进行训练得到,只要得到的目标系数集合结合已训练的第一机器学习模型,可以确定出能够有效识别失败流的准确故障根因即可。该确定出的目标系数集合可以被封装为一个模型文件且被集成在一个独立的服务器中,也可以和第一机器学习模型以模型文件的形式被封装在一个服务器中,被广泛推广使用到各个网络中,从而节约了网络的维护升本,提高了用户使用网络的体验。

如图8所示,本申请实施例还示出了本申请实施例提供的一种用于故障根因的识别装置800。该装置800可包括第一确定单元801和第二确定单元802。

具体实现时,该装置可用于执行上述图2中对应的用于故障根因的识别方法。例如:

第一确定单元801,用于根据第一网络中的第一失败流,从多条第一成功流中确定与第一失败流相关的第一目标成功流,其中,第一目标成功流与第一失败流具有高相似度;第二确定单元802,用于根据第一失败流的特征指标、第一目标成功流的特征指标和已训练的第一机器学习模型,确定第一失败流的目标故障根因。

由此,本申请实施例提供的用于故障根因的识别装置能够通过从网络的多个成功流中确定与失败流相似的目标成功流,即,确定与该失败流只有少部分特征指标存在差别的目标成功流,再结合利用大量的具有较少差异的成功和失败流反复训练出的第一机器学习模型,可以准确的学习出该待分析的失败流和其相关的目标成功流之间的特征指标的差别,从而基于这少量存在差别的特征指标,可以准确的输出该失败流的目标故障根因,如此,实现了对导致失败流发生连通性故障的故障根因的准确识别,从而节约了网络的维护升本,提高了用户使用该网络的体验。

可选地,本申请实施例还可以包括对第一机器学习模型的训练过程,具体由该装置的第三确定单元、第四确定单元和训练单元实现,即,该装置还包括:第三确定单元,用于确定第二网络中的多条第二失败流和与每条第二失败流对应的第一已知故障根因;第四确定单元,用于从第二网络的多条第二成功流中为每条第二失败流分别确定一条相关的第二目标成功流,其中,每条第二失败流和与其相关的第二目标成功流具有高相似度;训练单元,用于根据多条第二失败流的特征指标、与每条第二失败流对应的第一已知故障根因和与每条第二失败流相关的第二目标成功流的特征指标进行训练,得到第一机器学习模型。

其中,本申请实施例的装置中所提及的流,例如:第一失败流、第一目标成功流、多条第一成功流、多条第二失败流、与每条第二失败流相关的第二目标成功流和多条第二成功流,均为tcp流、ip流或者udp流。可以理解的是,第一失败流、第一目标成功流、多条第一成功流为同一类型的流,同理,多条第二失败流、与每条第二失败流相关的第二目标成功流和多条第二成功流也必须是同一类型的流。

可以理解的是,第一目标成功流与第一失败流具有高相似度,具体为:第一目标成功流与第一失败流之间的相似度大于预设相似度阈值,或,第一目标成功流与第一失败流之间的相似度属于第一网络中的多个第一成功流与第一失败流的相似度中最大的前n个,n为预设值。

可选地,该装置的第一确定单元801,具体可以包括:获取子单元,用于获取第一网络中第一失败流的特征指标,以及第一网络中多条第一成功流的特征指标;计算子单元,用于基于目标系数集合、第一失败流的特征指标以及各第一成功流的特征指标,计算各第一成功流和第一失败流之间的相似度;目标系数集合包括的每个目标系数分别与第一失败流中的一个特征指标以及每个第一成功流中的一个特征指标对应;第一确定子单元,用于将计算所得的多个相似度中最高的相似度对应的第一成功流记作第一目标成功流。

其中,该实现方式中还可以包括对目标系数集合的确定过程,具体可以由该装置中的获取单元、计算单元、第五确定单元、第六确定单元和第七确定单元实现,即,该装置还包括:获取单元,用于获取第三网络中第三失败流的特征指标,以及第三网络中多条第三成功流的特征指标;计算单元,用于分别基于随机选取的多个初始系数集合,第三失败流的特征指标以及各第三成功流的特征指标,计算各初始系数集合下,各第三成功流和第三失败流之间的相似度;第五确定单元,用于基于计算所得的多个相似度,确定每个初始系数集合下第三失败流对应的第三目标成功流;第六确定单元,用于根据第三失败流的特征指标、多个初始系数集合对应的第三目标成功流的特征指标和第二机器学习模型,确定每个初始系数集合下第三失败流对应的第二学习故障根因与第三失败流对应的第二已知故障根因之间的差异;第七确定单元,用于根据多个初始系数集合和每个初始系数集合对应的差异,确定目标系数集合。其中,初始系数集合可以是采用e-贪心算法随机选择的。

作为一个示例,对于上述“第六确定单元”,具体可以通过下述方式实现:第三确定子单元,用于基于初始系数集合,计算各第三成功流和第三失败流之间的相似度,并基于计算所得的多个相似度,确定初始系数集合对应的第三失败流对应的第三目标成功流;处理子单元,用于将第三失败流和第三目标成功流输入到第二机器学习模型,并根据第二机器学习模型的输出结果,确定第三失败流对应的第二学习故障根因,计算第二学习故障根因与第三失败流对应的第二已知故障根因之间的第一差异;调整子单元,用于基于第一差异对第二机器学习模型进行参数调整,将参数调整后的第二机器学习模型重新作为第二机器学习模型,并返回触发所述处理子单元执行;直到满足参数调整次数达到预设次数阈值,或者,当前的第二学习故障根因与第二已知故障根因之间的第一差异小于预设差异阈值,则,触发第四确定子单元执行,具体用于:根据多次计算所得的多个第一差异,确定初始系数集合对应的差异。

可选地,上述第七确定单元,具体可以包括:拟合子单元,用于对多个初始系数集合和每个初始系数集合对应的差异进行拟合;第二确定子单元,用于确定拟合结果中最小值点对应的系数集合为目标系数集合。

可以理解的是,目标故障根因包括:ip下线、应用下线、安全设备层异常、路由设备层异常、网口出错或者应用负载过重。

可选地,为了可以让该连通性故障可以被快速的排除,让该网络可以快速的为用户提供高质量的服务,本申请实施例提供的装置还可以包括:维护单元,用于基于目标故障根因,对第一网络进行维护。

此外,用于故障根因的识别装置800中的第一确定单元801和第二确定单元802还可实现上述方法中的其他操作或功能,此处不再赘述。

需要说明的是,本申请实施例的该用于故障根因的识别装置800,实现效果可以参见上述图2对应的方法实施例中的相关描述,这里不再赘述。

图9示出了上述实施例中所涉及的用于故障根因的识别设备的一种可能的结构示意图。该用于故障根因的识别设备900包括存储器901、收发器902和处理器903,如图9所示。所述存储器901用于与处理器903耦合,其保存该用于故障根因的识别设备900必要的计算机程序。

具体实现时,所述处理器903被配置为处理该用于故障根因的识别设备900执行图2所示的实施例中的方法的相应功能。所述收发器902用于实现上述用于故障根因的识别设备900与其他设备之间的通信。所述用于故障根因的识别设备900还可以包括存储器901,所述存储器901用于与处理器903耦合,其保存该用于故障根因的识别设备900必要的程序指令和数据。

可以理解的是,该用于故障根因的识别设备900可以使用处理器903根据存储器901中的计算机可读指令执行与附图2对应的内容,例如201~202,与图3对应的内容,例如301-303,与图6对应的内容,例如601-605,与图7对应的内容,例如6041-6046。此外,识别设备900还可以使用处理器903根据存储器901中的计算机可读指令实现图1、4或5所示的机器学习模型,从而进行故障根因分析。该用于故障根因的识别设备900还可以是图8对应的实施例中的用于故障根因的识别装置800。需要说明的是,上述用于故障根因的识别装置800中的各个单元(例如:第一确定单元801、第二确定单元802)可以是软件单元也可以是硬件单元,如果该用于故障根因的识别装置800中的单元是软件单元,那么,这些软件单元可以是存储于该用于故障根因的识别设备900的存储器901中的计算机可读指令中的软件单元。如果该用于故障根因的识别装置800中的单元是硬件单元,在一个例子中,识别装置800中的任意一个单元可以被理解为是基于处理器903、存储器901以及存储器901中用于实现该单元的功能的计算机可读指令实现的。

需要说明的是,本申请实施例的该用于故障根因的识别设备900,实现效果可以参见上述图2对应的方法实施例中的相关描述,这里不再赘述。

本申请实施例中提到的“第一网络”、“第一失败流”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-onlymemory,rom)/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及设备实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1