CN109684181B - 告警根因分析方法、装置、设备及存储介质 - Google Patents
告警根因分析方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109684181B CN109684181B CN201811383913.0A CN201811383913A CN109684181B CN 109684181 B CN109684181 B CN 109684181B CN 201811383913 A CN201811383913 A CN 201811383913A CN 109684181 B CN109684181 B CN 109684181B
- Authority
- CN
- China
- Prior art keywords
- class
- alarm
- topology
- alarms
- chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
Abstract
本申请提供了一种告警根因分析方法、装置、设备及存储介质,涉及运维技术领域。本申请提供了一种基于双重关联性进行告警根因分析的方法,能够融合不同告警的时序关联性以及不同告警的拓扑关联性,来从大量告警中挖掘出根因告警信息。通过基于告警的时序关联信息,对多个告警进行聚类,根据符合拓扑关联条件的目标类来得到根因告警信息,能够筛选出时序和拓扑上同时具有强关联性的告警,而过滤掉时间上偶然相邻的噪声信息以及拓扑上偶然相邻的噪声信息,从而可以避免噪声信息对告警根因分析的干扰,提高告警根因分析的准确性。同时,无需大量的业务领域知识,也无需人工定义推理规则,节约了告警根因分析的开销。
Description
技术领域
本申请涉及运维技术领域,特别涉及一种告警根因分析方法、装置、设备及存储介质。
背景技术
在运维技术中,告警是指被管理的网元在检测到异常事件时生成的通知消息,告警可以视为网元对该异常事件的响应。随着网元数量的飞速增长、网络规模逐渐扩大、网络架构日益复杂,网络在运行时每天都会产生海量的告警,需要分析这些告警中的根因告警,以便根据根因告警定位故障。
目前在进行告警根因分析时,会将任一时间窗划分为多个时间段,获取该时间窗的多个告警,根据每个告警的发生时间,确定每个告警对应的时间段。之后,将每个时间段作为一个项集,得到多个项集。之后,采用关联规则挖掘算法,根据每个项集中告警的数量、每个项集的支持度以及置信度,对所有项集进行频繁项集挖掘,得到支持度大于支持度阈值且置信度大于置信度阈值的频繁项集。之后,对频繁项集进行根因推理,输出告警关联规则,该告警关联规则包括多个告警,其中一个告警是告警关联规则中该告警以外的其他告警的根因告警,因此通过告警关联规则,即可确定根因告警。
由于网络在运行时经常产生噪声信息,导致获取到的告警通常也会混杂大量的噪声信息。而基于上述方案进行告警根因分析时,仅考虑了告警在时间维度上的特征,导致对混杂了噪声信息的项集进行频繁项集挖掘以及根因推理后,得到的告警关联规则的准确性较差,进而导致确定的根因告警的准确性差。
发明内容
本申请实施例提供了一种告警根因分析方法、装置、设备及存储介质,能够解决相关技术中确定的根因告警的准确性差的技术问题。所述技术方案如下:
第一方面,提供了一种告警根因分析方法,所述方法包括:
获取多个告警;
基于所述多个告警的时序关联信息,对所述多个告警进行聚类,得到至少一个类,所述时序关联信息用于指示不同告警在时间维度的关联程度;
基于所述至少一个类的拓扑关联信息,获取所述至少一个类中的目标类,所述拓扑关联信息用于指示对应类中不同告警在空间维度的关联程度,所述目标类的拓扑关联信息符合拓扑关联条件;
基于至少一个所述目标类,输出根因告警信息。
本实施例提供的方法,提供了一种基于双重关联性进行告警根因分析的方法,能够融合不同告警的时序关联性以及不同告警的拓扑关联性,来从大量告警中挖掘出根因告警信息。通过基于告警的时序关联信息,对多个告警进行聚类,根据符合拓扑关联条件的目标类来得到根因告警信息,能够筛选出时序和拓扑上同时具有强关联性的告警,而过滤掉时间上偶然相邻的噪声信息以及拓扑上偶然相邻的噪声信息,从而可以避免噪声信息对告警根因分析的干扰,提高告警根因分析的准确性。同时,无需大量的业务领域知识,也无需人工定义推理规则,节约了告警根因分析的开销。
可选地,所述基于所述多个告警的时序关联信息,对所述多个告警进行聚类,包括:
基于所述多个告警的时序关联信息,对所述多个告警进行递归聚类。
可选地,所述基于所述多个告警的时序关联信息,对所述多个告警进行递归聚类,包括:
对于至少一层递归中的当前层递归,基于所述当前层递归的类的时序关联信息,对所述当前层递归的类中的多个告警进行聚类,得到所述当前层递归的类的至少一个子类。
可选地,所述基于所述至少一个类的拓扑关联信息,获取所述至少一个类中的目标类,包括:
基于所述当前层递归的类的拓扑关联信息,确定所述当前层递归的类符合所述拓扑关联条件;结束递归聚类,将所述当前层递归的类输出为目标类;或者,
基于所述当前层递归的类的拓扑关联信息,确定所述当前层递归的类不符合所述拓扑关联条件;将所述当前层递归的类的子类作为所述当前层递归的下一层递归的类,执行所述下一层递归。
通过这种实现方式,达到的效果至少可以包括:采用时序关联信息和拓扑关联信息这两种关联信息,来对大量告警不断交替地进行划分。通过使用告警之间的时序关联信息来对告警进行聚类,能够将时序关联性较强的告警聚为一类;通过使用拓扑关联信息,作为聚类的停止条件,若当前的类符合拓扑关联条件则退出聚类,若当前的类不符合拓扑关联条件则继续聚类,能够令找到的目标类的拓扑关联性较强;如此,可以融合了不同告警之间的时序关联性以及拓扑关联性,最终得到的目标类中的告警在时间维度和空间维度上均相似,因此可以真实的反映根因告警,屏蔽冗余的噪声信号。
可选地,所述基于所述至少一个类的拓扑关联信息,获取所述至少一个类中的目标类之前,所述方法还包括:
根据所述类中的告警以及所述多个告警的告警源拓扑,生成至少一个告警链,每个告警链用于指示所述类中至少一个告警的传播流程;
根据所述至少一个告警链,获取所述类的拓扑关联信息。
可选地,所述根据所述至少一个告警链,获取所述类的拓扑关联信息,包括下述至少一个步骤:
根据每个告警链对应的告警的数量、所述至少一个告警链的数量以及所述类中告警的总数量中的至少一项,获取所述类的拓扑熵,所述拓扑熵用于指示所述类中告警分布在所述至少一个告警链的混乱程度;
根据每个告警链中相邻告警源的数量,获取所述类的第一拓扑分数,所述第一拓扑分数与所述相邻告警源的数量正相关;
这种实现方式达到的效果至少可以包括:对于任一个类来说,若该类中的多个告警为同源告警,则该类中的多个告警会沿着告警源拓扑进行连续传播,那么该类中的告警链中相邻告警源的数量就会越多,则根据相邻告警源的数量来获取第一拓扑分数时,该类的第一拓扑分数会越大。那么后续基于类的第一拓扑分数来获取目标类时,将该类作为目标类的概率越大,则后续根据目标类来输出根因告警信息时可以提高准确性。同理地,对于任一个类来说,若该类中的多个告警为碰巧时序关联的噪声消息,则该类中的多个告警往往会在告警源拓扑上传播中断,例如只经过一个告警源,那么该类中的告警链中相邻告警源的数量就会越少,则根据相邻告警源的数量来获取第一拓扑分数时,该类的第一拓扑分数会越小,那么后续基于类的第一拓扑分数来获取目标类时,将该类作为目标类的概率越小,从而过滤掉由于偶然因素而聚类到一起的噪声信号,达到屏蔽噪声信号的效果,从而极大地减少冗余告警,避免对噪声信号进行根因分析时对准确性的影响。
根据每个告警链中告警源在所述告警源拓扑中的层数,获取所述类的第二拓扑分数,所述第二拓扑分数与所述层数正相关。
可选地,所述根据每个告警链对应的告警的数量、所述至少一个告警链的数量以及所述类中告警的总数量中的至少一项,获取所述类的拓扑熵,包括:
应用下述公式,对每个告警链对应的告警的数量、所述至少一个告警链的数量以及所述类中告警的总数量运算,得到所述类的拓扑熵:
其中,e表示类的拓扑熵,∑为求和符号,i表示正整数,Numi表示所述至少一个告警链中第i条告警链对应的告警的数量,T表示所述类中告警的总数量,CN为所述至少一个告警链的数量,log表示对数运算,*表示乘法运算。
可选地,所述根据所述类中的告警以及所述多个告警的告警源拓扑,生成至少一个告警链,包括:
从所述告警源拓扑中获取至少一个拓扑链;
根据所述类中的告警的告警源,将所述类中的告警分配给所述至少一个拓扑链中对应的告警源;
对于所述至少一个拓扑链中的任一拓扑链,根据所述拓扑链中已分配告警的至少一个告警源,生成一个告警链。
可选地,所述方法还包括:
遍历所述类中的告警的至少一种分配方式,得到所述至少一种分配方式对应的至少一个告警链集合;相应地,所述根据所述至少一个告警链,获取所述类的拓扑关联信息,包括:
获取所述类的至少一个告警链集合的拓扑关联信息;
根据所述至少一个告警链集合的拓扑关联信息,选取所述至少一个告警链集合中拓扑关联程度最高的目标告警链集合;
根据所述目标告警链集合中的至少一个告警链,获取所述类的拓扑关联信息。
可选地,所述基于所述至少一个类的拓扑关联信息,获取所述至少一个类中的至少一个目标类,包括下述至少一个步骤:
对于所述至少一个类中的任一类,当所述类的拓扑熵小于所述类的至少一个子类的拓扑熵时,将所述类获取为目标类;
对于所述至少一个类中的任一类,当所述类的拓扑熵小于拓扑熵阈值时,将所述类获取为目标类;
对于所述至少一个类中的任一类,当所述类的第一拓扑分数大于所述所述类的至少一个子类的第一拓扑分数时,将所述类获取为目标类;
对于所述至少一个类中的任一类,当所述类的第一拓扑分数大于第一拓扑分数阈值时,将所述类获取为目标类;
对于所述至少一个类中的任一类,当所述类的第二拓扑分数大于所述类的至少一个子类的第二拓扑分数时,将所述类获取为目标类;
对于所述至少一个类中的任一类,当所述类的第二拓扑分数大于第二拓扑分数阈值时,将所述类获取为目标类。
可选地,所述基于所述多个告警之间的时序关联信息,对所述多个告警进行聚类之前,所述方法还包括:
根据所述多个告警的发生时间,获取所述多个告警的向量,每个向量用于指示对应告警的发生时间;
对于所述多个告警中的任两个告警,根据所述两个告警的向量之间的距离或相似度,获取所述两个告警之间的时序关联信息。
通过这种可选方式,达到的效果至少可以包括:触发自相同故障的同源告警通常在时序上是相邻的,会在同一时间窗内共同出现。那么,通过基于多个告警的时序关联信息,来对多个告警进行聚类,可以充分挖掘出不同告警之间的时间相关性,同一类中的告警的时序关联信息大,因此类中的告警为同源告警的概率较高,则后续基于类进一步进行分析时,可以保证告警根因分析的准确性。
可选地,所述基于至少一个所述目标类,输出根因告警信息,包括:
将至少一个所述目标类的至少一个告警链输出为所述根因告警信息。
第二方面,提供了一种计算设备,所述计算设备用于执行上述告警根因分析方法。具体地,所述计算设备包括用于执行上述第一方面或第一方面的任一种可选方式所述的告警根因分析方法的功能模块。
第三方面,提供一种计算设备,所述计算设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现上述第一方面或第一方面的任一种可选方式所述的告警根因分析方法所执行的操作。
第四方面,提供了一种计算设备集群,该计算设备集群包括至少一个计算设备。上述第二方面中不同的模块可以分布在所述计算设备集群中的不同的计算设备上运行。具体来说,每个计算设备包括处理器和存储器。至少一个计算设备的处理器用于访问所述存储器中的代码以执行第一方面或第一方面的任意可选方式提供的告警根因分析方法。
第五方面,提供一种非瞬态的可读存储介质,所述非瞬态的可读存储介质被至少一台计算设备执行时,所述至少一台计算设备执行前述第一方面或第一方面的任意可选方式中提供的告警根因分析方法。所述存储介质中存储了程序。所述存储介质的类型包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(harddisk drive,HDD)、固态硬盘(solid state drive,缩写:SSD)。
第六方面,提供了一种包含指令的计算机程序产品,所述计算设备程序产品被至少一台计算设备执行时,所述至少一台计算设备执行前述第一方面或第一方面的任意可选方式中提供的告警根因分析方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第一方面的任意可选方式中提供的告警根因分析方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
第七方面,提供了一种芯片,所述芯片包括处理器和/或程序指令,当所述芯片运行时,实现上述第一方面或第一方面的任一种可选方式所述的告警根因分析方法。
附图说明
图1是本申请实施例提供的一种实施环境的架构图;
图2是本申请实施例提供的一种计算设备的结构示意图;
图3是本申请实施例提供的一种计算设备集群的系统架构图;
图4是本申请实施例提供的一种计算设备集群的系统架构图;
图5是本申请实施例提供的一种告警根因分析方法的流程图;
图6是本申请实施例提供的一种告警源拓扑的示意图;
图7是本申请实施例提供的一种告警链的示意图;
图8是本申请实施例提供的一种拓扑链的示意图;
图9是本申请实施例提供的一种告警根因分析方法的流程图;
图10是本申请实施例提供的一种递归聚类的示意图;
图11是本申请实施例提供的一种告警根因分析方法的逻辑框图;
图12是本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种实施环境的架构图,该实施环境包括网络系统、告警管理节点、拓扑管理节点,另外该实施环境还包括计算设备或计算设备集群。
该网络系统包括至少一个网元,每个网元在运行中可以产生告警。其中,网元可以为网络系统中需要管理的任一对象。网元可以采用软件实现,例如,网元可以为虚拟机、容器、应用、服务、微服务、模块、子模块、类或函数等。其中,网元可以为一个设备中运行的软件,也可以为多个设备中运行的软件的集合;网元也可以采用硬件实现,例如,网元可以为服务器、基站、交换机、路由器、中继、网桥、防火墙、移动终端、个人电脑、笔记本电脑、磁盘、固态硬盘(英文:Solid State Drives,缩写SSD)、磁盘阵列(英文:Redundant Arrays ofIndependent Disks,缩写:RAID)、存储区域网络(英文:Storage Area Network,缩写:SAN)、网络互连协议(英文:Internet Protocol,缩写:IP)SAN、光纤通道(英文:FiberChannel,缩写:FC)SAN、网络附属存储(英文:Network Attached Storage,缩写:NAS)、负载均衡器、移动性管理实体(英文:mobility management entity,缩写:MME)、归属签约用户服务器(英文:home subscriber server,缩写:HSS)、服务网关(英文:serving-gateway,缩写:SGW)、分组数据网网关(英文:packet data network gateway,缩写:PGW)、策略和计费规则功能(英文:policy and charging rules function,缩写:PCRF)网元、光网络终端(Optical network terminal,缩写:ONT)、光网络单元(英文:Optical Network Unit,缩写:ONU)、分光器、物联网终端、传感器等;网元可以采用一个独立的硬件实现,也可以采用多个通过有线或无线网络连接的硬件实现。本实施例对网元的具体形态不做限定。
告警管理节点用于管理该网络系统中每个网元的告警。具体来说,告警管理节点可以和网络系统连接,当网络系统中的任一网元生成告警时,网元可以将告警发送至告警管理节点,告警管理节点可以接收网元发送的告警,从而得到网元的告警,以便后续将告警提供给计算设备或计算设备集群。可选地,告警管理节点可以视为图1所示的实施环境中的存储源,告警管理节点可以通过自身或者外部的存储介质,来存储大量的告警。例如,告警管理节点可以为数据库、硬盘、数据库硬盘、数据库、文件传输协议(英文:File TransferProtocol,缩写:FTP)服务器、磁盘、SSD、RAID、SAN、IPSAN、FC SAN、NAS等。
拓扑管理节点用于管理网络系统中网元的信息以及不同网元之间的拓扑信息。该网元的信息可以包括网元的名称、网络地址、功能标识等。该拓扑信息用于指示不同网元之间的连接关系。具体地,该拓扑信息可以指示任一网元的上行网元、下行网元以及邻居网元。例如,该拓扑信息可以包括网元的标识、上行网元的标识、下行网元的标识以及邻居网元的标识之间的映射关系,从而通过该映射关系指示网络拓扑。其中,该拓扑信息可以采用链表、数组、哈希表、红黑树、列表或其他任意数据形式实现。例如,拓扑信息可以为链表,链表中包括每个网元的标识,同时,链表中每个网元可以持有上行网元以及下行网元的指针或引用,通过该指针或引用可以指示网元的上行网元以及下行网元,从而指示不同网元之间的拓扑关系。
在一种可能的实现中,拓扑管理节点可以包括配置管理数据库(英文:Configuration Management Database,缩写:CMDB)工具以及调用链工具中的至少一项,该CMDB工具用于存储网络系统中各个网元的信息。该调用链工具用于存储各个网元之间的调用链。该调用链用于指示不同网元之间的调用关系。以网元为服务为例,在一个示例性场景中,调用链路可以为:前端服务A调用中间层服务B,中间层服务B调用中间层服务C,中间层服务C再调用后端服务D。
计算设备或计算设备集群用于通过执行下述方法实施例提供的方法,来对网络系统中网元的告警进行根因分析,以从网络系统中海量的告警中确定根因告警,从而通过根因告警快速定位故障。具体来讲,告警管理节点可以将告警发送至计算设备或计算设备集群,拓扑管理节点可以将拓扑信息发送至计算设备或计算设备集群,计算设备或计算设备集群可以接收告警管理节点发送的告警以及拓扑管理节点发送的拓扑信息,从而根据告警以及拓扑信息进行根因分析。
图2是本申请实施例提供的一种计算设备的结构示意图,该计算设备200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(英文:centralprocessing units,缩写:CPU)201和一个或一个以上的存储器202,其中,该存储器202中存储有至少一条指令,该至少一条指令由该处理器201加载并执行以实现下述方法实施例提供的告警根因分析方法。当然,该计算设备200还可以具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,该计算设备200还可以包括其他用于实现设备功能的部件,在此不做赘述。其中,计算设备200可以为云环境中的计算设备,或边缘环境中的计算设备,或终端环境中的计算设备,对此不做限定。
图3是本申请实施例提供的一种计算设备集群的系统架构图,如图3所示,该计算设备集群包括至少一个计算设备300,每个计算设备300可以执行下述方法实施例提供的告警根因分析方法中的任一个步骤或任多个步骤,不同的步骤可以由不同的计算设备300执行。
每个计算设备300的结构与图2实施例中计算设备200的结构相同。具体来说,每个计算设备300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器301和一个或一个以上的存储器302,其中,该存储器302中存储有至少一条指令,该至少一条指令由该处理器301加载并执行以实现下述方法实施例提供的告警根因分析方法中的任一个步骤或任多个步骤。当然,每个计算设备300还可以具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,每个计算设备300还可以包括其他用于实现设备功能的部件,在此不做赘述。其中,每个计算设备300可以为云环境中的计算设备,或边缘环境中的计算设备,或终端环境中的计算设备,对此不做限定。
图4是本申请实施例提供的一种计算设备集群的系统架构图,如图4所示,该计算设备集群包括云计算服务以及至少一个计算设备400。其中,该云计算服务可以执行下述方法实施例提供的告警根因分析方法中的任一个步骤或任多个步骤,每个计算设备400也可以执行下述方法实施例提供的告警根因分析方法中的任一个步骤或任多个步骤。举例来说,该云计算服务可以用于执行下述方法实施例中计算时序关联信息以及计算拓扑关联信息的步骤,计算设备400可以用于执行下述方法实施例中根据时序关联信息以及拓扑关联信息进行告警根因分析的步骤。当然,告警根因分析方法的步骤的具体执行主体可以根据需求设置,本实施例对此不做限定。
图4中的云计算服务可以通过云端的服务器集群实现,该云计算服务可以通过虚拟化技术扩展运算的计算能力,以实现共享软、硬件资源和信息,按需提供给云计算服务中的各个节点设备,使得每个节点设备发挥最大的效能。
每个计算设备400的结构与图2实施例中计算设备200的结构相同。具体来说,每个计算设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器401和一个或一个以上的存储器402,其中,该存储器402中存储有至少一条指令,该至少一条指令由该处理器401加载并执行以实现下述方法实施例提供的告警根因分析方法中的任一个步骤或任多个步骤。当然,每个计算设备400还可以具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,每个计算设备400还可以包括其他用于实现设备功能的部件,在此不做赘述。其中,每个计算设备400可以为云环境中的计算设备,或边缘环境中的计算设备,或终端环境中的计算设备,对此不做限定。
在示例性实施例中,还提供了一种非瞬态的可读存储介质,该非瞬态的可读存储介质被至少一台计算设备执行时,该至少一台计算设备执行下述实施例中的告警根因分析方法。该存储介质中存储了程序。该存储介质的类型包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘、固态硬盘。
以下结合一个示例性应用场景进行描述:
在公有云的运维过程中,公有云上往往会部署海量的服务,这些服务会每天产生大量的告警,这些告警中存在很多冗余告警。例如,由于同一故障,网元产生了多个告警;由于故障间歇性发生,每当故障发生一次,则网元产生一次告警;当网元的某个部件发生故障时,每次激活该部件提供的服务时,则网元产生一次告警;多个网元可以监测到同一故障,每个网元均为该故障产生告警;任一网元的故障可以影响到其他网元,导致故障扩散;下游的网元的故障可以沿着网络拓扑传播到上游网元,从而引起一系列告警;因此,真实的根因告警往往淹没在大量的冗余告警中,导致错过故障处理的最佳时机,引发网络事故。
而本实施例提供的告警根因分析方法,可以融合不同告警之间的时间维度的关联性以及空间维度的关联性,同时从时序的角度以及拓扑的角度挖掘告警之间的关联,最终输出告警根因信息。一方面,可以为故障的定位提供清晰的线索,避免运维人员人工分析大量告警的繁重工作,从而提升云计算服务的可靠性。另一方面,可以去除海量告警中的噪声信号以及冗余告警,减少了告警根因分析的运算量,同时有效提升了告警根因分析的准确度,实现了告警压缩的功能,从而显著地缩短公有云故障定位的时间,提高公有云故障定位的效率。再一方面,无需大量的业务领域知识,也无需人工定义大量的推理规则,可以以较小的开销自动学习到告警之间的关联模式,节约了告警根因分析的成本。
在一个示例性场景中,假设调用链为:前端服务A调用中间层服务B,中间层服务B调用中间层服务C,中间层服务C调用后端服务D。当后端服务D产生故障导致时延较大时,后端服务D会触发告警,而由于中间层服务C超时未得到后端服务D的响应,会导致中间层服务C也会时延较大,则中间层服务C也会触发告警,依次类推,告警会沿着调用链,从后向前层层推进传播,导致前端服务A、中间层服务B、中间层服务C以及后端服务D均产生大量的超时告警。而通过执行本实施例提供的方法,能够输出“DCBA”,从而快速定位到后端服务D的故障。
图5是本申请实施例提供的一种告警根因分析方法的流程图,该方法以执行主体为计算设备为例进行举例描述,可以包括以下步骤:
501、计算设备获取多个告警。
告警是指网络系统中被管理的网元在检测到异常事件时生成的通知消息,告警可以视为网元对该异常事件的响应。当网元生成告警后,网元即可称为告警源。告警可以用于记录告警源的异常事件。可选地,告警可以包括告警源的标识、告警类型的标识、告警的发生时间。以下,通过(1)至(3)对告警的内容进行举例描述。
(1)告警源的标识
告警源的标识用于指示告警的告警源。例如,告警源的标识可以包括告警源的身份标识号(identification,缩写:ID)、网络之间互连协议(Internet Protocol,缩写:IP)地址、名称、编号、序列号等。在一种可能的实现中,告警可以包括告警源字段,该告警源字段用于承载告警源的标识,在程序中告警源字段可以记录“Module_ID”字段,其中英语单词Module的含义为模块。
(2)告警类型的标识
告警类型的标识用于指示告警的类型。例如,告警类型的标识可以为告警的类型的编号、告警的类型的名称等。其中,告警的类型可以和触发告警的异常事件对应,对于任一告警源来说,该告警源的每种异常事件可以映射为一个告警的类型。以告警源为磁盘为例,告警的类型可以包括磁盘坏道、元数据丢失、读写速度过慢等。以告警源为路由器为例,告警的类型可以包括端口故障、链路断开、网卡故障等。以告警源为传感器为例,告警的类型可以包括温度过高、湿度过高、检测到烟雾等。以告警源为服务器为例,告警的类型可以包括负载过大、流量过大、业务处理失败等。当然,上述告警的类型仅是举例说明,具体的告警的类型可以根据网元的形态确定,本实施例对此不做限定。
可选地,网元可以存储告警的类型与告警类型的标识之间的对应关系,该对应关系包括至少一个告警类型的标识以及至少一个告警的类型。当网元发生异常事件时,网元可以根据异常事件确定告警的类型,根据告警的类型查询该对应关系,得到告警类型的标识,向告警写入该告警类型的标识,以使告警中携带告警类型的标识。以告警源为磁盘为例,告警类型的标识以及告警的类型之间的对应关系可以如下表1所示。如此,当磁盘出现坏道时,磁盘根据该对应关系,可以确定告警类型的标识为1,则向告警写入1,以使告警中携带告警类型的标识“1”,从而通过该告警来记录出现了磁盘坏道的情况;当磁盘出现读速度过慢时,磁盘根据该对应关系,可以确定告警类型的标识为2,则向告警写入2,以使告警中携带告警类型的标识“2”,从而通过该告警来记录出现了读速度过慢的情况。
表1
告警的类型 | 告警类型的标识 |
坏道 | 1 |
读速度过慢 | 2 |
写速度过慢 | 3 |
元数据丢失 | 4 |
需要说明的是,上述例子中仅是以告警类型的标识为数字为例进行描述,当然,告警类型的标识还可以包括字母、字符、字符串或其他任一数据格式,本实施例对告警类型的标识的数据格式不做限定。
可选地,结合上述(1)和上述(2),每类告警在程序中的数据格式可以为“告警源模块的标识-告警类型的标识”。例如,假设某告警在程序中记录为“B-a1”,则表示该告警为告警源B生成的、告警的类型为a1的告警。进一步地,每类告警中的每个告警在程序中的数据格式可以为“告警源模块的标识-告警类型的标识-时间戳”。例如,假设某告警在程序中记录为“B-a1-201811201121”,则表示该告警为告警源B生成的、告警的类型为a1、时间戳为201811201121的告警。
(3)告警的发生时间
告警的发生时间用于指示告警源生成告警的时间,即告警源产生异常事件的时间。告警的发生时间可以为生成告警的时间戳。在一种可能的实现中,告警可以包括时间戳字段,该时间戳字段用于承载告警的发生时间,在程序中时间戳字段可以记录为“Timestamp”字段。其中,英文单词Timestamp的含义为时间戳。可选地,当网元发生异常事件时,网元可以获取当前时间点的时间戳,向告警写入该当前时间点的时间戳,以使告警中携带当前时间点的时间戳。
需要说明的是,上述(1)至(3)仅是对告警内容的举例描述,可选地,告警可以包括上述(1)至(3)以外的其余内容,例如网元的运营商标识、错误码、用户标识等。
关于获取告警的方式,可选地,参见图1所示的实施环境,计算设备可以接收告警管理节点发送的至少一个网元的告警,从而得到多个告警。其中,计算设备可以向告警管理节点发送告警请求,当告警管理节点接收到告警请求后,可以向计算设备发送多个告警。当然,也可以由告警管理节点主动将多个告警发送至计算设备,本实施例对获取告警的方式不做限定。
可选地,当获取到多个告警后,可以对多个告警进行告警过滤,得到过滤后的多个告警,基于过滤后的多个告警执行下述步骤502。其中,告警过滤是指从大量的告警中删除一些告警,例如删除脏数据或者无用的数据,又如删除与本次告警根因分析无关的告警。以数学的方式表述,如果某一告警A的任一属性不符合条件,则过滤掉告警A,此过程称为对告警A进行了告警过滤。
在一种可能的实现中,告警过滤的方式可以包括以下方式一至方式三中的任一种或多种的组合:
方式一、根据时间窗对多个告警进行过滤。
可选地,方式一的具体过程可以包括:对于多个告警中的任一告警,获取该告警的发生时间,判断该告警的发生时间是否属于时间窗,当该告警的发生时间属于时间窗时,则保留该告警,当该告警的发生时间不属于时间窗时,则删除该告警。其中,该时间窗可以根据需求、经验、实验或配置操作确定。可选地,该时间窗的时长可以为预设时长,该时间窗的结束时间点与当前时间点的时间差可以为预设时间差,则根据该时间窗对多个告警进行过滤后,可以保留最近一段时间的告警,而删除时间较远的较老的告警。
以预设时长为1星期,预设时间差为1天为例,假设当前时间点为2018年11月8日,则时间窗为2018年11月1日至2018年11月7日,根据该时间窗对多个告警进行过滤后,可以保留出最近的一星期的多个告警。
方式二、根据告警源对多个告警进行过滤。
可选地,方式二的具体过程可以包括:获取告警源集合,对于多个告警中的任一告警,确定该告警的告警源,判断该告警的告警源是否属于告警源集合,当该告警的告警源属于告警源集合时,则保留该告警,当该告警的告警源不属于告警源集合时,则删除该告警。其中,该告警源集合用于指示告警根因分析所针对的至少一个告警源,告警源集合可以根据需求、经验、实验或配置操作确定。例如,告警源集合可以为某个集群的所有网元、某个地域的所有网元、某一机房的所有网元、某一机架的所有网元或某一宿主机的所有虚拟机等。
示例性地,假设获取到的多个告警包括集群1、集群2至集群8的告警,而告警源集合为集群1的所有网元,则根据告警源集合对多个告警进行过滤后,可以保留集群1的多个告警,则后续会针对集群1的多个告警进行告警根因分析,而删除集群2至集群8的告警。
方式三、根据告警的类型,对多个告警进行过滤。
可选地,方式三的具体过程可以包括:获取告警类型集合,对于多个告警中的任一告警,确定该告警的类型,判断该告警的类型是否属于告警类型集合,当该告警的类型属于告警类型集合时,则保留该告警,当该告警的类型不属于告警类型集合时,则删除该告警。该告警类型集合用于指示告警根因分析所针对的告警类型,告警类型集合可以根据需求、经验、实验或配置操作确定。例如,告警类型集合可以包括至少一个反映服务质量(英文:Quality of Service,缩写:QoS)异常的告警,例如可以包括读速度过慢、写速度过慢等。
示例性地,假设获取到的多个告警包括告警类型1、告警类型2至告警类型100的告警,而告警类型集合包括告警类型1以及告警类型2,则根据告警的类型对多个告警进行过滤后,可以保留告警类型1以及告警类型2的多个告警,则后续会针对告警类型1以及告警类型2的多个告警进行告警根因分析,而删除告警类型3至告警类型100的告警。
通过进行告警过滤,达到的效果至少可以包括:可以结合实际需求,界定告警根因分析的范围,例如专门对某集群的告警进行根因分析,又如专门对某一时间段的告警进行根因分析,从而提高告警根因分析的灵活性和精确性。同时,可以减少告警根因分析针对的告警的数量,尽量保证告警根因分析时针对的不同告警的关联性较高,从而提高告警根因分析的效率。
需要说明的第一点是,上述方式一至方式三仅是告警过滤的举例描述,可选地,也可以采用方式一至方式三以外的方式进行告警过滤,本实施例对此不做限定。
需要说明的第二点是,上述方式一至方式三可以采用任意结合的方式以构成告警过滤的过程,以方式一至方式二结合为例,可以根据时间窗以及告警源进行告警过滤,从而筛选出发生时间以及告警源均满足要求的告警。
需要说明的第三点是,告警过滤仅是告警根因分析的可选步骤,而非告警根因分析的必选步骤,可选地,也可以获取多个告警后,直接执行下述步骤502。
502、计算设备基于多个告警的时序关联信息,对多个告警进行聚类,得到至少一个类。
时序关联信息用于指示不同告警之间在时间维度的关联程度。其中,时序关联信息可以通过数值、字母、字符、或字符串以及其他任意计算设备可识别的数据格式表示,本实施例对时序关联信息的数据格式不做限定。
以时序关联信息通过数值表示为例,时序关联信息可以通过数值的大小来指示不同告警之间在时间维度的关联程度。举例来说,对于多个告警中的任两个告警,若两个告警的时序关联信息越大,表明两个告警之间在时间维度的关联程度越强,两个告警同时出现或几乎相同出现的概率越大;反之,若两个告警的时序关联信息越小,表明两个告警之间在时间维度的关联越弱,两个告警同时出现或几乎相同出现的概率越小。
可选地,时序关联信息可以指示不同告警的发生时间的关联程度。若两个告警的时序关联信息越大,表明两个告警之间的发生时间越接近。相应地,获取多个告警的时序关联信息的方式可以包括:根据多个告警的发生时间,获取多个告警之间的时序关联信息。
在一种可能的实现中,告警的发生时间可以通过向量表示,相应地,不同告警之间的时序关联信息可以通过不同向量之间的距离表示。该不同向量之间的距离用于指示对应向量之间的相似度,向量之间的距离越小,表示对应向量越相似。示例性地,该向量之间的距离可以通过欧式距离、切比雪夫距离、汉明距离、标准欧氏距离、相关距离等任意形式表示,本实施例对向量之间的距离的具体形式不做限定。其中,不同告警之间的时序关联信息可以为与向量之间的距离负相关的任一数值,例如可以为向量之间的距离的负数、倒数等,本实施例对此不做限定。另外,若告警的发生时间可以通过向量表示,不同告警之间的时序关联信息也可以通过不同向量之间的相似度表示。其中,不同告警之间的时序关联信息可以为与向量之间的相似度正相关的任一数值,本实施例对此不做限定。
可选地,根据告警的发生时间获取时序关联信息的过程具体可以包括以下步骤一至步骤二:
步骤一、根据多个告警的发生时间,获取多个告警的向量。
每个向量用于指示对应告警的发生时间,例如,向量可以用于指示对应告警在对应时间段中是否发生、发生次数以及发生频率中的至少一项。具体地,向量可以包括多个维度,向量的每个维度对应一个时间段,向量的不同维度的排列顺序可以对应于时间段的早晚顺序,向量中任两个相邻的维度可以对应于两个相邻的时间段。举例来说,向量可以包括100个维度,第1个维度对应18:00至18:10,第2个维度对应18:10至18:20,依次类推。向量在任一维度的取值可以包括下述含义(1)至含义(3)中的至少一项。
含义(1)向量在任一维度的取值用于指示对应的时间段是否发生告警。
在一种可能的实现中,若向量在任一维度的取值为第一取值时,指示该维度对应的时间段发生了告警;若向量在任一维度的取值为第二取值时,指示该维度对应的时间段未发生告警。其中,该第一取值和该第二取值可以根据需求设置,该第一取值和该第二取值可以为数字、字母、字符或其他任意数据格式实现,例如,第一取值可以为1,第二取值可以为0;又如,第一取值可以为Y,第二取值可以为N。
示例性地,参见下表2,假设向量包括6个维度,第1个维度对应18:00-18:10,第2个维度对应18:10-18:20,第3个维度对应18:20-18:30,第4个维度对应18:30-18:40,第5个维度对应18:40-18:50,第6个维度对应18:50-17:00,并假设第一取值为1,第二取值为0,则如果向量为“010011”,表示18:00-18:10未出现告警,18:10-18:20出现告警,18:20-18:30未出现告警,18:30-18:40未出现告警,18:40-18:50出现告警,18:50-17:00出现告警。
表2
含义(2)向量在任一维度的取值可以用于指示对应的时间段发生告警的次数。
在一种可能的实现中,向量在任一维度的取值可以为维度对应的时间段发生告警的次数,例如,当向量在任一维度的取值为m时,指示维度对应的时间段发生了m次告警,其中m为正整数。在另一种可能的实现中,向量在任一维度的取值可以为与维度对应的时间段发生告警的次数相关的任一数值,例如可以为某一预设对应关系中次数对应的数值,又如可以为以次数为输入参数计算出的某一数值。
示例性地,参见下表3,假设向量包括6个维度,第1个维度对应18:00-18:10,第2个维度对应18:10-18:20,第3个维度对应18:20-18:30,第4个维度对应18:30-18:40,第5个维度对应18:40-18:50,第6个维度对应18:50-17:00,则如果向量为“080354”,表示18:00-18:10未出现告警,18:10-18:20出现8次告警,18:20-18:30未出现告警,18:30-18:40出现3次告警,18:40-18:50出现5次告警,18:50-17:00出现4次告警。
表3
含义(3)向量在任一维度的取值可以用于指示对应的时间段发生告警的频率。
在一种可能的实现中,向量在任一维度的取值可以为维度对应的时间段发生告警的频率,例如,当向量在任一维度的取值为k时,指示维度对应的时间段发生告警的频率为k,其中k为正数。在另一种可能的实现中,向量在任一维度的取值可以为与维度对应的时间段发生告警的频率相关的任一数值,例如可以为某一预设对应关系中频率对应的数值,又如可以以频率为输入参数计算出的某一数值。
示例性地,参见下表4,假设向量包括6个维度,第1个维度对应18:00-18:10,第2个维度对应18:10-18:20,第3个维度对应18:20-18:30,第4个维度对应18:30-18:40,第5个维度对应18:40-18:50,第6个维度对应18:50-17:00,则如果向量为“0 0.8 0 0 0.5 0”,表示表示18:00-18:10未发生告警,18:10-18:20发生告警的频率为0.8,18:20-18:30未发生告警,18:30-18:40未发生告警,18:40-18:50发生告警的频率为0.5,18:50-17:00未发生告警。
表4
在一种可能的实现中,根据告警的发生时间来获取向量的过程可以包括下述步骤(1.1)至步骤(1.3):
(1.1)将时间窗划分为至少一个时间段。
时间窗可以为多个告警的发生时间所处的时间段。时间窗的起始时间点可以早于或等于多个告警的发生时间中最早的发生时间,时间窗的结束时间点可以晚于或等于多个告警的发生时间中最晚的发生时间。例如,假设上述步骤一中获取了从t1至t2的多个告警,相应地,本步骤(1.1)中划分的时间窗可以为t1至t2。其中,t1表示多个告警的发生时间中最早的发生时间,t2表示多个告警的发生时间中最晚的发生时间。
可选地,对时间窗划分的方式包括而不限于以下实现方式一或实现方式二:
实现方式一、可以获取预设时长,按照预设时长将时间窗划分为至少一个时间段,每个时间段的时长为该预设时长。例如,可以从时间窗的起始时间点开始,每隔预设时长对时间窗划分一次,直至时间窗的结束时间点为例。举例来说,假设时间窗为18:00至18:30,预设时长为10分钟,可以将时间窗划分为18:00至18:10、18:10至18:20以及18:20至18:30这3个时间段。
实现方式二、可以获取预设数量,按照该预设数量对时间窗进行划分,得到该预设数量个时间段。例如,假设预设数量为10,可以将时间窗平均划分为10个时间段。
需要说明的是,上述两种实现方式仅是对时间窗划分的可选方式,而非对时间窗划分的必选方式,还可以采用其他任一种方式来对时间窗划分。例如可以接收时间窗划分指令,根据该时间窗划分指令来对时间窗划分,又如可以预先存储每个时间段的开始时间点以及结束时间点,根据每个时间段的开始时间点以及结束时间点来对对时间窗划分,本实施例对划分时间窗的具体方式不做限定。
(1.2)对于多个告警中的任一告警,根据该告警在该至少一个时间段的出现规律,生成告警的向量。
与上述含义(1)至含义(3)中的至少一项对应,本步骤(1.2)包括而不限于下述实现方式一至实现方式三中的任一项或多项的结合:
实现方式一、对于至少一个告警中的任一告警,可以获取该告警的发生时间,确定发生时间所处的时间段,将向量中该时间段对应的维度置为第一取值,将向量中该时间段对应的维度以外的其他维度置为第二取值。以第一取值为1,第二取值为0为例,若告警在该时间段出现,则将该时间段对应的位置为1,当该告警在该时间段未出现,则将该时间段对应的位置为0。
实现方式二、对于至少一个告警中的任一告警,可以确定告警在每个时间段出现的次数,将向量中每个时间段对应的维度置为对应的次数。例如,若告警在某个时间段出现10次,则将向量中该时间段对应的维度置为10。另外,也可以根据告警在每个时间段出现的次数,查询某一预设对应关系,获取次数对应的数值,将向量中该时间段对应的维度置为该数值。另外,还可以以次数为输入参数进行计算,将向量中该时间段对应的维度置为计算出的数值。
实现方式三、对于至少一个告警中的任一告警,可以获取该告警在每个时间段出现的频率,可以根据告警在每个时间段出现的频率,将该时间段对应的维度置为频率。例如,若告警在该时间段出现的频率为0.8,则将该时间段对应的维度置为0.8。另外,也可以根据告警在每个时间段出现的频率,查询某一预设对应关系,获取频率对应的数值,将该时间段对应的维度置为该数值。另外,还可以以频率为输入参数进行计算,将该时间段对应的维度置为计算出的数值。
步骤二、对于多个告警中的任两个告警,根据该两个告警的向量之间的距离或相似度,获取该两个告警之间的时序关联信息。
可以获取两个告警之间的距离,根据两个向量之间的距离,获取与两个向量之间的距离负相关的任一数值,作为两个告警之间的时序关联信息。也可以获取两个告警之间的相似度,根据两个向量之间的相似度,获取与两个向量之间的相似度正相关的任一数值,作为两个告警之间的时序关联信息。其中,向量之间的距离或相似度的获取方式包括而不限于余弦相似度、欧式距离、切比雪夫距离、汉明距离等,本实施例对此不做限定。
综上所述,上述步骤一至步骤二描述了获取任两个告警之间的时序关联信息的过程。以此类推,可以对多个告警重复执行上述步骤一至步骤二,获取多个告警的向量之间的距离或相似度,得到多个告警之间的时序关联信息。进一步地,可以根据多个告警之间的时序关联信息,获取时序关联信息矩阵。其中,该时序关联信息矩阵中每一行指代一个告警,每一列指代一个告警,每个元素为行指代的告警与列指代的告警之间的时序关联信息矩阵。
关于基于多个告警的时序关联信息对多个告警进行聚类的方式,可以采用任一种聚类算法,来基于多个告警的时序关联信息对多个告警进行聚类,得到至少一个类。其中,该聚类算法包括而不限于谱聚类算法(英文:spectral clustering)、基于划分的聚类算法、基于层次的聚类算法、基于密度的聚类算法、基于网络的聚类算法、基于模型的聚类算法、基于模糊的聚类算法、基于约束的聚类算法、基于约束的聚类算法、基于粒度的聚类算法、核聚类算法、量子聚类算法中的任一种或多种的结合,本实施例对聚类算法的形式不做限定。举例来说,该基于划分的聚类算法可以为k近邻(英文:k-means)算法以及k-means算法的变形,该基于层次的聚类算法可以为层次聚类(英文:Hierarchical Clustering)算法等,本实施例对聚类算法的类型不做限定。其中k表示正整数。
其中,类又称簇,是指彼此相似的对象组成的集合。本实施例中,类包括至少一个告警,同一个类中不同的告警之间的时序关联信息较大,而不同类中告警之间的时序关联信息较小。
以采用谱聚类算法对多个告警进行聚类为例,对多个告警进行聚类的过程可以包括:可以将每个告警映射为空间中的一点,将多个点以边连接,得到无向图。对于任两个点对应的边,根据两个点对应的告警之间的时序关联信息,获取边对应的权重,该权重与时序关联信息正相关。之后,可以根据各个边的权重,对无向图进行切图,得到该无向图的至少一个子图,以使同一子图中不同的权重的和值尽量高,而不同子图中边的权重的和值尽量低。之后,可以将每个子图中的所有点对应的告警作为一个类。
以采用k-means算法对多个告警进行聚类为例,假设告警的数量为n,类的数量为k,对多个告警进行聚类的过程可以包括:从n个告警中,任选k个告警,作为k个初始化的类;对于剩余的n-k个告警中的每个告警,基于告警的时序关联信息,获取告警与k个初始化的类的距离,得到k个距离;根据该k个距离,从k个初始化的类中选取最小的距离对应的初始化的类,将该告警归入到该初始化的类中;对每个告警执行上述步骤,从而将n-k个告警告警归入k个初始化的类中;对于k个初始化的类中的每个类,根据类中每个告警的时序关联信息,获取该类中的所有告警的平均值,作为类的中心值;获取所有告警与k个中心值的距离,循环执行在所有告警中分出k个类,并计算类的中心值的步骤,直到循环次数大于预设的循环次数为止,得到k个类。其中,n和k为正整数,且n大于或等于k。
以采用层次聚类算法对多个告警进行聚类为例,对多个告警进行聚类的过程可以包括:基于多个告警之间的时序相似度,对多个树层次聚类,得到聚类树状图(英文:dendrogram),对聚类树状图剪切,得到一个或多个类。其中,层次聚类的过程可以包括:在开始聚类时,可以将每个告警作为初始的类,相应地,在聚类树状图中生成多个叶子节点,用每个叶子节点来指代每个告警;根据多个告警之间的时序关联信息,从多个告警中,选取时序关联信息最高的两个告警;为相似度最高的两个告警,生成一个类,相应地,在聚类树状图中生成这两个告警的叶子节点对应的父节点,用父节点来指代生成的类;从相似度最高的两个告警以外的告警以及类中,继续根据告警以及类的时序关联信息,执行选取告警以及生成类的步骤,直至所有告警聚成一个根节点。
本步骤502可以达到的效果至少可以包括:
触发自相同故障的同源告警通常在时序上是相邻的,会在同一时间窗内共同出现。那么,通过基于多个告警的时序关联信息,来对多个告警进行聚类,可以充分挖掘出不同告警之间的时间相关性,同一类中的告警的时序关联信息大,因此类中的告警为同源告警的概率较高,则后续基于类进一步进行分析时,可以保证告警根因分析的准确性。
需要说明的第一点是,上述三种聚类方式仅是基于时序关联信息的聚类方式的举例说明,而非聚类方式的必选方式,可以采用任一种聚类方式来基于时序关联信息进行聚类,只需保证同一类中的不同告警之间的时序关联信息较大即可,本实施例对具体聚类方式不做限定。
需要说明的第二点是,上述仅是以计算设备执行聚类的步骤为例进行描述,可选地,也可以由其他设备执行聚类的步骤,并将得到的至少一个类发送给计算设备。例如,可以由一个独立的数据处理引擎对多个告警进行聚类,该数据处理引擎能够提供实时或准实时的机器学习服务,作为计算资源来提供给用于进行告警根因分析的计算设备,本实施例对步骤502的执行主体不做限定。
503、计算设备基于至少一个类的拓扑关联信息,获取至少一个类中的目标类,该目标类的拓扑关联信息符合拓扑关联条件。
拓扑关联信息用于指示对应类中不同告警之间的空间维度的关联程度。其中,拓扑关联信息可以通过数值、字母、字符、或字符串以及其他任意计算设备可识别的数据格式表示,本实施例对拓扑关联信息的数据格式不做限定。
以拓扑关联信息通过数值表示为例,拓扑关联信息可以通过数值的大小来指示不同告警之间在时间维度的关联程度。举例来说,对于至少一个类中的任一个类,若该类的拓扑关联信息越大,表明该类中不同告警之间的空间维度的关联程度越强,该类中的多个告警为同源告警的概率的概率越大,可见从拓扑的角度来说,聚出该类的合理性越强;反之,若该类的拓扑关联信息越小,表明该类中不同告警之间的空间维度的关联程度越弱,该类中的多个告警为同源告警的概率的概率越小,可见从拓扑的角度来说,聚出该类的合理性越弱。
关于获取拓扑关联信息的方式,可选地,对于至少一个类中的任一个类,可以根据多个告警的告警源拓扑,获取类的拓扑关联信息。该告警源拓扑用于指示不同告警源之间的依赖关系。具体来讲,告警源拓扑可以包括至少一个节点以及至少一个边。
告警源拓扑中的任一节点可以指代一个告警源。例如,告警源拓扑中的节点可以携带对应告警源的标识以及对应告警源的其他信息。示例性地,参见图6,图6所示的告警源拓扑中的“A”指代告警源A,图6所示的告警源拓扑中的“B”指代告警源B,依次类推。
告警源拓扑中的任一个边可以指代两个告警源之间的依赖关系。具体地,告警源拓扑中的任一个边可以指代边连接的两个节点对应的告警源之间的依赖关系。示例性地,参见图6,图6所示的告警源拓扑示出了中A和B之间的边可以指示告警源A和告警源B存在依赖关系。其中,依赖关系是指两个告警源触发告警存在逻辑上的因果关系,如果告警源B触发告警的前提是告警源A触发告警,则称告警源A和告警源B存在依赖关系,告警源B依赖于告警源A。
可选地,告警源拓扑可以为有方向的拓扑,告警源拓扑中边的方向可以指示对应的两个告警源中的依赖者以及被依赖者。例如,边的起点可以指示对应的两个告警源中的依赖者,边的终点可以指示对应的两个告警源中的被依赖者。进一步地,告警源拓扑中自底向上的顺序可以指代告警源从下行到上行的逻辑顺序,告警源拓扑中底层的每个节点可以指代下行的告警源,告警源拓扑中上层的每个节点可以指代上行的告警源。示例性地,参见图6,图6示出了告警源A、告警源B、告警源C至告警源I之间的依赖关系。以该告警源拓扑中告警源C、告警源E和告警源G这三个告警源为例,告警源G是这三个告警源中最底层的告警源,告警源E在告警源G的上方,告警源C在告警源E的上方,表示告警源G依赖于告警源E,告警源E依赖于告警源C,依次类推。
其中,关于获取告警源拓扑的方式,结合图1所示的实施环境,可以从拓扑管理节点获取网元的信息以及不同网元之间的拓扑信息,根据网元信息以及不同网元之间的拓扑信息,生成告警源拓扑。例如,可以确定多个告警的告警源,根据网元的信息获取告警源的标识,根据拓扑信息获取不同告警源之间的拓扑关系,根据告警源的标识以及不同告警源之间的标识生成该告警源拓扑。
可选地,根据告警源拓扑来获取类的拓扑关联信息的过程包括下述步骤一至步骤二:
步骤一、根据类中的告警以及告警源拓扑,生成类的至少一个告警链。
告警链用于指示类中至少一个告警的传播过程。告警链为告警源拓扑中的一部分,告警链包括告警源拓扑中的一个节点或多个节点。同时,告警链中的告警源生成了类中的告警。其中,告警链中的不同告警源之间的顺序可以和告警源拓扑中对应告警源之间的顺序相同,告警链中相邻的告警源可以在告警源拓扑中相邻。
例如,请参见图6以及图7,假设告警源拓扑如图6所示,而类中包括告警“B-a1”、告警“D-a6”、告警“E-a4”、告警“G-a5”、告警“G-a7”以及告警“H-a3”,则告警链可以如图7所示,包括“DH”以及“BDH”。
可选地,生成告警链的过程可以包括下述步骤(1.1)至步骤(1.3):
(1.1)从告警源拓扑中获取至少一个拓扑链。
拓扑链可以为告警源拓扑中的任一条链,拓扑链的维度可以为1。例如,拓扑链可以为一维数组。可选地,拓扑链中节点的数量可以等于告警源拓扑的层数,拓扑链中第一个节点可以为告警源拓扑的根节点,拓扑链中最后一个节点可以为告警源拓扑的叶子节点。示例性地,假设告警源拓扑如图6所示,则该告警源拓扑的拓扑链可以参见图8,该图8为拓扑链的示意图,图8示出了三个拓扑链,分别为tc-1“ABCEG”、tc-2“ABDFG”以及tc-3“ABDHI”。其中“tc”表示拓扑链的编号。
关于获取拓扑链的方式,可以对告警源拓扑进行降维处理,得到至少一个拓扑链,从而将网状的告警源拓扑转化为链状的拓扑链。其中,关于降维处理的方式,可以采用深度优先遍历算法,对告警源拓扑中的每个节点进行遍历。具体来说,可以从告警源拓扑的根节点开始,沿着根节点连接的边,按照从上到下的方向,访问尚未访问过的其他节点。当访问到叶子节点时,发现已经没有未访问过的节点,则回溯到该叶子节点的上一个节点,沿着其他分支,继续访问尚未访问过的其他节点。在此过程中,每当从根节点遍历到叶子节点时,即可得到一条拓扑链,当遍历结束后,即可得到至少一个拓扑链。
示例性地,参见图8,可以从节点A开始,访问节点B、节点C、节点E以及节点G,当访问到节点G时,确定没有访问到的节点,得出一个拓扑链tc-1“ABCEG”;之后从节点G回溯到节点B,访问节点D、节点F、节点G,当访问到节点G时,确定没有访问到的节点,得出一个拓扑链tc-2“ABDFG”;之后从节点G回溯到节点D,访问节点H以及节点I,当访问到节点I时,确定没有访问到的节点,得出一个拓扑链tc-3“ABDHI”。
需要说明的是,深度优先遍历算法仅是获取拓扑链的方式的举例说明,还可以采用其他任意方式来获取拓扑链,例如采用广度优先遍历算法来获取拓扑链,又如可以采用遍历以外的其他方式来获取拓扑链,本实施例对获取拓扑链的方式不做限定。
(1.2)根据类中的告警的告警源,将类中的告警分配给至少一个拓扑链中对应的告警源。
可选地,可以采用遍历的方式,分配类中的告警。具体地,遍历的方式可以包括下述实现方式一至实现方式二中的任一项或多项:
实现方式一、可以遍历至少一个拓扑链中的每个拓扑链,对于当前遍历到的拓扑链,可以遍历该拓扑链中的每个告警源,对于当前遍历到的拓扑链的告警源,可以选取类中该告警源的告警,将类中该告警源的告警分配给该告警源;之后,遍历拓扑链中的下一个告警源,选取类中下一个告警源的告警,将类中该下一个告警源的告警分配给该告警源,依次类推,直至拓扑链中每个告警源遍历结束后,再遍历下一个拓扑链,直至每个拓扑链遍历结束。其中,遍历拓扑链的方式可以通过递归算法、穷举法、贪心算法、分治算法、概率算法、动态规划算法、递推算法实现,本实施例对此不做限定。
其中,递归算法是指将大规模的问题转化为小规模的相似子问题或者相似子问题集合来解决的算法。问题的规模缩小具体可以是指解决问题的递归函数的参数缩小,问题的相似是指解决大规模问题的方法和解决小规模问题的方法是同一个方法,也可以指解决子问题集中各个子问题的方法是同一个方法。解决大规模问题的方法可以包括解决小规模问题的方法和解决剩余部分问题的方法,也可以包括一系列解决小规模问题的方法。其中,解决问题的方法在计算设备中通常以调用函数的形式实现,因此采用递归算法时会产生函数调用自身的情况,而每当函数调用自身一次,即可视为执行一层递归。具体地,在实现递归算法时,会调用相应的函数,如果调用函数后不满足递归结束条件,则进入下一层递归,一次类推,可以一层一层地进入下一层递归,直至进入最后一层递归;反之,如果调用函数后满足递归结束条件,则返回上一层递归,依次类推,可以一层一层地返回上一层递归,直至返回至第一层递归。
结合递归遍历算法的概念以及分配告警的场景,本步骤中,一层递归可以为将类中的告警分配至一个拓扑链的过程,递归结束条件可以为类中所有告警分配完成。相应地,分配告警的具体过程可以包括:对于至少一层递归中当前层递归,确定当前层递归对应的拓扑链,将类中的所有告警分配给该拓扑链,如果类中的告警均已分配完成,视为本层递归已经满足递归结束条件,则结束本层递归,并返回至上一层递归,同理地,如果上一层递归中,告警分配后满足递归结束条件,则继续返回至上上一层递归,依次类推,直至返回至第一层递归;如果类中的告警未分配完成,不满足递归结束条件,可以获取剩余的告警以及本层递归中未遍历到的剩余拓扑链,根据剩余的告警以及剩余的拓扑链执行下一层递归,即将剩余的告警分配至剩余的拓扑链,若分配结束后仍然不满足递归结束条件,则继续将剩余的告警以及剩余的拓扑链输入到下下一层递归,依次类推,当至少一层递归结束后,即可确定告警的分配方式。
实现方式二、可以遍历类中的每个告警,对于当前遍历到的告警,可以确定该告警的告警源,判断第一个拓扑链中是否包括该告警源,若该第一个拓扑链包括该告警源,则将该告警分配给该告警源,若该第一个拓扑链不包括该告警源,则判断第二个拓扑链中是否包括该告警源,依次类推,直至类中的每个告警遍历结束。
需要说明的是,上述两种遍历方式仅是对分配类中的告警的举例描述,可选地,可以采用任一种遍历方式或者非遍历方式来分配类中的告警,本实施例对此不做限定。
在一个示例性场景中,假设类中包括告警源B的告警、告警源D的告警、告警源E的告警、告警源G的告警以及告警源H的告警,而获取到的至少一个拓扑链为拓扑链tc-1“ABCEG”、拓扑链tc-2“ABDFG”以及拓扑链tc-3“ABDHI”,则可以将告警源B的告警、告警源D的告警以及告警源E的告警分配给拓扑链tc-1“ABCEG”,将告警源D的告警以及告警源H的告警分配给拓扑链tc-3“ABDHI”。
(1.3)对于至少一个拓扑链中的任一拓扑链,根据拓扑链中已分配告警的至少一个告警源,生成一个告警链。
具体来说,对于至少一个拓扑链中的任一拓扑链,可以确定该拓扑链中已分配的至少一个告警源,将该至少一个告警源作为一个告警链。在一种可能的实现中,可以获取该拓扑链中已分配的至少一个告警源的标识,对该至少一个告警源的标识按照对应告警源在拓扑链中的顺序进行排序,将依次排列的告警源的标识提供为一个告警链。
示例性地,对于拓扑链tc-1“ABCEG”来说,假设拓扑链中已分配了告警的告警源为告警源B、告警源D、告警E,则可以生成告警链“BEG”;对于拓扑链tc-3“ABDHI”来说,假设拓扑链中已分配了告警的告警源为告警源D以及告警源H,则可以生成告警链“DH”。
可选地,告警链在程序中可以记录为字符串。其中,字符串的每个字符用于表示对应的告警源是否分配告警。相应地,生成告警链的过程可以包括:对于至少一个拓扑链中的任一拓扑链中的任一告警,可以根据该告警源是否分配了告警,获取告警源对应的字符,根据每个告警源对应的字符,生成一个字符串,该字符串包括每个告警源对应的字符,可以使用该字符串表示一个告警链。
在一种可能的实现中,字符可以包括第一字符和第二字符,第一字符表示对应的告警源分配了告警,第二字符表示对应的告警源未分配告警。其中,第一字符和第二字符不同,第一字符和第二字符的具体形式可以根据需求设置,例如,第一字符可以为“1”,第二字符可以为“0”。
示例性地,对于拓扑链tc-1“ABCEG”来说,假设拓扑链中已分配了告警的告警源为告警源B、告警源D、告警E,则可以生成字符串“01011”,使用该字符串表示告警链“BDE”。
步骤二、根据类的至少一个告警链,获取类的拓扑关联信息。
可选地,拓扑关联信息可以包括拓扑熵、第一拓扑分数、第二拓扑分数中的任一项或多项的组合。相应地,获取拓扑关联信息的方式可以包括以下实现方式一至实现方式三中的任一项或多项的组合:
实现方式一、根据每个告警链对应的告警的数量、至少一个告警链的数量以及类中告警的总数量中的至少一项,获取类的拓扑熵。
该告警链对应的告警的数量为分配至该告警链中的告警源的告警的总数量,例如,告警链“BEG”对应的告警的数量即为类中分配至告警源B的告警的数量、分配至告警源D的告警的数量以及分配至告警源E的告警的数量之和。举例来说,假设将100个告警分配给告警源B,将200个告警分配给告警源C,将50个告警分配给告警链G,则告警链“BEG”对应的告警的数量为100+200+50=350。
该至少一个告警链的数量为类中告警链的总数量,例如,假设根据类中的告警,生成了告警链“BEG”以及告警链“DH”,则至少一个告警链的数量为2。
拓扑熵用于指示类中告警分布在至少一个告警链的混乱程度。具体地,拓扑熵越小,表明类中的告警分布在至少一个告警链的混乱程度越小,换句话说,类中的告警分布在至少一个告警链的集中程度越大,表明类中的所有告警分配到了尽量少的告警链,类的划分效果越好,该类中告警链对应的告警为同源告警的概率越大。示例性地,如果将类中的所有告警分配到一个拓扑链,则获取到的拓扑熵最大。反之,拓扑熵越大,表明类中的告警分布在至少一个告警链的混乱程度越强,示例性地,如果将类中的所有告警均匀分配到n个拓扑链,则获取到的拓扑熵最小,其中n为正整数。
关于获取拓扑熵的方式,在一种可能的实现中,可以应用下述公式,对每个告警链对应的告警的数量、至少一个告警链的数量以及类中告警的总数量运算,得到拓扑熵:
其中,e表示拓扑熵,∑为求和符号,i表示正整数,Numi表示至少一个告警链中第i条告警链对应的告警的数量,T表示类中告警的总数量,CN为至少一个告警链的数量,log表示对数运算,*表示乘法运算。
可选地,对于任一个类来说,将该类中的告警分配至拓扑链的方式可以包括多种,例如,假设类中包括告警源B的告警、告警源D的告警、告警源E的告警、告警源G的告警以及告警源H的告警,而获取到的至少一个拓扑链为拓扑链tc-1“ABCEG”、拓扑链tc-2“ABDFG”以及拓扑链tc-3“ABDHI”,则可以将告警源B的告警、告警源D的告警以及告警源E的告警分配给拓扑链tc-1“ABCEG”,将告警源D的告警以及告警源H的告警分配给拓扑链tc-3“ABDHI”,得到告警链“BEG”以及告警链“DH”,作为一个告警链集合。也可以将告警源E的告警以及告警源G的告警以分配给拓扑链tc-1“ABCEG”,将告警源B的告警、告警源D的告警以及告警源H的告警分配给拓扑链tc-3“ABDHI”,得到告警链“EG”以及告警链“BDH”,作为一个告警链集合。
相应地,类的拓扑熵可以根据多种分配方式中拓扑关联程度最高的分配方式确定。具体地,可以遍历类中的告警的至少一种分配方式,得到至少一种分配方式对应的至少一个告警链集合;相应地,可以获取类的至少一个告警链集合的第一拓扑分数和/或第二拓扑分数,可以根据至少一个告警链集合的第一拓扑分数和/或第二拓扑分数,选取至少一个告警链集合中拓扑关联程度最高的目标告警链集合;根据目标告警链集合中的至少一个告警链,获取类的拓扑关联信息。
其中,关于选取目标告警链集合的方式,例如,可以根据至少一个告警链集合的第一拓扑分数,选取至少一个告警链集合中第一拓扑分数最高的告警链集合,作为目标告警链集合;又如,可以根据至少一个告警链集合的第二拓扑分数,选取至少一个告警链集合中第二拓扑分数最高的告警链集合,作为目标告警链集合;再如,可以根据至少一个告警链集合的第一拓扑分数以及第二拓扑分数,对至少一个告警链集合的第一拓扑分数以及第二拓扑分数进行统计,选取至少一个告警链集合中统计结果最高的告警链集合,其中,该统计方式可以包括求和、求平均、加权求和、加权平均等,本实施例对此不做限定。
其中,目标告警链集合是指至少一个告警链集合中拓扑关联程度最高的告警链集合。若将每个告警链集合视为告警的一种候选划分方式,则目标告警链集合可以视为至少一种候选划分方式中的最优划分。其中,对于任一个告警链集合来说,获取该告警链集合的拓扑关联信息的方式可以包括本步骤503中实现方式一至实现方式三中的任一种或多种的结合,在此不做赘述。
示例性地,参见下表5,假设类中的告警共计有3种分配方式,第1种分配方式对应告警链集合1,拓扑关联信息为1300,第2种分配方式对应告警链集合2,拓扑关联信息为3560,第3种分配方式对应告警链集合1,拓扑关联信息为3340,则可以将告警链集合2作为目标告警链集合,将3560作为类的拓扑关联信息。
表5
实现方式二、根据每个告警链中相邻告警源的数量,获取类的第一拓扑分数,第一拓扑分数与相邻告警源的数量正相关。
相邻告警源是指在告警源拓扑中位置相邻的告警源,示例性地,请参见图6,图6示出了告警源拓扑的示意图,图6中包括告警源A、告警源B、告警源C至告警源I,图6中以线条连接的不同告警源为相邻告警源,例如告警源B和告警源D为相邻告警源,告警源B和告警源C也是相邻告警源,告警源D和告警源F为相邻告警源,告警源F和告警源G为相邻告警源。图6中最上游的告警源为告警源A,图6中最下游的告警源为告警源G以及告警源I。
根据相邻告警源的数量来获取拓扑关联信息的方式可以视为启发式算法,相应地,第一拓扑分数可以视为启发式算法得到的分数。关于获取第一拓扑分数的具体过程,在一种可能的实现中,可以获取相邻告警源的数量与预设分数之间的第一对应关系,对于任一告警链,可以根据告警链中相邻告警链的数量,查询该第一对应关系,得到相邻告警源的数量对应的预设分数,将该预设分数作为告警链的分数;之后,根据类中每个告警链的分数,获取类中至少一个告警链的分数的和值,作为类的第一拓扑分数。
其中,该第一对应关系包括至少一个相邻告警源的数量以及至少一个预设分数,第一对应关系中的预设分数与相邻告警源的数量正相关。例如,第一预设对应关系可以如下表6所示,假设告警链为“AEG”,则该告警链中相邻告警源为“EG”,相邻告警源的数量为2,则该告警链的分数可以为200,假设告警链为“AEG”,则该告警链中相邻告警源为“BDHI”,相邻告警源的数量为4,则该告警链的分数可以为400。
表6
相邻告警源的数量 | 预设分数 |
2 | 200 |
3 | 300 |
4 | 400 |
需要说明的是,根据第一对应关系来获取第一拓扑分数,仅是对获取告警链的分数的方式的举例说明,可选地,也可以通过其他方式来获取告警链的分数。作为一个示例,对于任一个告警链,可以采用任意算法,对告警链中相邻告警源的数量进行运算,以得到告警链的分数,例如,可以将告警链中相邻告警源的数量乘以某一系数,将乘积作为告警链的分数,又如,可以将告警链中相邻告警源的数量加上某一系数,将和值作为告警链的分数,本实施例对获取告警链的分数的过程不做限定。
可选地,对于任一个类来说,将该类中的告警分配至拓扑链的方式可以包括多种,相应地,类的第一拓扑分数可以根据多种分配方式中最高的拓扑关联程度最高的分配方式确定。具体地,可以遍历类中的告警的至少一种分配方式,得到至少一种分配方式对应的至少一个告警链集合;相应地,可以获取类的至少一个告警链集合的拓扑熵和/或第二拓扑分数,可以根据至少一个告警链集合的拓扑熵和/或第二拓扑分数,选取至少一个告警链集合中拓扑关联程度最高的目标告警链集合;根据目标告警链集合中的至少一个告警链,获取类的拓扑关联信息。
其中,关于选取目标告警链集合的方式,例如,可以根据至少一个告警链集合的拓扑熵,选取至少一个告警链集合中拓扑熵最小的告警链集合,作为目标告警链集合;又如,可以根据至少一个告警链集合的第二拓扑分数,选取至少一个告警链集合中第二拓扑分数最高的告警链集合,作为目标告警链集合;再如,可以根据至少一个告警链集合的拓扑熵以及第二拓扑分数,对至少一个告警链集合的拓扑熵以及第二拓扑分数进行统计,选取至少一个告警链集合中统计结果最高的告警链集合,其中,该统计方式可以包括求和、求平均、加权求和、加权平均等,本实施例对此不做限定。
这种实现方式达到的效果至少可以包括:
对于任一个类来说,若该类中的多个告警为同源告警,则该类中的多个告警会沿着告警源拓扑进行连续传播,那么该类中的告警链中相邻告警源的数量就会越多,则根据相邻告警源的数量来获取第一拓扑分数时,该类的第一拓扑分数会越大。那么后续基于类的第一拓扑分数来获取目标类时,将该类作为目标类的概率越大,则后续根据目标类来输出根因告警信息时可以提高准确性。同理地,对于任一个类来说,若该类中的多个告警为碰巧时序关联的噪声消息,则该类中的多个告警往往会在告警源拓扑上传播中断,例如只经过一个告警源,那么该类中的告警链中相邻告警源的数量就会越少,则根据相邻告警源的数量来获取第一拓扑分数时,该类的第一拓扑分数会越小,那么后续基于类的第一拓扑分数来获取目标类时,将该类作为目标类的概率越小,从而过滤掉由于偶然因素而聚类到一起的噪声信号,达到屏蔽噪声信号的效果,从而极大地减少冗余告警,避免对噪声信号进行根因分析时对准确性的影响。
实现方式三、根据每个告警链中告警源在告警源拓扑中的层数,获取类的第二拓扑分数,拓扑关联信息与层数正相关。
根据告警源的层数来获取拓扑关联信息的方式可以视为启发式算法,相应地,第二拓扑分数可以视为启发式算法得到的分数。告警源拓扑中的层数也称告警源拓扑的深度,可以用于指示任一告警源在告警源拓扑中相对于其他告警源的位置。告警源拓扑中的所有节点中根节点的层数可以最小,具体可以为1。告警源拓扑中的所有节点中叶子节点的层数可以最大。告警源越靠近底层的节点的层数越大。例如,假设告警源拓扑如图6所示,则告警源A的层数为1,告警源B的层数为2。
关于通过实现方式二获取第二拓扑分数的具体过程,在一种可能的实现中,可以获取告警源拓扑中的层数与预设分数之间的第二对应关系,对于任一告警链中的任一告警源,可以根据告警链中告警源拓扑中的层数,查询该第二对应关系,得到告警源的层数对应的预设分数,将该预设分数作为告警源的分数;之后,根据告警链中每个告警源的分数,获取告警链的分数,例如获取告警链中每个告警源的分数的和值,作为告警链的分数,又如获取告警链中每个告警源的分数的乘积,作为告警链的分数;之后,可以根据类中每个告警链的分数,获取类中至少一个告警链的分数的和值,作为类的第二拓扑分数。
其中,该第二对应关系包括至少一个层数以及至少一个预设分数,第二对应关系中的预设分数与层数正相关。例如,第二对应关系可以如下表7所示,假设告警链为“CEG”,则该告警链中告警源C的层数为3,告警源E的层数为4,告警源G的层数为5,则告警源C的分数可以为20,告警源E的分数可以为200,告警源G的分数可以为2000,则告警链的分数为2220。
表7
可选地,对于任一个类来说,将该类中的告警分配至拓扑链的方式可以包括多种,相应地,类的拓扑熵可以根据多种分配方式中拓扑关联程度最高的分配方式确定。具体地,可以遍历类中的告警的至少一种分配方式,得到至少一种分配方式对应的至少一个告警链集合;相应地,可以获取类的至少一个告警链集合的拓扑熵和/或第一拓扑分数,可以根据至少一个告警链集合的拓扑熵和/或第一拓扑分数,选取至少一个告警链集合中拓扑关联程度最高的目标告警链集合;根据目标告警链集合中的至少一个告警链,获取类的拓扑关联信息。
其中,关于选取目标告警链集合的方式,例如,可以根据至少一个告警链集合的第一拓扑分数,选取至少一个告警链集合中第一拓扑分数最高的告警链集合,作为目标告警链集合;又如,可以根据至少一个告警链集合的拓扑熵,选取至少一个告警链集合中拓扑熵最小的告警链集合,作为目标告警链集合;再如,可以根据至少一个告警链集合的第一拓扑分数以及拓扑熵,对至少一个告警链集合的第一拓扑分数以及拓扑熵进行统计,选取至少一个告警链集合中统计结果最高的告警链集合,其中,该统计方式可以包括求和、求平均、加权求和、加权平均等,本实施例对此不做限定。
需要说明的第一点是,根据第二对应关系来获取第二拓扑分数,仅是对获取告警链的分数的方式的举例说明,可选地,也可以通过其他方式来获取告警链的分数。作为一个示例,对于任一个告警链,可以采用任意算法,对告警链中每个告警源在告警源拓扑中的层数进行运算,以得到告警链的分数,例如,可以将告警链中每个告警源的层数乘以某一系数,将乘积作为告警链的分数,又如,可以将告警链中每个告警源的层数加上某一系数,将和值作为告警链的分数,本实施例对获取告警链的分数的过程不做限定。
需要说明的第二点是,上述实现方式一至实现方式三可以采用任意结合的方式来获取拓扑关联信息。以实现方式二和实现方式三结合为例,可以根据每个告警链中相邻告警源的数量以及每个告警链中告警源在告警源拓扑中的层数,获取拓扑关联信息,拓扑关联信息与相邻告警源的数量以及层数正相关。
综上所述,通过执行步骤(1.1)至步骤(1.3),可以得到类的至少的一个告警链,可以将该至少一个告警链作为一个告警链集合。
关于获取目标类的过程,可以获取拓扑关联条件,获取至少一个类中符合拓扑关联条件的类,作为目标类。例如,对于至少一个类中的任一个类,可以判断该类是否符合拓扑关联条件,当该类符合拓扑关联条件,则将该类获取为目标类。该拓扑关联条件用于根据拓扑关联信息选取类,可以为包含拓扑关联信息的任意条件。可选地,拓扑关联条件可以通过下述方式一至方式二中任一种或多种的组合确定:
方式一、拓扑关联条件根据类的拓扑关联信息与子类的拓扑关系信息的大小关系确定。具体地,若拓扑关联信息越大,表明该类中不同告警之间的空间维度的关联程度越强,则拓扑关联条件可以为类的拓扑关联信息大于子类的拓扑关联信息;若拓扑关联信息越大,表明该类中不同告警之间的空间维度的关联程度越弱,则拓扑关联条件可以为类的拓扑关联信息小于子类的拓扑关联信息。
其中,子类是指对类进行聚类后得到的类,任一类可以包括多个子类,每个子类中的告警属于类,多个子类中告警的数量之和可以等于类中的告警的数量。举例来说,假设某个类包括100个告警,该类可以包括3个子类,子类1包括40个告警,子类2包括30个告警,子类3包括30个告警。
可选地,拓扑关联条件可以包括下述条件(1.1)至条件(1.3)中的任一项或多项的组合:
条件(1.1)类的拓扑熵小于类的子类的拓扑熵。
可选地,拓扑关联条件可以为类的拓扑熵小于类的所有子类的拓扑熵。具体来说,拓扑关联条件可以为类的拓扑熵小于该类的子类的拓扑熵的最大值。举例来说,假设某个类包括子类1、子类2以及子类3这三个子类,则若类的拓扑熵小于子类1、子类2以及子类的拓扑熵中的最大值时,可以将该类视为满足拓扑关联条件的目标类。
以数学的方式表述,假设根据时序关联信息对告警聚类后,生成了类P以及类P的子类集合C,并假设子类集合C中具有n个子类,则类P以及子类集合C总共具有n+1个类,其中n为正整数。可以获取这n+1个类中的每个类的拓扑熵,得到n+1个拓扑熵。以类的拓扑熵记为P_E,子类集合C的拓扑熵记为集合C_E_set为例,可以比对P_E和Max(C_S_set)的大小,若P_E更小,则将类作为满足拓扑关联条件的目标类。其中,“Max”是表示求取最大值的符号,例如,Max(set)=x的含义是:集合set中最大的元素是x。
可选地,在获取拓扑熵时,对于n+1个类中的每个类,如果上述采用了遍历拓扑链的方式,获取了类的多种分配方式,可以获取每种分配方式的第一拓扑分数,得到多个第一拓扑分数;可以根据多个第一拓扑分数,选取第一拓扑分数最大的分配方式,将该第一拓扑分数最大的分配方式视为最优分配方式,则根据第一拓扑分数最高的分配方式来获取拓扑熵。当然,也可以获取每种分配方式的第二拓扑分数,得到多个第二拓扑分数;可以根据多个第二拓扑分数,选取第二拓扑分数最大的分配方式,将该第二拓扑分数最大的分配方式视为最优分配方式,则根据第二拓扑分数最高的分配方式来获取拓扑熵。
条件(1.2)类的第一拓扑分数大于类的子类的第一拓扑分数。
可选地,拓扑关联条件可以为类的第一拓扑分数大于该类的所有子类的第一拓扑分数。具体来说,拓扑关联条件可以为类的第一拓扑分数大于该类的子类的第一拓扑分数的最大值。举例来说,假设某个类包括子类1、子类2以及子类3这三个子类,则若类的第一拓扑分数大于子类1、子类2以及子类3的第一拓扑分数中的最大值时,可以将该类为目标类。
以数学的方式表述,假设根据时序关联信息对告警聚类后,生成了类P以及类P的子类集合C,并假设子类集合C中具有n个子类,则类P以及子类集合C总共具有n+1个类,其中n为正整数。可以获取这n+1个类中的每个类的第一拓扑分数,得到n+1个第一拓扑分数。以类的第一拓扑分数记为P_S1,子类集合C的第一拓扑分数记为集合C_S1_set为例,可以比对P_S1和Max(C_S1_set)的大小,若P_S1更大,则将类作为满足拓扑关联条件的目标类。
可选地,在获取第一拓扑分数时,对于n+1个类中的每个类,如果上述采用了遍历拓扑链的方式,获取了类的多种分配方式,可以获取每种分配方式的第二拓扑分数,得到多个第一拓扑分数;可以根据多个第二拓扑分数,选取第二拓扑分数最大的分配方式,将该第二拓扑分数最大的分配方式视为最优分配方式,则根据第二拓扑分数最大的分配方式来获取第一拓扑分数。当然,也可以获取每种分配方式的拓扑熵,得到多个拓扑熵;可以根据多个拓扑熵,选取拓扑熵最小的分配方式,将该拓扑熵最小的分配方式视为最优分配方式,则根据拓扑熵最小的分配方式来获取第一拓扑分数。
条件(1.3)类的第二拓扑分数大于类的子类的第二拓扑分数。
可选地,拓扑关联条件可以为类的第二拓扑分数大于该类的所有子类的第二拓扑分数。具体来说,拓扑关联条件可以为类的第二拓扑分数大于该类的子类的第二拓扑分数的最大值。举例来说,假设某个类包括子类1、子类2以及子类3这三个子类,则若类的第二拓扑分数大于子类1、子类2以及子类3的第二拓扑分数中的最大值时,可以将该类为目标类。
以数学的方式表述,假设根据时序关联信息对告警聚类后,生成了类P以及类P的子类集合C,并假设子类集合C中具有n个子类,则类P以及子类集合C总共具有n+1个类,其中n为正整数。可以获取这n+1个类中的每个类的第二拓扑分数,得到n+1个第二拓扑分数。以类的第二拓扑分数记为P_S2,子类集合C的第二拓扑分数记为集合C_S2_set为例,可以比对P_S2和Max(C_S2_set)的大小,若P_S2更大,则将类作为满足拓扑关联条件的目标类。
可选地,在获取第二拓扑分数时,对于n+1个类中的每个类,如果上述采用了遍历拓扑链的方式,获取了类的多种分配方式,可以获取每种分配方式的第一拓扑分数,得到多个第一拓扑分数;可以根据多个第一拓扑分数,选取第一拓扑分数最大的分配方式,将第一拓扑分数最大的分配方式视为最优分配方式,则根据第一拓扑分数最大的分配方式来获取第二拓扑分数。当然,也可以获取每种分配方式的拓扑熵,得到多个拓扑熵;可以根据多个拓扑熵,选取拓扑熵最小的分配方式,将该拓扑熵最小的分配方式视为最优分配方式,根据拓扑熵最小的分配方式来获取第二拓扑分数。
与条件(1.1)相应地,获取目标类的具体过程可以包括下述步骤(1.1.1)至步骤(1.1.2):
步骤(1.1.1)对于该至少一个类中的任一类,获取该类的拓扑熵以及该类的至少一个子类的拓扑熵。
具体来讲,可以采用上述拓扑熵的获取方式,获取类的拓扑熵。另外,可以将类划分为至少一个子类,采用上述拓扑熵的获取方式,获取每个子类的拓扑熵。其中,关于将类划分为子类的方式,可选地,可以基于类中的告警的时序关联信息,对类中的告警进行聚类,得到类的至少一个子类。其中,该基于类中的告警的时序关联信息对类中的告警进行聚类的具体过程与上述步骤502中对多个告警进行聚类的过程同理,在此不做赘述。
需要说明的是,基于类中告警的时序关联信息对类进行聚类仅是将类划分为子类的可选方式,也可以采用其他方式对将类划分为至少一个子类。例如,可以获取预设子类数量,按照预设子类数量,将类平均划分为数量为预设子类数量的子类。又如,可以获取预设告警数量,随机选取数量为预设告警数量的告警,作为一个子类。本实施例对将类划分为子类的具体过程不做限定。
步骤(1.1.2)当类的拓扑熵小于类的至少一个子类的拓扑熵时,将类获取为目标类。
可选地,可以判断类的拓扑熵是否小于类的所有子类的拓扑熵,当类的拓扑熵小于类的所有子类的拓扑熵时,则将类作为目标类。可选地,可以获取类的所有子类的拓扑熵的最大值,判断类的拓扑熵是否大于类的所有子类的拓扑熵的最大值,当类的拓扑熵大于类的所有子类的拓扑熵的最大值时,则将类作为目标类。
可选地,可以将步骤501中得到的多个告警作为一个类,获取多个告警的拓扑熵,当多个告警的拓扑熵小于多个告警聚成的所有类的拓扑熵的最大值时,则将该多个告警获取为目标类。
与条件(1.2)相应地,获取目标类的具体过程可以包括下述步骤(1.2.1)至步骤(1.2.2):
步骤(1.2.1)对于该至少一个类中的任一类,获取该类的第一拓扑分数以及该类的至少一个子类的第一拓扑分数。
具体来讲,可以采用上述第一拓扑分数的获取方式,获取类的第一拓扑分数。另外,可以将类划分为至少一个子类,采用上述第一拓扑分数的获取方式,获取每个子类的第一拓扑分数。其中,关于将类划分为子类的方式,可选地,可以基于类中的告警的时序关联信息,对类中的告警进行聚类,得到类的至少一个子类。其中,该基于类中的告警的时序关联信息对类中的告警进行聚类的具体过程与上述步骤502中对多个告警进行聚类的过程同理,在此不做赘述。
步骤(1.2.2)当类的第一拓扑分数大于类的至少一个子类的第一拓扑分数时,将类获取为目标类。
可选地,可以判断类的第一拓扑分数是否大于类的所有子类的第一拓扑分数,当类的第一拓扑分数大于类的所有子类的第一拓扑分数时,则将类作为目标类。可选地,可以获取类的所有子类的第一拓扑分数的最大值,判断类的第一拓扑分数是否大于类的所有子类的第一拓扑分数的最大值,当类的第一拓扑分数大于类的所有子类的第一拓扑分数的最大值时,则将类作为目标类。
可选地,可以将步骤501中得到的多个告警作为一个类,获取多个告警的第一拓扑分数,当多个告警的第一拓扑分数大于多个告警聚成的所有类的第一拓扑分数时,则将该多个告警获取为目标类。
与条件(1.3)相应地,获取目标类的具体过程可以包括下述步骤(1.3.1)至步骤(1.3.2):
步骤(1.3.1)对于该至少一个类中的任一类,获取该类的第二拓扑分数以及该类的至少一个子类的第二拓扑分数。
具体来讲,可以采用上述第二拓扑分数的获取方式,获取类的第二拓扑分数。另外,可以将类划分为至少一个子类,采用上述第二拓扑分数的获取方式,获取每个子类的第二拓扑分数。其中,关于将类划分为子类的方式,可选地,可以基于类中的告警的时序关联信息,对类中的告警进行聚类,得到类的至少一个子类。其中,该基于类中的告警的时序关联信息对类中的告警进行聚类的具体过程与上述步骤502中对多个告警进行聚类的过程同理,在此不做赘述。
步骤(1.3.2)当类的第二拓扑分数大于类的至少一个子类的第二拓扑分数时,将类获取为目标类。
可选地,可以判断类的第二拓扑分数是否大于类的所有子类的第二拓扑分数,当类的第二拓扑分数大于类的所有子类的第二拓扑分数时,则将类作为目标类。可选地,可以获取类的所有子类的第二拓扑分数的最大值,判断类的第二拓扑分数是否大于类的所有子类的第二拓扑分数的最大值,当类的第二拓扑分数大于类的所有子类的第二拓扑分数的最大值时,则将类作为目标类。
可选地,可以将步骤501中得到的多个告警作为一个类,获取多个告警的第二拓扑分数,当多个告警的第二拓扑分数大于多个告警聚成的所有类的第二拓扑分数时,则将该多个告警获取为目标类。
方式二、拓扑关联条件根据类的拓扑关联信息与拓扑关联信息阈值的大小关系确定。具体地,若拓扑关联信息越大,表明该类中不同告警之间的空间维度的关联程度越强,则拓扑关联条件可以为类的拓扑关联信息大于拓扑关联信息阈值;若拓扑关联信息越大,表明该类中不同告警之间的空间维度的关联程度越弱,则拓扑关联条件可以为类的拓扑关联信息小于拓扑关联信息阈值。
方式二中的拓扑关联信息可以包括第一拓扑分数以及第二拓扑分数中的至少一项。相应地,拓扑关联信息阈值可以包括第一拓扑分数阈值以及第二拓扑分数阈值中的至少一项。其中,拓扑关联信息阈值可以根据实验、经验或需求设置,例如可以为20,本实施例对拓扑关联信息阈值的具体数值不做限定。
可选地,拓扑关联条件可以包括下述条件(2.1)至条件(2.3)中的任一项或多项的组合:
条件(2.1)类的拓扑熵小于拓扑熵阈值。
与条件(2.1)相应地,获取目标类的具体过程可以包括下述步骤(2.1.1)至步骤(2.1.2):
步骤(2.1.1)对于至少一个类中的任一个类,获取类的拓扑熵。
步骤(2.1.2)当类的拓扑熵小于拓扑熵阈值时,将类获取为目标类。
以数学的方式表述,假设根据时序关联信息对告警聚类后,生成了类P以及类P的子类集合C,可以获取类P的拓扑熵,记为P_E,可以比对P_E和拓扑熵阈值e的大小,若P_E小于e,则将类P作为满足拓扑关联条件的目标类。
可选地,可以将步骤501中得到的多个告警作为一个类,获取多个告警的拓扑熵,当多个告警的拓扑熵小于拓扑熵阈值时,则将该多个告警获取为目标类。
条件(2.2)类的第一拓扑分数大于第一拓扑分数阈值。
与条件(2.2)相应地,获取目标类的具体过程可以包括下述步骤(2.2.1)至步骤(2.2.2):
步骤(2.2.1)对于至少一个类中的任一个类,获取类的第一拓扑分数。
步骤(2.2.2)当类的第一拓扑分数大于第一拓扑分数阈值时,将类获取为目标类。
以数学的方式表述,假设根据时序关联信息对告警聚类后,生成了类P以及类P的子类集合C,可以获取类P的第一拓扑分数记为P_S1,可以比对P_S1和第一拓扑分数阈值s1的大小,若P_S1大于s1,则将类P作为满足拓扑关联条件的目标类。
可选地,可以将步骤501中得到的多个告警作为一个类,获取多个告警的第一拓扑分数,当多个告警的第一拓扑分数大于第一拓扑分数阈值时,则将该多个告警获取为目标类。
条件(2.3)类的第二拓扑分数大于第二拓扑分数阈值。
与条件(2.3)相应地,获取目标类的具体过程可以包括下述步骤(2.3.1)至步骤(2.3.2):
步骤(2.3.1)对于至少一个类中的任一个类,获取类的第二拓扑分数。
步骤(2.3.2)当类的第二拓扑分数大于第二拓扑分数阈值时,将类获取为目标类。
以数学的方式表述,假设根据时序关联信息对告警聚类后,生成了类P以及类P的子类集合C,可以获取类P的第二拓扑分数记为P_S1,可以比对P_S1和第二拓扑分数阈值s1的大小,若P_S1大于s2,则将类P作为满足拓扑关联条件的目标类。
可选地,可以将步骤501中得到的多个告警作为一个类,获取多个告警的第二拓扑分数,当多个告警的第二拓扑分数大于第二拓扑分数阈值时,则将该多个告警获取为目标类。
可选地,上述方式一和方式二可以结合以构成拓扑关联条件。结合情况可以包括下述结合情况(1)至结合情况(2)。
结合情况(1):方式一和方式二可以采用和的方式结合,例如,拓扑关联条件可以为类的拓扑关联信息大于至少一个子类的拓扑关联信息且类的拓扑关联信息大于拓扑关联信息阈值。举例来说,拓扑关联条件可以为类的拓扑熵小于至少一个子类的拓扑熵且类的第一拓扑分数大于第一拓扑分数阈值。
相应地,获取目标类的过程可以包括:对于至少一个类中的任一类,获取类的拓扑关联信息以及类的至少一个子类的拓扑关联信息;当类的拓扑关联信息大于至少一个子类的拓扑关联信息,且类的拓扑关联信息大于拓扑关联信息阈值时,将类获取为目标类。举例来说,获取目标类的过程可以包括:对于至少一个类中的任一类,获取类的拓扑熵、类的第一拓扑分数、类的至少一个子类的拓扑熵以及类的至少一个子类的第一拓扑分数;当类的拓扑熵小于至少一个子类的拓扑熵的最大值,且类的第一拓扑分数大于第一拓扑分数阈值时,将类获取为目标类。
结合情况(2):方式一和方式二可以采用或的方式结合,例如,拓扑关联条件可以为类的拓扑关联信息大于至少一个子类的拓扑关联信息或类的拓扑关联信息大于拓扑关联信息阈值。举例来说,拓扑关联条件可以为类的拓扑熵小于至少一个子类的拓扑熵或类的第一拓扑分数大于第一拓扑分数阈值。
相应地,获取目标类的过程可以包括:对于至少一个类中的任一类,获取类的拓扑关联信息以及类的至少一个子类的拓扑关联信息;当类的拓扑关联信息大于至少一个子类的拓扑关联信息,或类的拓扑关联信息大于拓扑关联信息阈值时,将类获取为目标类。举例来说,获取目标类的过程可以包括:对于至少一个类中的任一类,获取类的拓扑熵、类的第一拓扑分数、类的至少一个子类的拓扑熵以及类的至少一个子类的第一拓扑分数;当类的拓扑熵小于至少一个子类的拓扑熵的最大值,或者类的第一拓扑分数大于第一拓扑分数阈值时,将类获取为目标类。
可选地,参见图9,在步骤502中,可以基于多个告警的时序关联信息,对多个告警进行递归聚类。可选地,对多个告警进行递归聚类的过程具体可以包括:对于至少一层递归中的当前层递归,基于当前层递归的类的时序关联信息,对当前层递归的类中的多个告警进行聚类,得到当前层递归的至少一个子类;相应地,在步骤503中,当基于该当前层递归的类的拓扑关联信息,确定该当前层递归的类符合该拓扑关联条件时,可以结束递归聚类,将该当前层递归的类输出为目标类。当基于该当前层递归的类的拓扑关联信息,确定该当前层递归的类不符合该拓扑关联条件;将该当前层递归的类的子类作为该当前层递归的下一层递归的类,执行该下一层递归。其中,每层递归可以为基于类的时序关联信息对类中的告警进行聚类的过程,第一层递归时,可以为将多个告警作为一个类,将类聚成至少一个子类,第二层递归至最后一层递归中,可以为将上一层递归输出的子类作为当前层递归的类,当得到当前层递归的至少一个子类后,可以向下一层递归输出该至少一个子类。递归结束条件可以为当前层递归的类符合拓扑关联条件。相应地,在当前层递归的类符合拓扑关联条件时,在步骤503中,可以将当前层递归的类获取为目标类。
具体来说,以第i层递归时的聚类对象称为类i,聚类后得到的子类称为子类i为例,可选地,在递归聚类的过程中,在执行第一层递归时,会对步骤501中获取到的原始的多个告警作为类1,基于类1的时序关联信息,对类1进行聚类,得到至少一个子类1,如果类1不符合拓扑关联条件,则将至少一个子类1输入第二层递归,如果原始的多个告警符合拓扑关联条件,则可以将类1作为目标类;在执行第二层递归时,对于第一层递归输出的至少一个子类1中的每个子类1,可以将该子类1作为第二层递归的类2,基于类2的时序关联信息,对类2中的多个告警进行聚类,得到类2的至少一个子类2,如果类2不符合拓扑关联条件,则将至少一个子类2输入第三层递归,如果类2符合拓扑关联条件,则将类2作为目标类;以此类推,在执行第i层递归时,对于第i-1层递归输出的至少一个子类i-1中的每个子类i-1,可以将该子类i-1作为第i层递归的类i,基于类i的时序关联信息,对类i中的多个告警进行聚类,得到类i的至少一个子类i,如果类i不符合拓扑关联条件,则将至少一个子类i输入第i+1层递归,如果类i符合拓扑关联条件,则将类i作为目标类,结束递归聚类。
随着递归聚类的执行,聚类的规模会不断缩小。例如,假设告警共有1000个,则第一层递归时要对1000个告警进行聚类。假设第一层递归得到10个类,每个类包括100个告警,则第二层递归时要执行10次聚类,而每次聚类时只需对100个告警进行聚类即可。假设第二层递归得到100个子类,每个子类包括10个告警,则第三层递归时要执行100次聚类,而每次聚类时只需对10个告警进行聚类即可。综上所述,随着递归聚类的执行,获取目标类的问题的难度会不断降低,可以逐渐逼近最优解。
递归聚类的过程可以视为生成树的过程,第一层递归可以视为在树中生成了根节点,该根节点指代多个告警;第二层递归可以视为在树中生成了第一层非叶节点,该第一层非叶节点指代多个类;第三层递归可以视为在树中生成了第二层非叶节点,该第二层非叶节点指代多个子类;依次类推,每层递归均可以视为在树中生成了一层节点,而每层递归中的一次聚类可以视为在树中生成了一层点中的一个分支。
举例来说,参见图10,图10为递归聚类的示意图,当得到多个告警后,可以视为在树中生成了根节点。当执行第一层递归时,基于多个告警的时序关联信息,对多个告警进行聚类后,可以得到类11、类22以及类13,相应地,可以视为在树中生成了第一层的3个节点。当执行第二层递归时,可以基于类11中不同告警的时序关联信息,对类11中的告警进行聚类,得到类21以及类22,相应地,可以视为在树中生成了第2层的第1个分支前2个节点;当执行第三层递归时,可以基于类21中不同告警的时序关联信息,对类21中的告警进行聚类,得到类31、类32以及类33,相应地,可以视为在树中生成了第3层的前3个节点;以此类推,随着递归聚类的执行,树会从根节点开始,自顶向下逐渐生成。
可选地,使用拓扑关联条件作为递归结束条件的方式具体可以包括下述方式(1)至方式(6)中任一项或多项的组合:
方式(1)在当前层递归的类的拓扑熵小于当前层递归的多个子类的拓扑熵时,结束递归聚类;或者,在当前层递归的类的拓扑熵不小于当前层递归的多个子类的拓扑熵时,对于当前层递归的至少一个子类中的每个子类,将子类作为下一层递归的类,执行下一层递归。
在一种可能的实现中,方式(1)具体可以包括:获取当前层递归的多个子类的拓扑熵的最大值,在当前层递归的类的拓扑熵小于该最大值时,结束递归聚类;或者,在当前层递归的类的拓扑熵不小于该最大值时,对于当前层递归的至少一个子类中的每个子类,将子类作为下一层递归的类,执行下一层递归。
可选地,递归聚类中每层递归的输入可以包括至少一个子类,该至少一个子类可以视为树中同一层的至少一个兄弟节点。在当前层递归的任一个子类不符合拓扑关联条件时,可以继续针对当前层递归中该子类的下一个子类执行聚类。举例来说,参见图10,假设第一层递归中,对多个告警进行聚类后,得到了类11、类22以及类13,可以获取类11的拓扑熵、类22的拓扑熵以及类13的拓扑熵的最大值,对类11中的告警进行聚类后,得到类21以及类22,可以获取类21的拓扑熵以及类22的拓扑熵的最大值,判断类11的拓扑熵是否小于类21的拓扑熵以及类22的拓扑熵的最大值,若类11的拓扑熵小于类21的拓扑熵以及类22的拓扑熵的最大值,则将类11作为目标类,停止对类11进行聚类。而若类11的拓扑熵不小于类21的拓扑熵以及类22的拓扑熵的最大值,则执行第2层递归,继续对类21以及类22进行聚类。之后,可以判断类21的拓扑熵是否小于类31的拓扑熵、类32的拓扑熵以及类33的拓扑熵,若类21的拓扑熵大于类31的拓扑熵、类32的拓扑熵以及类33的拓扑熵,则将类21作为目标类,停止对类21中的类进行聚类,若类21的拓扑熵不大于类31的拓扑熵、类32的拓扑熵以及类33的拓扑熵,则继续对类31、类32以及类33进行聚类,依次类推。
方式(2)在当前层递归的类的拓扑熵小于拓扑熵阈值时,结束递归聚类;或者,在当前层递归的类不小于拓扑熵阈值时,对于当前层递归的至少一个子类中的每个子类,将子类作为下一层递归的类,执行下一层递归。
方式(3)在当前层递归的类的第一拓扑分数大于当前层递归的多个子类的第一拓扑分数时,结束递归聚类;或者,在当前层递归的类的第一拓扑分数不大于当前层递归的多个子类的第一拓扑分数时,对于当前层递归的至少一个子类中的每个子类,将子类作为下一层递归的类,执行下一层递归。
方式(4)在当前层递归的类的第一拓扑分数大于第一拓扑分数阈值时,结束递归聚类;或者,在当前层递归的类的第一拓扑分数不大于第一拓扑分数阈值时,对于当前层递归的至少一个子类中的每个子类,将子类作为下一层递归的类,执行下一层递归。
方式(5)在当前层递归的类的第二拓扑分数大于当前层递归的多个子类的第二拓扑分数时,结束递归聚类;或者,在当前层递归的类的第二拓扑分数不大于当前层递归的多个子类的第二拓扑分数时,对于当前层递归的至少一个子类中的每个子类,将子类作为下一层递归的类,执行下一层递归。
方式(6)在当前层递归的类的第二拓扑分数大于第二拓扑分数阈值时,结束递归聚类;或者,在当前层递归的类的第二拓扑分数不大于第二拓扑分数阈值时,对于当前层递归的至少一个子类中的每个子类,将子类作为下一层递归的类,执行下一层递归。
综上所述,在每一层递归过程中,可以比较聚类前的拓扑关联信息以及聚类后每个子类的拓扑关联信息,若类的拓扑关联信息更大,表明聚类后相比聚类前效果更差,则取消本次聚类,直接退出聚类;若子类的拓扑关联信息更大,表明聚类后相比聚类前效果更佳,则继续聚类。这种机制交替地采用时序关联和拓扑关联两种划分方式,对聚类进行划分,从而融合了时序和拓扑的关联性,能够保证随着聚类的不断执行,可以逐渐逼近最优解。
进一步地,结合递归聚类的方法,当类的拓扑关联信息不大于至少一个子类的拓扑关联信息,或类的拓扑关联信息不大于拓扑关联信息阈值时,对于至少一个子类中的任一子类,基于子类中告警的时序关联信息,可以继续对子类中的告警进行聚类,直至获取到目标类为止。举例来说,参见图10,假设对多个告警进行聚类后,得到了类11、类22以及类13,可以判断类11的拓扑关联信息是否大于拓扑关联信息阈值,当类11的拓扑关联信息大于拓扑关联信息阈值,则将类11获取为目标类,停止对类11进行聚类。当类11的拓扑关联信息不大于拓扑关联信息阈值,则对类11中的告警进行聚类,得到类21以及类22。之后,可以判断类21的拓扑关联信息是否大于拓扑关联信息阈值,当类21的拓扑关联信息大于拓扑关联信息阈值,则将类21获取为目标类,停止对类21进行聚类。当类21的拓扑关联信息不大于拓扑关联信息阈值,则对类21中的告警进行聚类,得到类31、类32以及类33,依次类推。
综上所述,上述过程可以视为采用时序关联信息和拓扑关联信息这两种关联信息,来对大量告警不断交替地进行划分。通过使用告警之间的时序关联信息来对告警进行聚类,能够将时序关联性较强的告警聚为一类;通过使用拓扑关联信息,作为聚类的停止条件,若当前的类符合拓扑关联条件则退出聚类,若当前的类不符合拓扑关联条件则继续聚类,能够令找到的目标类的拓扑关联性较强;如此,可以融合了不同告警之间的时序关联性以及拓扑关联性,最终得到的目标类中的告警在时间维度和空间维度上均相似,因此可以真实的反映根因告警,屏蔽冗余的噪声信号。
504、计算设备基于至少一个目标类,输出根因告警信息。
该根因告警信息用于指示多个告警中的根因告警,可以包括根因告警的标识、生成根因告警的告警源的标识中的至少一项。其中,根因告警是指多个告警中触发其他告警的告警。
可选地,根因告警信息可以指示多个告警之间的关联关系。例如,根因告警信息可以包括多个告警源的标识,可以通过不同告警源的标识的排列顺序,来指示多个告警源的告警之间的关联关系。又如,根因告警信息可以包括预设符号,可以通过预设符号,来指示多个告警源的告警之间的关联关系。其中,该预设符号可以为“→、>”等。其中,该告警关联关系包括依赖关系、派生关系、同源关系。依赖关系:如果告警B发生的前提是告警A告警,则称告警A和告警B存在依赖关系,告警B依赖于告警A。派生关系:如果告警A发生后,将触发告警B告警,则称告警A和告警B存在派生关系。同源关系:如果告警A和告警B发生的原因相同,都是源于事件C,则称告警A和告警B存在同源关系,即告警A和告警B为同源告警。举例来说,假设网络中交换机1、交换机2和交换机3均和主机4连接,如果交换机1发出的告警x、交换机2发出的告警y和交换机3发出的告警z均为对主机4不可达的告警,可以称告警x、告警y以及告警z存在同源关系。
关于输出根因告警信息的方式,可选地,可以将至少一个目标类的至少一个告警链输出为根因告警信息,相应地,根因告警信息包括该至少一个目标类的至少一个告警链。
目标类的告警链中第一个告警源为生成根因告警的告警源。例如,假设目标类的告警链为“ABCD”,表示告警源A为生成根因告警的告警源。
目标类的告警链中的所有告警源可以为生成同源告警的告警源,目标类的告警链的所有告警源的告警可以由同一故障引起,其中,目标类的告警链中第一个告警源为最靠近故障的告警源。例如,假设告警链为“ABCD”,表示最靠近故障的告警源为告警源A,告警源A由于该故障产生异常事件,因此触发了告警,而告警源A的异常事件传播至告警源B,导致告警源B也相继产生异常事件,因此触发了告警,以此类推。
目标类的告警链中告警源的排列顺序可以指示告警的传播顺序。具体地,对于目标类的告警链中任两个告警源来说,前一个告警源触发了后一个告警源进行告警。例如,假设告警链为“ABCD”,表示告警源A触发了告警源B进行告警。
综上所述,可选地,请参见图11,图11示出了上述告警根因分析方法的逻辑流程图,告警管理节点、CMDB工具、调用链工具、时序关联信息运算模块、拓扑关联信息运算模块等软件模块可以按照图11所示的逻辑框图构建,告警管理节点生成的多个告警可以按照图11所示的输入输出顺序,通过上述方法中的每个步骤依次输入输出,最终通过交替采用时序关联和拓扑关联这两种划分方式,来逐渐逼近最优解,直至退出聚类,输出告警链。
需要说明的是,本实施例仅是以计算设备执行告警根因方法为例进行举例描述,在另一个实施例中,也可以由计算设备集群来执行告警根因方法,计算设备集群中的不同计算设备可以执行告警根因方法的不同步骤,例如计算设备A执行步骤501,计算设备B执行步骤502。其中,不同计算设备可以通过交互,互相发送和/或接收数据,来共享彼此的运算结果,最终实现告警根因分析的功能,其中,通过将不同的步骤分别由不同的计算设备执行,可以避免单个计算设备的运算开销过大,同时提升告警根因分析的效率。另外,在此对不同计算设备通过交互来进行告警根因分析的详细流程不做一一赘述。
本实施例提供的方法,提供了一种基于双重关联性进行告警根因分析的方法,能够融合不同告警的时序关联性以及不同告警的拓扑关联性,来从大量告警中挖掘出根因告警信息。通过基于告警的时序关联信息,对多个告警进行聚类,根据符合拓扑关联条件的目标类来得到根因告警信息,能够筛选出时序和拓扑上同时具有强关联性的告警,而过滤掉时间上偶然相邻的噪声信息以及拓扑上偶然相邻的噪声信息,从而可以避免噪声信息对告警根因分析的干扰,提高告警根因分析的准确性。同时,无需大量的业务领域知识,也无需人工定义推理规则,节约了告警根因分析的开销。
图12是本申请实施例提供的一种计算设备的结构示意图。参见图12,该计算设备包括:获取模块1201、聚类模块1202以及输出模块1203。
获取模块1201,用于执行上述步骤501;
聚类模块1202,用于执行上述步骤502;
该获取模块1201,还用于执行上述步骤503;
输出模块1203,用于执行上述步骤504。
可选地,该聚类模块1202,用于执行递归聚类的步骤。
可选地,该获取模块1201,用于基于该当前层递归的类的拓扑关联信息,确定该当前层递归的类符合该拓扑关联条件;结束递归聚类,将该当前层递归的类输出为目标类;或者,基于该当前层递归的类的拓扑关联信息,确定该当前层递归的类不符合该拓扑关联条件;将该当前层递归的类的子类作为该当前层递归的下一层递归的类,执行该下一层递归。可选地,该计算设备还包括:
生成模块,用于执行生成告警链的步骤;
该获取模块1201,还用于根据该至少一个告警链,获取该类的拓扑关联信息。
可选地,该获取模块1201,还用于执行获取拓扑熵的步骤;
可选地,该获取模块1201,还用于执行获取第一拓扑分数的步骤;
可选地,该获取模块1201,还用于执行获取第二拓扑分数的步骤;
可选地,该获取模块1201,用于应用下述公式,对每个告警链对应的告警的数量、该至少一个告警链的数量以及该类中告警的总数量运算,得到该类的拓扑熵:
其中,e表示类的拓扑熵,∑为求和符号,i表示正整数,Numi表示该至少一个告警链中第i条告警链对应的告警的数量,T表示该类中告警的总数量,CN为该至少一个告警链的数量,log表示对数运算,*表示乘法运算。
可选地,该生成模块,用于:从该告警源拓扑中获取至少一个拓扑链;根据该类中的告警的告警源,将该类中的告警分配给该至少一个拓扑链中对应的告警源;对于该至少一个拓扑链中的任一拓扑链,根据该拓扑链中已分配告警的至少一个告警源,生成一个告警链。
可选地,该获取模块1201,还用于遍历该类中的告警的至少一种分配方式,得到该至少一种分配方式对应的至少一个告警链集合;获取该类的至少一个告警链集合的拓扑关联信息;根据该至少一个告警链集合的拓扑关联信息,选取该至少一个告警链集合中拓扑关联程度最高的目标告警链集合;根据该目标告警链集合中的至少一个告警链,获取该类的拓扑关联信息。
可选地,该获取模块1201,用于执行下述至少一个步骤:
对于该至少一个类中的任一类,当该类的拓扑熵小于该类的至少一个子类的拓扑熵时,将该类获取为目标类;
对于该至少一个类中的任一类,当该类的拓扑熵小于拓扑熵阈值时,将该类获取为目标类;
对于该至少一个类中的任一类,当该类的第一拓扑分数大于该该类的至少一个子类的第一拓扑分数时,将该类获取为目标类;
对于该至少一个类中的任一类,当该类的第一拓扑分数大于第一拓扑分数阈值时,将该类获取为目标类;
对于该至少一个类中的任一类,当该类的第二拓扑分数大于该类的至少一个子类的第二拓扑分数时,将该类获取为目标类;
对于该至少一个类中的任一类,当该类的第二拓扑分数大于第二拓扑分数阈值时,将该类获取为目标类。
可选地,该获取模块1201,还用于根据该多个告警的发生时间,获取该多个告警的向量,每个向量用于指示对应告警的发生时间;对于该多个告警中的任两个告警,根据该两个告警的向量之间的距离或相似度,获取该两个告警之间的时序关联信息。
可选地,该输出模块1203,用于将至少一个该目标类的至少一个告警链输出为该根因告警信息。
需要说明的第一点是:图12实施例中的各个模块具体可以是软件中执行相应功能的软件模块,即,“模块”可以是一组计算机程序构成的功能模块,该计算机程序可以是源程序或目标程序,该计算机程序可以通过任意编程语言实现。通过上述各个模块,计算设备可以基于处理器加存储器的硬件来实现告警根因分析的功能,也即是,可以通过计算设备的处理器,运行存储在计算设备的存储器中的软件代码,来执行相应的软件来实现告警根因分析的功能。
需要说明的第二点是:图12实施例提供的计算设备在存储数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的计算设备与告警根因分析方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在一个示例性实施例中,本申请还提供了一种包含指令的计算机程序产品,该计算设备程序产品被至少一台计算设备执行时,该至少一台计算设备执行前述告警根因分析方法。该计算机程序产品可以为一个软件安装包,在需要使用前述告警根因分析方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
在一个示例性实施例中,本申请还提供了一种芯片,该芯片包括处理器和/或程序指令,当该芯片运行时,实现上述实施例中告警根因分析方法所执行的操作。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digitalvideo disc,DVD)、或者半导体介质(例如固态硬盘)等。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请中术语“多个”的含义是指两个或两个以上,例如,多个数据包是指两个或两个以上的数据包。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,本领域技术人员可以理解,“第一”“第二”等字样不对数量和执行顺序进行限定。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上该仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (22)
1.一种告警根因分析方法,其特征在于,所述方法包括:
获取多个告警;
基于所述多个告警的时序关联信息,对所述多个告警进行聚类,得到至少一个类,所述时序关联信息用于指示不同告警在时间维度的关联程度;
对于所述至少一个类中的每个类,根据所述类中的告警以及所述多个告警的告警源拓扑,生成至少一个告警链,每个告警链用于指示所述类中至少一个告警的传播流程;
根据每个告警链对应的告警的数量、所述至少一个告警链的数量以及所述类中告警的总数量中的至少一项,获取所述类的拓扑熵,所述拓扑熵用于指示所述类中告警分布在所述至少一个告警链的混乱程度;
基于所述至少一个类的拓扑熵,获取所述至少一个类中的目标类,所述目标类的拓扑熵小于所述目标类的子类的拓扑熵,或,所述目标类的拓扑熵小于拓扑熵阈值;
基于至少一个所述目标类,输出根因告警信息。
2.根据权利要求1所述的方法,其特征在于,所述基于所述多个告警的时序关联信息,对所述多个告警进行聚类,包括:
基于所述多个告警的时序关联信息,对所述多个告警进行递归聚类。
3.根据权利要求2所述的方法,其特征在于,所述基于所述多个告警的时序关联信息,对所述多个告警进行递归聚类,包括:
对于至少一层递归中的当前层递归,基于所述当前层递归的类的时序关联信息,对所述当前层递归的类中的多个告警进行聚类,得到所述当前层递归的类的至少一个子类。
4.根据权利要求3所述的方法,其特征在于,所述基于所述至少一个类的拓扑熵,获取所述至少一个类中的目标类,包括:
基于所述当前层递归的类的拓扑熵,确定所述当前层递归的类的拓扑熵小于子类的拓扑熵或所述当前层递归的类的拓扑熵小于拓扑熵阈值;结束递归聚类,将所述当前层递归的类输出为目标类;或者,
基于所述当前层递归的类的拓扑熵,确定所述当前层递归的类的拓扑熵不小于子类的拓扑熵或所述当前层递归的类的拓扑熵不小于拓扑熵阈值;将所述当前层递归的类的子类作为所述当前层递归的下一层递归的类,执行所述下一层递归。
5.根据权利要求1所述的方法,其特征在于,所述目标类的获取方式还包括:
根据每个告警链中相邻告警源的数量,获取所述类的第一拓扑分数,所述第一拓扑分数与所述相邻告警源的数量正相关;
基于所述至少一个类的第一拓扑分数,获取所述至少一个类中的目标类,所述目标类的第一拓扑分数大于所述目标类的子类的第一拓扑分数,或,所述目标类的第一拓扑分数大于第一拓扑分数阈值。
6.根据权利要求1所述的方法,其特征在于,所述目标类的获取方式还包括:
根据每个告警链中告警源在所述告警源拓扑中的层数,获取所述类的第二拓扑分数,所述第二拓扑分数与所述层数正相关;
基于所述至少一个类的第二拓扑分数,获取所述至少一个类中的目标类,所述目标类的第二拓扑分数大于所述目标类的子类的第二拓扑分数,或,所述目标类的第二拓扑分数大于第二拓扑分数阈值。
7.根据权利要求1所述的方法,其特征在于,所述根据所述类中的告警以及所述多个告警的告警源拓扑,生成至少一个告警链,包括:
从所述告警源拓扑中获取至少一个拓扑链;
根据所述类中的告警的告警源,将所述类中的告警分配给所述至少一个拓扑链中对应的告警源;
对于所述至少一个拓扑链中的任一拓扑链,根据所述拓扑链中已分配告警的至少一个告警源,生成一个告警链。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
遍历所述类中的告警的至少一种分配方式,得到所述至少一种分配方式对应的至少一个告警链集合;相应地,所述根据每个告警链对应的告警的数量、所述至少一个告警链的数量以及所述类中告警的总数量中的至少一项,获取所述类的拓扑熵,包括:
获取所述类的至少一个告警链集合的第一拓扑分数,根据所述至少一个告警链集合的第一拓扑分数,选取所述至少一个告警链集合中拓扑关联程度最高的目标告警链集合,根据所述目标告警链集合中的至少一个告警链,获取所述类的拓扑熵,所述目标告警链集合的第一拓扑分数在所述至少一个告警链集合中最高;或者,
获取所述类的至少一个告警链集合的第二拓扑分数,根据所述至少一个告警链集合的第二拓扑分数,选取所述至少一个告警链集合中拓扑关联程度最高的目标告警链集合,根据所述目标告警链集合中的至少一个告警链,获取所述类的拓扑熵,所述目标告警链集合的第二拓扑分数在所述至少一个告警链集合中最高。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述基于所述多个告警的时序关联信息,对所述多个告警进行聚类之前,所述方法还包括:
根据所述多个告警的发生时间,获取所述多个告警的向量,每个向量用于指示对应告警的发生时间;
对于所述多个告警中的任两个告警,根据所述两个告警的向量之间的距离或相似度,获取所述两个告警的时序关联信息。
10.根据权利要求1所述的方法,其特征在于,所述基于至少一个所述目标类,输出根因告警信息,包括:
将至少一个所述目标类的至少一个告警链输出为所述根因告警信息。
11.一种计算设备,其特征在于,所述设备包括:
获取模块,用于获取多个告警;
聚类模块,用于基于所述多个告警的时序关联信息,对所述多个告警进行聚类,得到至少一个类,所述时序关联信息用于指示不同告警在时间维度的关联程度;
生成模块,用于对于所述至少一个类中的每个类,根据所述类中的告警以及所述多个告警的告警源拓扑,生成至少一个告警链,每个告警链用于指示所述类中至少一个告警的传播流程;
所述获取模块,还用于根据每个告警链对应的告警的数量、所述至少一个告警链的数量以及所述类中告警的总数量中的至少一项,获取所述类的拓扑熵,所述拓扑熵用于指示所述类中告警分布在所述至少一个告警链的混乱程度;
所述获取模块,还用于基于所述至少一个类的拓扑熵,获取所述至少一个类中的目标类,所述目标类的拓扑熵小于所述目标类的子类的拓扑熵,或,所述目标类的拓扑熵小于拓扑熵阈值;
输出模块,用于基于至少一个所述目标类,输出根因告警信息。
12.根据权利要求11所述的计算设备,其特征在于,所述聚类模块,用于基于所述多个告警的时序关联信息,对所述多个告警进行递归聚类。
13.根据权利要求12所述的计算设备,其特征在于,所述聚类模块,用于:对于至少一层递归中的当前层递归,基于所述当前层递归的类的时序关联信息,对所述当前层递归的类中的多个告警进行聚类,得到所述当前层递归的类的至少一个子类。
14.根据权利要求13所述的计算设备,其特征在于,所述获取模块,用于:基于所述当前层递归的类的拓扑熵,确定所述当前层递归的类的拓扑熵小于子类的拓扑熵或所述当前层递归的类的拓扑熵小于拓扑熵阈值;结束递归聚类,将所述当前层递归的类输出为目标类;或者,基于所述当前层递归的类的拓扑熵,确定所述当前层递归的类的拓扑熵不小于子类的拓扑熵或所述当前层递归的类的拓扑熵不小于拓扑熵阈值;将所述当前层递归的类的子类作为所述当前层递归的下一层递归的类,执行所述下一层递归。
15.根据权利要求11所述的计算设备,其特征在于,所述获取模块,还用于根据每个告警链中相邻告警源的数量,获取所述类的第一拓扑分数,所述第一拓扑分数与所述相邻告警源的数量正相关;基于所述至少一个类的第一拓扑分数,获取所述至少一个类中的目标类,所述目标类的第一拓扑分数大于所述目标类的子类的第一拓扑分数,或,所述目标类的第一拓扑分数大于第一拓扑分数阈值。
16.根据权利要求11所述的计算设备,其特征在于,所述获取模块,还用于根据每个告警链中告警源在所述告警源拓扑中的层数,获取所述类的第二拓扑分数,所述第二拓扑分数与所述层数正相关;基于所述至少一个类的第二拓扑分数,获取所述至少一个类中的目标类,所述目标类的第二拓扑分数大于所述目标类的子类的第二拓扑分数,或,所述目标类的第二拓扑分数大于第二拓扑分数阈值。
17.根据权利要求11所述的计算设备,其特征在于,所述生成模块,用于:从所述告警源拓扑中获取至少一个拓扑链;根据所述类中的告警的告警源,将所述类中的告警分配给所述至少一个拓扑链中对应的告警源;对于所述至少一个拓扑链中的任一拓扑链,根据所述拓扑链中已分配告警的至少一个告警源,生成一个告警链。
18.根据权利要求11所述的计算设备,其特征在于,所述获取模块,还用于:
遍历所述类中的告警的至少一种分配方式,得到所述至少一种分配方式对应的至少一个告警链集合;
获取所述类的至少一个告警链集合的第一拓扑分数;根据所述至少一个告警链集合的第一拓扑分数,选取所述至少一个告警链集合中拓扑关联程度最高的目标告警链集合,根据所述目标告警链集合中的至少一个告警链,获取所述类的拓扑熵,所述目标告警链集合的第一拓扑分数在所述至少一个告警链集合中最高;或者,获取所述类的至少一个告警链集合的第二拓扑分数,根据所述至少一个告警链集合的第二拓扑分数,选取所述至少一个告警链集合中拓扑关联程度最高的目标告警链集合,根据所述目标告警链集合中的至少一个告警链,获取所述类的拓扑熵,所述目标告警链集合的第二拓扑分数在所述至少一个告警链集合中最高。
19.根据权利要求11至18任一项所述的计算设备,其特征在于,所述获取模块,还用于:根据所述多个告警的发生时间,获取所述多个告警的向量,每个向量用于指示对应告警的发生时间;对于所述多个告警中的任两个告警,根据所述两个告警的向量之间的距离或相似度,获取所述两个告警之间的时序关联信息。
20.根据权利要求11所述的计算设备,其特征在于,所述输出模块,用于将至少一个所述目标类的至少一个告警链输出为所述根因告警信息。
21.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器,所述至少一个计算设备的处理器用于执行如权利要求1至权利要求10中任一项所述的告警根因分析方法。
22.一种非瞬态的可读存储介质,其特征在于,所述非瞬态的可读存储介质被计算设备集群中的至少一个计算设备执行时,所述至少一个计算设备执行权利要求1至权利要求10中任一项所述的告警根因分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811383913.0A CN109684181B (zh) | 2018-11-20 | 2018-11-20 | 告警根因分析方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811383913.0A CN109684181B (zh) | 2018-11-20 | 2018-11-20 | 告警根因分析方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684181A CN109684181A (zh) | 2019-04-26 |
CN109684181B true CN109684181B (zh) | 2020-08-07 |
Family
ID=66184826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811383913.0A Active CN109684181B (zh) | 2018-11-20 | 2018-11-20 | 告警根因分析方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684181B (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111950270B (zh) * | 2019-04-29 | 2023-11-24 | 中国移动通信集团湖北有限公司 | 通信网络告警关联方法、装置及计算设备 |
CN110135603B (zh) * | 2019-05-21 | 2022-11-11 | 国网河南省电力公司信息通信公司 | 一种基于改进熵权法的电力网络告警空间特征分析方法 |
CN110351118B (zh) * | 2019-05-28 | 2020-12-01 | 华为技术有限公司 | 根因告警决策网络构建方法、装置和存储介质 |
CN110351136B (zh) * | 2019-07-04 | 2022-06-28 | 创新先进技术有限公司 | 一种故障定位方法和装置 |
CN110391936B (zh) * | 2019-07-25 | 2022-03-01 | 长沙学院 | 一种基于时序性告警的聚类方法 |
CN110503247A (zh) * | 2019-08-01 | 2019-11-26 | 中国科学院深圳先进技术研究院 | 电信网络告警预测方法及系统 |
CN112532408B (zh) * | 2019-09-17 | 2022-05-24 | 华为技术有限公司 | 提取故障传播条件的方法、装置及存储介质 |
CN110738272B (zh) * | 2019-10-23 | 2020-11-03 | 智洋创新科技股份有限公司 | 一种输电线路通道可视化机械类连续告警样本的标注方法 |
CN110995482B (zh) * | 2019-11-27 | 2022-06-21 | 深圳市商汤科技有限公司 | 告警分析方法、装置、计算机设备及计算机可读存储介质 |
CN111352759B (zh) * | 2019-12-31 | 2024-04-02 | 杭州亚信软件有限公司 | 一种告警根因的判定方法及装置 |
CN113407370A (zh) * | 2020-03-16 | 2021-09-17 | 中国移动通信有限公司研究院 | 根因错误的聚类方法、装置、设备及计算机可读存储介质 |
CN113515102A (zh) * | 2020-04-10 | 2021-10-19 | 北京京东乾石科技有限公司 | 一种异常归因方法和装置 |
CN113708949A (zh) * | 2020-05-22 | 2021-11-26 | 亚信科技(中国)有限公司 | 一种告警根因定位方法及装置 |
CN111784537B (zh) * | 2020-06-30 | 2023-08-01 | 国网信息通信产业集团有限公司 | 一种配电网状态参数监测方法、装置及电子设备 |
CN111897673B (zh) * | 2020-07-31 | 2022-10-21 | 平安科技(深圳)有限公司 | 运维故障根因识别方法、装置、计算机设备和存储介质 |
CN112104488B (zh) * | 2020-09-01 | 2022-11-25 | 上海佰贝科技发展股份有限公司 | 一种报警信息处理方法、装置、系统及存储介质 |
CN112104495B (zh) * | 2020-09-09 | 2022-07-05 | 四川信息职业技术学院 | 一种基于网络拓扑的系统故障根因定位方法 |
CN114285730A (zh) * | 2020-09-18 | 2022-04-05 | 华为技术有限公司 | 确定故障根因的方法,装置以及相关设备 |
CN112152852B (zh) * | 2020-09-23 | 2023-02-03 | 创新奇智(北京)科技有限公司 | 根因分析方法、装置、设备及计算机存储介质 |
CN112148772A (zh) * | 2020-09-24 | 2020-12-29 | 创新奇智(成都)科技有限公司 | 告警根因识别方法、装置、设备和存储介质 |
CN112583644B (zh) * | 2020-12-14 | 2022-10-18 | 华为技术有限公司 | 告警处理方法、装置、设备及可读存储介质 |
CN112612685B (zh) * | 2020-12-24 | 2023-01-06 | 威创集团股份有限公司 | 一种处理器告警消息处理方法、装置、终端及存储介质 |
CN112699281B (zh) * | 2021-01-08 | 2024-03-15 | 青岛明略软件技术开发有限公司 | 一种基于gspan算法的告警事件规则挖掘方法与系统 |
CN112600719A (zh) * | 2021-03-04 | 2021-04-02 | 新华三人工智能科技有限公司 | 告警聚类方法、装置及存储介质 |
CN113259168B (zh) * | 2021-05-28 | 2021-11-23 | 新华三人工智能科技有限公司 | 一种故障根因分析方法及装置 |
CN113282461B (zh) * | 2021-05-28 | 2023-06-23 | 中国联合网络通信集团有限公司 | 传输网的告警识别方法和装置 |
CN113285840B (zh) * | 2021-06-11 | 2021-09-17 | 云宏信息科技股份有限公司 | 存储网络故障根因分析方法及计算机可读存储介质 |
WO2022266890A1 (zh) * | 2021-06-23 | 2022-12-29 | 华为技术有限公司 | 一种确定失效原因的方法及装置 |
CN113835976B (zh) * | 2021-09-23 | 2024-03-29 | 阿里巴巴(中国)有限公司 | 针对互联网数据中心进行告警处理的方法及装置 |
CN113708977B (zh) * | 2021-09-27 | 2023-05-23 | 中国工商银行股份有限公司 | 获取根因告警信息的方法、装置、计算机设备和存储介质 |
CN113986595A (zh) * | 2021-10-29 | 2022-01-28 | 深圳前海微众银行股份有限公司 | 一种异常定位方法及装置 |
CN114091704B (zh) * | 2021-11-26 | 2022-07-12 | 奇点浩翰数据技术(北京)有限公司 | 一种告警压制方法和装置 |
CN114448774B (zh) * | 2021-12-16 | 2023-12-05 | 武汉光迅科技股份有限公司 | 告警处理方法、装置和存储介质 |
CN114637654B (zh) * | 2022-03-30 | 2022-12-02 | 北京国信网联科技有限公司 | 基于AIOps智慧运营中心的故障监测分析方法 |
CN114710396B (zh) * | 2022-04-08 | 2023-06-23 | 中国联合网络通信集团有限公司 | 一种网络告警的处理方法和服务器 |
CN115001753B (zh) * | 2022-05-11 | 2023-06-09 | 绿盟科技集团股份有限公司 | 一种关联告警的分析方法、装置、电子设备及存储介质 |
CN115086148B (zh) * | 2022-07-15 | 2024-01-30 | 中国电信股份有限公司 | 光网络告警处理方法、系统、设备及存储介质 |
CN115242812A (zh) * | 2022-07-25 | 2022-10-25 | 济南浪潮数据技术有限公司 | 一种节点数据同步方法、装置及计算机可读存储介质 |
CN115529219A (zh) * | 2022-09-16 | 2022-12-27 | 中国工商银行股份有限公司 | 告警分析方法、装置、计算机可读存储介质及电子设备 |
CN115580529A (zh) * | 2022-11-15 | 2023-01-06 | 阿里云计算有限公司 | 告警信息的处理方法、电子设备及存储介质 |
CN116991683B (zh) * | 2023-08-03 | 2024-01-30 | 北京优特捷信息技术有限公司 | 一种告警信息处理方法、装置、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270727A (zh) * | 2016-12-30 | 2018-07-10 | 北京国双科技有限公司 | 异常数据分析方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120317058A1 (en) * | 2011-06-13 | 2012-12-13 | Abhulimen Kingsley E | Design of computer based risk and safety management system of complex production and multifunctional process facilities-application to fpso's |
CN103001811B (zh) * | 2012-12-31 | 2016-01-06 | 北京启明星辰信息技术股份有限公司 | 故障定位方法和装置 |
CN103746961B (zh) * | 2013-12-12 | 2017-03-15 | 中国人民解放军63928部队 | 一种网络攻击场景的因果知识挖掘方法、装置及服务器 |
CN103761173A (zh) * | 2013-12-28 | 2014-04-30 | 华中科技大学 | 一种基于日志的计算机系统故障诊断方法及装置 |
US20180270102A1 (en) * | 2017-03-15 | 2018-09-20 | Futurewei Technologies, Inc. | Data center network fault detection and localization |
-
2018
- 2018-11-20 CN CN201811383913.0A patent/CN109684181B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270727A (zh) * | 2016-12-30 | 2018-07-10 | 北京国双科技有限公司 | 异常数据分析方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109684181A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684181B (zh) | 告警根因分析方法、装置、设备及存储介质 | |
US11614990B2 (en) | Automatic correlation of dynamic system events within computing devices | |
US11954568B2 (en) | Root cause discovery engine | |
US11586972B2 (en) | Tool-specific alerting rules based on abnormal and normal patterns obtained from history logs | |
CN110351150B (zh) | 故障根源确定方法及装置、电子设备和可读存储介质 | |
US11575697B2 (en) | Anomaly detection using an ensemble of models | |
US20190065738A1 (en) | Detecting anomalous entities | |
US11372841B2 (en) | Anomaly identification in log files | |
CN111669281B (zh) | 告警分析方法、装置、设备及存储介质 | |
US20200099570A1 (en) | Cross-domain topological alarm suppression | |
CN111324583B (zh) | 一种业务日志的分类方法及装置 | |
CN109800775B (zh) | 文件聚类方法、装置、设备及可读介质 | |
US11388039B1 (en) | Identifying problem graphs in an information technology infrastructure network | |
CN115061841A (zh) | 一种告警归并方法、装置、电子设备及存储介质 | |
CN114297037A (zh) | 一种告警聚类方法及装置 | |
CN115955323A (zh) | 一种网络安全态势感知方法、装置及电子设备 | |
US20230362079A1 (en) | Anomaly Detection for Cloud Computing Platforms | |
CN114422324B (zh) | 一种告警信息的处理方法、装置、电子设备及存储介质 | |
US20230362178A1 (en) | Detecting and Performing Root Cause Analysis for Anomalous Events | |
US11632380B2 (en) | Identifying large database transactions | |
CN115686381B (zh) | 存储集群运行状态的预测方法及装置 | |
CN114285647A (zh) | 一种分布式对象存储系统中桶异常访问检测方法及装置 | |
CN117390023A (zh) | 数据合计方法、数据合计装置、设备及存储介质 | |
CN114730280A (zh) | 跨度分类 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220222 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |