告警关联规则匹配优先级排序方法、装置及存储介质转让专利

申请号 : CN202110241609.8

文献号 : CN112702215B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王明辉敖襄桥

申请人 : 新华三人工智能科技有限公司

摘要 :

本公开提供一种告警关联规则匹配优先级排序方法、装置及存储介质,用于实现告警关联规则匹配优先级的自动排序,提高告警分析效率。本公开对告警关联规则进行了分类,告警关联规则中的告警之间具有蕴含关系,在应用规则时,匹配成功的告警关联规则中的子告警不再参与后续匹配。在获取到待排序的预先配置的告警关联规则后,基于规则中告警之间的蕴含关系,构建告警关联图,然后按照告警压缩最大化原则根据告警关联图所反映的告警关联规则之间的层级关系,基于下层告警关联规则的匹配优先级高于上层告警关联规则的匹配优先级的原则,对所获取的告警关联规则的匹配优先级进行排序。本公开能够实现告警关联规则的自动排序,提高了告警分析效率。

权利要求 :

1.一种告警关联规则匹配优先级排序方法,其特征在于,所述方法包括:获取待排序的预先配置的告警关联规则;所述告警关联规则所包含的告警之间具有蕴含关系,每种蕴含关系中都包含父告警和子告警及父告警与子告警之间的有向因果关系;

根据所获取的告警关联规则中的告警及告警之间的蕴含关系构建有向无环的告警关联图;所述告警关联图中的每个节点对应一种告警,节点之间的边代表告警关联规则中的蕴含关系;

根据告警关联图所反映的告警关联规则之间的层级关系,基于下层告警关联规则的匹配优先级高于上层告警关联规则的匹配优先级的原则,对所获取的告警关联规则的匹配优先级进行排序。

2.根据权利要求1所述的方法,其特征在于,所述告警关联规则分为三类,分别为父子关联规则、衍生关联规则和频次关联规则;

父子关联规则体现某一种告警必然引起另一种告警的关联关系,父子关联规则中的父告警与子告警之间为一父一子或多父一子的蕴含关系;

衍生关联规则体现同源的多个不同告警与根源告警之间的关联关系,衍生关联规则中的根源告警与同源的多个不同告警之间为一父多子的蕴含关系;

频次关联规则体现预设时间周期内多次重复出现的同一类告警与派生的特殊告警之间的频次关联关系,频次关联规则中的特殊告警与多次重复出现的同一类告警之间为一父一子的蕴含关系。

3.根据权利要求1所述的方法,其特征在于,所述根据所获取的告警关联规则中的告警及告警之间的蕴含关系构建有向无环的告警关联图的方法为:对告警关联图进行初始化,将所获取的告警关联规则读取到规则列表List中;

每次从规则列表List中取出一个告警关联规则,将该告警关联规则插入到告警关联图中;循环执行该步骤直到处理完规则列表List中的所有告警管理规则;

所述将该告警关联规则插入到告警关联图中的方法为:将该告警关联规则包含的告警存入集合A;

每次从集合A中取出一个告警,判断告警关联图中是否存在该告警,若不存在,则将该告警添加到告警关联图中;循环执行该步骤直到处理完集合A中的所有告警;

根据该告警关联规则中告警之间的蕴含关系,在告警关联图中告警对应的节点之间增加有向边,并将有向边的属性设置为该告警关联规则。

4.根据权利要求3所述的方法,其特征在于,在执行所述将该告警关联规则插入到告警关联图中的步骤后,还包括:

判断告警关联图中是否存在环路,如果存在环路则终止构建告警关联图的处理流程,提示用户修改产生环路的相关告警关联规则。

5.根据权利要求1所述的方法,其特征在于,所述对所获取的告警关联规则的匹配优先级进行排序的方法为:

将告警关联图中所有的告警存入告警序列warn_list,告警序列warn_list中的每个元素对应告警关联图中的一个节点,每个元素都具有子告警数量son_num属性,子告警数量属性初始化为0;将告警关联图包含的所有告警关联规则存入规则列表rule_list中;建立用于存放告警关联规则优先级排序结果队列rule_queue;

根据规则列表rule_list中所有告警关联规则所包含的告警之间的蕴含关系,为告警序列warn_list中的每个元素设置子告警数量son_num属性值;

遍历规则列表rule_list,判断rule_list中每一个告警关联规则中的所有子告警的子告警数量son_num属性值是否都为0,将满足条件的告警关联规则添加到排序结果队列rule_queue中,同时从rule_list中删除满足条件的告警关联规则并将满足条件的告警关联规则中的父告警的子告警数量son_num属性值减去该规则子告警个数;重复执行该步骤,直到将rule_list中所有告警关联规则添加到排序结果队列rule_queue中,先加入到rule_queue中的告警关联规则的匹配优先级高于后加入的告警关联规则的匹配优先级。

6.一种告警关联规则匹配优先级排序装置,其特征在于,该装置包括:规则获取模块,用于获取预先配置的告警关联规则;所述告警关联规则所包含的告警之间具有蕴含关系,每种蕴含关系中都包含父告警和子告警及父告警与子告警之间的有向因果关系;

关联图构建模块,用于根据所获取的告警关联规则中的告警及告警之间的蕴含关系构建有向无环的告警关联图;所述告警关联图中的每个节点对应一种告警,节点之间的边代表告警关联规则中的蕴含关系;

规则排序模块,用于根据告警关联图所反映的告警关联规则之间的层级关系,基于下层告警关联规则的匹配优先级高于上层告警关联规则的匹配优先级的原则,对所获取的告警关联规则的匹配优先级进行排序。

7.根据权利要求6所述的装置,其特征在于,所述告警关联规则分为三类,分别为父子关联规则、衍生关联规则和频次关联规则;

父子关联规则体现某一种告警必然引起另一种告警的关联关系,父子关联规则中的父告警与子告警之间为一父一子或多父一子的蕴含关系;

衍生关联规则体现同源的多个不同告警与根源告警之间的关联关系,衍生关联规则中的根源告警与同源的多个不同告警之间为一父多子的蕴含关系;

频次关联规则体现预设时间周期内多次重复出现的同一类告警与派生的特殊告警之间的频次关联关系,频次关联规则中的特殊告警与多次重复出现的同一类告警之间为一父一子的蕴含关系。

8.根据权利要求6所述的装置,其特征在于,所述关联图构建模块包括:初始化模块,用于对告警关联图进行初始化,将所获取的告警关联规则读取到规则列表List中;

规则插入模块,用于将规则列表List中的告警关联规则插入到告警关联图中;

所述规则插入模块包括:

节点插入模块,用于将告警关联规则中包含的告警到告警关联图;

边设置模块,用于根据该告警关联规则中告警之间的蕴含关系,在告警关联图中告警对应的节点之间增加有向边,并将有向边的属性设置为该告警关联规则;

环路检测模块,用于判断告警关联图中是否存在环路,如果存在环路则终止构建告警关联图的处理流程,提示用户修改产生环路的相关告警关联规则。

9.根据权利要求6所述的装置,其特征在于,所述规则排序模块包括:初始化模块,用于将告警关联图中所有的告警存入告警序列warn_list,告警序列warn_list中的每个元素对应告警关联图中的一个节点,每个元素都具有子告警数量son_num属性,将子告警数量属性初始化为0;将告警关联图包含的所有告警关联规则存入规则列表rule_list中;建立用于存放告警关联规则优先级排序结果队列rule_queue;

子告警数量设置模块,用于根据规则列表rule_list中所有告警关联规则所包含的告警之间的蕴含关系,为告警序列warn_list中的每个元素设置子告警数量son_num属性值;

规则排序模块,用于遍历规则列表rule_list,判断rule_list中每一个告警关联规则中的所有子告警的子告警数量son_num属性值是否都为0,将满足条件的告警关联规则添加到排序结果队列rule_queue中,同时从rule_list中删除满足条件的告警关联规则并将满足条件的告警关联规则中的父告警的子告警数量son_num属性值减去该规则子告警个数;

重复执行该步骤,直到将rule_list中所有告警关联规则添加到排序结果队列rule_queue中,先加入到rule_queue中的告警关联规则的匹配优先级高于后加入的告警关联规则的匹配优先级。

10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序当被处理器执行时实施如权利要求1至5中任一项所述的方法步骤。

说明书 :

告警关联规则匹配优先级排序方法、装置及存储介质

技术领域

[0001] 本公开涉及网络及通信技术领域,尤其涉及一种告警关联规则匹配优先级排序方法、装置及存储介质。

背景技术

[0002] 随着信息技术革命的不断发展和持续深化,现代通信网络遍布生活中的各个地方,应用于各种生活场景下,极大地改善了的生活,人们也越来越依赖于通信网络。这就要
求通信网络必须具有极高的可靠性和安全性,当复杂的网络结构中的某些节点出现通信故
障时,必须能够自动、快速、智能地诊断故障,定位故障,并有效地进行网络的恢复,这也是
网络管理的重要研究内容和实现目标。现代通信网络在运行中一般都具有完备的日志系
统,对网络的运行状态、操作记录、报警状态、报警恢复情况等都有实时记录。
[0003] 通信网络日志为网络管理人员提供了自动化的数据记录和第一手参考资料,同时也为网络诊断提供了大量的原始检测数据。自然而然地,利用好通信网络日志,进行相应的
数据提取和分析,获取其中有重要意义的网络告警信息;再利用合适的故障诊断方法,建立
诊断引擎,实现故障发现和定位,已成为近年来一种常用的研究思路。
[0004] 告警相关性分析是网络故障诊断的重要方法之一,系统能够提供基本的告警关联规则或由用户定义关联规则,对告警信息按关联规则进行相应的告警相关性分析。按照设
定的告警之间的关联规则,系统可推测出新来的一组告警中的决定性告警,根据它定位故
障的根源原因,使用户能够查到故障所影响的设备和链路信息和其影响的业务。
[0005] 在进行告警关联性分析之前,需要根据产生告警的网元拓扑关系及时间约束条件对同一告警时间窗内的告警进行聚类生成告警组,然后应用告警关联规库中的告警关联规
则对告警组中的告警进行关联分析,从而得到对应的聚合告警组。由于应用于告警组进行
关联分析的告警规则可能有多个,且具有不同的匹配优先级,在应用关联规则库中的关联
规则对告警序列进行规则匹配时,需要解决规则匹配优先级的问题,一般采用用户手工指
定优先级的方式。然而手工指定规则优先级非常繁琐,当关联规则数据较大时,工作量大且
极易出错,导致最终的规则匹配结果与预期不一致。此外,新添加的规则也会对原有规则库
的匹配结果造成影响。

发明内容

[0006] 有鉴于此,本公开提供一种告警关联规则匹配优先级排序方法、装置及存储介质,用于实现告警关联规则匹配优先级的自动排序,提高告警分析效率。
[0007] 图1为本公开提供的告警关联规则匹配优先级排序方法的步骤流程图,该方法包括:
[0008] 步骤101. 获取待排序的预先配置的告警关联规则;所述告警关联规则所包含的告警之间具有蕴含关系,每种蕴含关系中都包含父告警和子告警及父告警与子告警之间的
有向因果关系;
[0009] 所获取的告警关联规则可以是由用户预先配置的用于对某个告警设备产生的告警进行关联性分析的一个或多个关联规则。
[0010] 告警关联规则定义了多个告警之间的关联关系,用于对告警组中的告警进行匹配从而发现和揭示不同告警之间的关联关系。
[0011] 本公开中,告警关联规则包含的告警之间具有蕴含关系,每种蕴含关系中都包含父告警和子告警及父告警与子告警之间的有向因果关系。
[0012] 进一步地,本公开基于告警关联规则所包含的蕴含关系将告警关联规则分为三类,分别为父子关联规则、衍生关联规则和频次关联规则。
[0013] 父子关联规则体现某一种告警必然引起另一种告警的关联关系,父子关联规则中的父告警与子告警之间为一父一子或多父一子的蕴含关系;
[0014] 衍生关联规则体现同源的多个不同告警与根源告警之间的关联关系,衍生关联规则中的根源告警与同源的多个不同告警之间为一父多子的蕴含关系;
[0015] 频次关联规则体现预设时间周期内多次重复出现的同一类告警与派生的特殊告警之间的频次关联关系,频次关联规则中的特殊告警与多次重复出现的同一类告警之间为
一父一子的蕴含关系。
[0016] 步骤102. 根据所获取的告警关联规则中的告警及告警之间的蕴含关系构建有向无环的告警关联图;所述告警关联图中的每个节点对应一种告警,节点之间的边代表告警
关联规则中的蕴含关系;
[0017] 步骤103. 根据告警关联图所反映的告警关联规则之间的层级关系,基于下层告警关联规则的匹配优先级高于上层告警关联规则的匹配优先级的原则,对所获取的告警关
联规则的匹配优先级进行排序。
[0018] 本公开为实现告警压缩最大化的目的,根据有向无环的告警关联图由下向上的处理顺序,从告警关联图的底层开始,依次由下向上提取告警关联图中节点之间的边所对应
的告警关联规则并输出,先提取的告警关联规则的匹配优先级高于后输出的告警关联规则
的匹配优先级。
[0019] 进一步地,根据所获取的告警关联规则中的告警及告警之间的蕴含关系构建有向无环的告警关联图的方法为:
[0020] 步骤1021.对告警关联图进行初始化,将所获取的告警关联规则读取到规则列表List中;
[0021] 步骤1022. 每次从规则列表List中取出一个告警关联规则,将该告警关联规则插入到告警关联图中;循环执行该步骤直到处理完规则列表List中的所有告警管理规则;
[0022] 所述将该告警关联规则插入到告警关联图中的方法为:
[0023] 步骤1023.将该告警关联规则包含的告警存入集合A;
[0024] 步骤1024. 每次从集合A中取出一个告警,判断告警关联图中是否存在该告警,若存在,则将该告警添加到告警关联图中;循环执行该步骤直到处理完集合A中的所有告警;
[0025] 步骤1025.根据该告警关联规则中告警之间的蕴含关系,在告警关联图中告警对应的节点之间增加有向边,并将有向边的属性设置为该告警关联规则。
[0026] 进一步地,在执行所述将该告警关联规则插入到告警关联图中的步骤后,还包括:
[0027] 判断告警关联图中是否存在环路,如果存在环路则终止构建告警关联图的处理流程,提示用户修改产生环路的相关告警关联规则,待修改后再次执行构建告警关联图的处
理流程,直到构建出一个有向无环的告警关联图。
[0028] 进一步地,所述对所获取的告警关联规则的匹配优先级进行排序的方法为:
[0029] 步骤1031.将告警关联图中所有的告警存入告警序列warn_list,告警序列warn_list中的每个元素对应告警关联图中的一个节点,每个元素都具有子告警数量son_num属
性,子告警数量属性初始化为0;将告警关联图包含的所有告警关联规则存入规则列表
rule_list中;建立用于存放告警关联规则优先级排序结果队列rule_queue;
[0030] 步骤1032.根据规则列表rule_list中所有告警关联规则所包含的告警之间的蕴含关系,为告警序列warn_list中的每个元素设置子告警数量son_num属性值;
[0031] 步骤1033. 遍历规则列表rule_list,判断rule_list中每一个告警关联规则中的所有子告警的子告警数量son_num属性值是否都为0,将满足条件的告警关联规则添加到排
序结果队列rule_queue中,同时从rule_list中删除满足条件的告警关联规则并将满足条
件的告警关联规则中的父告警的子告警数量son_num属性值设置为0;重复执行该步骤,直
到将rule_list中所有告警关联规则添加到排序结果队列rule_queue中,先加入到rule_
queue中的告警关联规则的匹配优先级高于后加入的告警关联规则的匹配优先级。
[0032] 本公开对告警关联规则进行分类,并定义了告警关联规则中告警之间的蕴含关系,规定在应用告警关联规则时,匹配成功的告警关联规则中的子告警不再参与后续匹配。
在获取到待排序的预先配置的告警关联规则后,基于规则中告警之间的蕴含关系,构建告
警关联图,然后按照告警压缩最大化原则根据告警关联图所反映的告警关联规则之间的层
级关系,基于下层告警关联规则的匹配优先级高于上层告警关联规则的匹配优先级的原
则,对所获取的告警关联规则的匹配优先级进行排序。本公开能够实现告警关联规则的自
动排序,有效规避了手工指定规则优先级的各种问题,提高了告警分析效率。
[0033] 图2为本公开一实施例提供的一种告警关联规则匹配优先级排序装置结构示意图,该装置200中的各功能模块可以采用软件、硬件或软硬件相结合的方式实现。各模块可
部署在一个硬件设备上实施上述方法的所有步骤,也可分散部署在不同硬件设备上由多个
硬件设备分别实施上述方法中的一个或若干步骤从而共同实施以实现本公开的目的。当由
多个硬件设备共同实施时,由于各硬件设备之间相互协作的目的是共同实现本公开的目
的,一方的动作和处理结果确定了另一方的动作执行的时机及可能获得的结果,因此,在逻
辑上可视为各模块彼此之间具有相互指挥和控制关系。本公开一实施例以应用在一个节点
为例,将该装置200包括:
[0034] 规则获取模块210,用于获取预先配置的告警关联规则;所述告警关联规则所包含的告警之间具有蕴含关系,每种蕴含关系中都包含父告警和子告警及父告警与子告警之间
的有向因果关系;
[0035] 关联图构建模块220, 用于根据所获取的告警关联规则中的告警及告警之间的蕴含关系构建有向无环的告警关联图;所述告警关联图中的每个节点对应一种告警,节点之
间的边代表告警关联规则中的蕴含关系;
[0036] 规则排序模块230, 用于根据告警关联图所反映的告警关联规则之间的层级关系,基于下层告警关联规则的匹配优先级高于上层告警关联规则的匹配优先级的原则,对
所获取的告警关联规则的匹配优先级进行排序。
[0037] 进一步地,所述关联图构建模块220包括:
[0038] 初始化模块,用于对告警关联图进行初始化,将所获取的告警关联规则读取到规则列表List中;
[0039] 规则插入模块,用于将规则列表List中的告警关联规则插入到告警关联图中;
[0040] 所述规则插入模块包括:
[0041] 节点插入模块,用于将告警关联规则中包含的告警到告警关联图;
[0042] 边设置模块,用于根据该告警关联规则中告警之间的蕴含关系,在告警关联图中告警对应的节点之间增加有向边,并将有向边的属性设置为该告警关联规则。
[0043] 进一步地,所述规则插入模块还包括:
[0044] 环路检测模块,用于判断告警关联图中是否存在环路,如果存在环路则终止构建告警关联图的处理流程,提示用户修改产生环路的相关告警关联规则。
[0045] 进一步地,所述规则排序模块230包括:
[0046] 初始化模块,用于将告警关联图中所有的告警存入告警序列warn_list,告警序列warn_list中的每个元素对应告警关联图中的一个节点,每个元素都具有子告警数量son_
num属性,将子告警数量属性初始化为0;将告警关联图包含的所有告警关联规则存入规则
列表rule_list中;建立用于存放告警关联规则优先级排序结果队列rule_queue;
[0047] 子告警数量设置模块,用于根据规则列表rule_list中所有告警关联规则所包含的告警之间的蕴含关系,为告警序列warn_list中的每个元素设置子告警数量son_num属性
值;
[0048] 规则排序模块,用于遍历规则列表rule_list,判断rule_list中每一个告警关联规则中的所有子告警的子告警数量son_num属性值是否都为0,将满足条件的告警关联规则
添加到排序结果队列rule_queue中,同时从rule_list中删除满足条件的告警关联规则并
将满足条件的告警关联规则中的父告警的子告警数量son_num属性值设置为0;重复执行该
步骤,直到将rule_list中所有告警关联规则添加到排序结果队列rule_queue中,先加入到
rule_queue中的告警关联规则的匹配优先级高于后加入的告警关联规则的匹配优先级。
[0049] 图3为本公开一实施例提供的一种电子设备结构示意图,该设备300包括:诸如中央处理单元(CPU)的处理器310、通信总线320、通信接口340以及存储介质330。其中,处理器
310与存储介质330可以通过通信总线320相互通信。存储介质330内存储有计算机程序,当
该计算机程序被处理器310执行时即可实现本公开提供的方法的各步骤。
[0050] 其中,存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non‑Volatile Memory,NVM),例如至少一个磁盘存储器。另外,存储
介质还可以是至少一个位于远离前述处理器的存储装置。处理器可以是通用处理器,包括
中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还
可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application 
Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate 
Array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

附图说明

[0051] 为了更加清楚地说明本公开实施例或者现有技术中的技术方案,下面将对本公开实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的
附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本公
开实施例的这些附图获得其他的附图。
[0052] 图1为本公开提供的告警关联规则匹配优先级排序方法的步骤流程图;
[0053] 图2为本公开一实施例提供的一种告警关联规则匹配优先级排序装置结构示意图;
[0054] 图3为本公开一实施例提供的一种电子设备结构示意图;
[0055] 图4为本公开一实施例中单独一个一父多子的告警关联规则构建告警关联图的示例;
[0056] 图5为本公开一实施例中单独一个多父一子的告警关联规则构建告警关联图的示例;
[0057] 图6为本公开一实施例中根据多个告警关联规则构建告警关联图的示例;
[0058] 图7为本公开一实施例中构建告警关联图时出现环路的示意图。

具体实施方式

[0059] 在本公开实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本公开实施例。本公开实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,
除非上下文清楚地表示其它含义。本公开中使用的术语“和/或”是指包含一个或多个相关
联的列出项目的任何或所有可能组合。
[0060] 应当理解,尽管在本公开实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,
在不脱离本公开实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息
也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……
时”或“当……时”或“响应于确定”。
[0061] 在应用告警关联规则库(以下简称规则库)中的告警关联规则(为简洁起见,以下有些地方简称为规则)对告警序列进行规则匹配时,需要解决规则匹配优先级的问题,采用
手工指定关联规则的匹配优先级的方式效率非常低且非常繁琐,当规则数据较大时,工作
量大且极易出错。
[0062] 为解决此问题,本公开提出了一种基于有向无环图(Directed Acyclic Graph,DAG)的告警关联规则匹配优先级配置方法。本公开根据告警关联规则所涉及的告警之间的
“蕴含”关系,将告警关联规则所包含的告警形成一个DAG图,然后根据告警压缩最大化原则
对告警关联规则进行匹配优先级排序,从而实现告警关联规则的匹配优先级的自动配置。
[0063] 本公开在对告警关联规则的匹配优先级进行配置之前,首先对告警关联规则的类型进行划分,将告警关联规则划分为三类,且明确了每一类告警关联规则中告警之间的蕴
含关系,蕴含关系用于表征事件A导致事件B发生的内在逻辑关系。
[0064] 本公开对三类告警关联规则及其所涉及的告警之间的蕴含关系做了如下限定:
[0065] (1)第一类告警关联规则为:父子关联规则,该规则体现了某一种告警必然引起另一种告警的关联关系。
[0066] 例如,在真实的网络环境中,存在下面的情况:某一故障发生,系统派发了某告警日志S;由于S故障的发生,并发引起了C故障的发生,派发了C告警;在极短的时间内,系统会
同时收到S告警和C告警。此时认为S告警为父告警,主告警S引发了次告警C。这种情况下,将
上述告警之间的关联规则记做:
[0067] Warn S →warn C
[0068] 其中,符号“→”表示告警S和告警C之间存在“蕴含”关系,即告警S蕴含着告警C,S称为父告警,C称为子告警。
[0069] 为简化处理,本公开限定:父子关联规则中父告警与子告警之间只能存在一父一子或多父一子的蕴含关系。
[0070] (2)第二类告警关联规则为:衍生关联规则,该规则体现了同源的多个不同告警与根源告警之间的关联关系,根源告警与多个不同告警之间具有衍生关系。
[0071] 例如,是由于某种故障A的发生,产生了告警B和告警C,告警B和告警C具有相同的根因,由B和C衍生出代表故障根源的告警A,告警A即为告警B和告警C的根源告警。
[0072] 这种情况,将上述告警之间的关联规则记做:Warn A ‑‑‑> warn B, warn C
[0073] 其中,符号“→”表示“蕴含”关系,即告警A蕴含着告警B和告警C,A称为父告警,告警B和告警C称为同源子告警。
[0074] 为简化处理,本公开限定:衍生关联规则中根源告警与同源告警之间为一父多子的蕴含关系。
[0075] 父子关联规则预衍生关联规则的区别在于,父子关联规则中的父告警和子告警都是原始告警,而衍生关联规则中的根源告警不是原始告警,是衍生出来的(新增)告警。
[0076]  (3)第三类告警关联规则为:频次关联规则,该规则体现了预设时间周期内多次重复出现的同一类告警与派生的特殊告警之间的频次关联关系。
[0077] 例如,在实际业务场景中,对于在指定时间段内频繁发生超过指定门限次数的某种告警,不管此种告警是否还处于活动状态,系统都会派生出一个新的特殊告警,用来提醒
A用户。
[0078] 例如,一段时间内出现多(大于3次)次告警A,每重复出现3次告警A,就会派生出一个新的告警B,告警B与告警A之间即存在频次关联关系,记做:Warn B→warn A
[0079] 其中,符号“→”表示“蕴含”关系,即告警B蕴含着告警A,B称为父告警,A称为子告警。
[0080] 本公开中限定频次关联规则中新的特殊告警与重复出现的告警之间为一父一子的蕴含关系。
[0081] 应用关联规则时,本公开规定,与某条规则匹配的告警中的父告警可以参与后续其它规则的匹配,而子告警不需要再参与后续其它规则的匹配。
[0082] 以父子关联规则为例,应用父子关联规则rule1到告警序列WarnSeq1的示例如下:
[0083] Rule1=PHY_UPDOWN→ LINK_UPDOWN
[0084] WarnSeq1={ X,PHY_UPDOWN,X,LINK_UPDOWN,…}
[0085] 其中,告警序列WarnSeq1中的X表示与rule1不相关的其他告警,匹配规则rule1后,告警序列变为:
[0086] WarnSeq1'={X,PHY_UPDOWN,X, ,…}
[0087] 其中,“ ”代表经Rule1规则匹配后,LINK_UPDOWN作为子告警,不再参与后续匹配。
[0088] 以衍生关联规则为例,应用衍生关联规则rule2到告警序列WarnSeq2的示例如下:
[0089] rule2 =PHY_UPDOWN_Derive→ PHY_UPDOWN(status=down), PHY_UPDOWN (status = up);
[0090] WarnSeq2= {X,PHY_UPDOWN(down),X,PHY_UPDOWN(up),…}。
[0091] 其中,告警序列WarnSeq2中的X表示与rule2不相关的其他告警,status表示端口Phy的链路状态。匹配规则rule2后,告警序列变为:
[0092] WarnSeq2'={X,PHY_UPDOWN_Derive, ,X,,…}。
[0093] 其中,“ ”和“ ”代表经Rule2规则匹配后,“PHY_UPDOWN(down)”和“PHY_UPDOWN(up)”作为子告警,不再参与后续匹
配。
[0094] 基于同理,对于频次关联规则也准守上述同样的规则,此处不再赘述。
[0095] 在对告警关联规则进行匹配优先级排序之前,还需要基于告警关联规则库建立有向无环的告警关联图,通过告警关联图中是否存在环路来判断告警规则设置的是否正确。
[0096] 告警关联图中,每个节点对应一种告警,节点之间的边代表告警关联规则的蕴含关系。在根据告警关联规则的蕴含关系构建出告警关联图后,如果发现图中有环,则表明所
涉及的告警关联规则定义的不合适,需要做修改,修改后再次构建告警关联图并再次验证,
直到形成一个有向无环图。
[0097] (1)对于单独的一个告警关联规则,根据其中告警之间的“蕴含”关系,可以形成一棵树,它是一个最简单的有向无环图。图4为单独一个一父多子的告警关联规则构建告警关
联图的示例,其中的告警关联规则为rule1: warn 1→warn2,warn3。其中父告警warn 1是
上层节点,warn2,warn3的其子节点。
[0098] 图5为单独一个多父一子的告警关联规则构建告警关联图的示例,其中告警关联规则为rule2:warn 3,warn4→ warn5:
[0099] (2)对于多个告警关联规则,根据每个规则中告警之间的“蕴含”关系,可以构建一颗更大的告警关联图。图6为根据多个告警关联规则构建告警关联图的示例,图6为根据前
述图4和图5中的rule1和rule2构建的告警关联图。
[0100] 当告警关联规则库中包括多个告警关联规则时,将规则库中的所有规则按“蕴含”关系连接起来,可以形成一个更复杂的告警关联图。
[0101] (3)根据告警关联规则库中的多个告警关联规则构建告警关联图时,如果构建的告警关联图出现环路,则表明告警关联规则配置有误,需要对导致环路的告警关联规则进
行修改。
[0102] 图7为构建告警关联图时出现环路的示意图,假设在图6的基础上,新增的规则rule3: warn5 → warn1导致warn1、warn3和warn5之间构成环路,由于本公开限定告警关
联图必需是有向无环图DAG图,因此需要修改相关的规则配置,例如将rule3去掉。
[0103] 根据告警关联规则库中的告警关联规则构建告警关联图的方法如下:
[0104] 步骤A1、对图Forest进行初始化,将告警关联规则库中的规则读取到规则序列List中;
[0105] 步骤A2、从List中取出一个规则rule,将其插入Forest中;
[0106] 将规则rule插入告警关联图的方法为:
[0107] 步骤A21、将rule所包含的告警取出形成告警集合A;
[0108] 步骤A22、依次从集合A中取出一个告警warn,判断warn是否出现在Forest中,若Forest中未包括warn节点,则向Forest中增加与该warn对应的节点,若已包括则不做处理。
循环执行步骤A22,直到处理完集合A中的所有告警。
[0109] 步骤A23、根据rule中告警之间的蕴含关系,在Forest中告警对应的节点之间增加有向边,并将有向边的属性设置为rule;
[0110] 重复上执行步骤A2直到序列List为空。
[0111] 步骤A3、在插入一个规则后,判断Forest是否存在环路,如果Forest成环,则需要终止构建告警关联图,提示用户修改对应的关联规则,修改后再次执行上述步骤,重新构建
告警关联图,直到生成一个有向无环的告警关联图。
[0112] 在完成告警关联图的构建后,即可进行告警关联规则匹配优先级的排序,本公开提供的告警关联规则优先级排序方法遵循告警压缩最大化原则。该原则要求在进行规则匹
配时要尽量减小告警序列的长度,以实现告警压缩、告警摘要的目的。为实现该目的,规则
匹配应该从告警关联图的下游节点向上游节点滑动,才能使得规则应用个数最大化。
[0113] 因此,基于上述原则,对于某一告警A匹配到多个关联规则的情况,按照告警关联图由下向上的顺序处理,优先处理告警A作为主告警的情形。
[0114] 如:rule1: warn1→ warn2, warn3
[0115] rule2: warn4→ warn1
[0116] 由于rule1中的父节点warn1为rule2中的子节点,因此需要优先匹配rule1,rule1的优先级高于rule2。
[0117] 在基于告警关联规则库构建完有向无环图即告警关联图后,即可基于告警关联图对告警关联规则库中的告警关联规则进行排序,基于树和图的排序算法很多,例如深度优
先排序算法等,本公开不做特别限定。
[0118] 本公开一实施例中采用如下的算法对告警关联规则的匹配优先级进行排序:
[0119] 步骤B1、将告警关联图中所有的告警存入一个告警序列warn_list,告警序列中每个元素对应告警关联图中的一个节点,告警序列中的每个元素都具有子告警数量son_num
属性,在初始化时将告警序列中的所有元素的son_num属性初始化为0,将告警关联图所涉
及的所有告警关联规则即告警关联规则库中的告警关联规则存入规则列表rule_list中;
[0120] 步骤B2、从rule_list中取出一个规则,根据该规则中告警之间的“蕴含”关系设置warn_list中告警对应的元素的son_num属性值;
[0121] 例如,规则rule1:warn1→ warn2, warn3,其中warn1为父告警,它有两个子告警,则找到warn_list中的warn1对应元素,需修改其son_num属性值为原属性值加2即
warn1.son_num =warn1.son_num+2。
[0122] 若另一规则为:warn1,warn2→ warn3,其中warn1,warn2为父告警,它有共同的1个子告警,则warn_list中的warn1和warn2对应的元素的son_num属性值分别修改为:
warn1.son_num = warn1.son_num+1,warn2.son_num = warn2.son_num+1,即在原属性值
的基础上加1。
[0123] 循环执行步骤B2,完成对warn_list中所有告警的son_num属性的修改。
[0124] 步骤B3、建立用于存放告警关联规则匹配优先级排序结果的排序结果队列rule_queue,初始化rule_queue = NULL;
[0125] 步骤B4、遍历rule_list,从rule_list所包含的所有的规则中筛选出,包含子告警的子告警数量为0的下游规则,将筛选出的下游规则添加到排序结果队列rule_queue中,并
从rule_list中删除所筛选出的子告警数量为0的所有下游规则,同时更新warn_list中子
告警数量为0的下游规则中的父告警的son_num属性值(减去该规则子告警个数)。
[0126] 例如,以图6中的告警关联图为例:
[0127] rule_list=(rule1,rule2)
[0128] warn_list=(warn1,warn2,warn3,warn4,warn5)
[0129] 规则rule1的蕴含关系为:warn1 → warn2, warn3
[0130] 规则rule2为蕴含关系为:warn3,warn4 → warn5
[0131] 当告警关联图构建完成后,根据步骤B2对warn_list进行初始化后,等得到:warn_list=(warn1.son_num=2, warn2.son_num=0,warn3.son_num=1,
[0132] warn4.son_num=1,warn5.son_num=0)
[0133] 根据rule1的蕴含关系可知rule1包含warn1、warn2和warn3三个告警之间的关联关系,其中warn1为rule1的父告警,warn2和warn3为rule1的子告警。同理,warn3和warn4为
rule2的父告警,warn5为rule2的子告警。
[0134] 在步骤B4中,首先从rule_list取出rule1,判断rule1的子告警的子告警数量是否都为0,即判断warn2和warn3的子告警数量属性值是否都为零,由于此时warn2.son_num=0,
warn3.son_num=1,因此不符合条件,rule1为非下游规则。同理,由于rule2只有一个子告警,且
子告警warn5.son_num=0,符合条件,所以rule2为下游规则,将rule2从rule_list中摘除并将
其添加到rule_queue中,同时修改warn3和warn4的子告警数量属性值。完成该步骤后,当前
的结果状态如下:
[0135] 此时rule_queue=(rule2)。
[0136] rule_list=(rule1)
[0137] warn_list=(warn1.son_num=2, warn2.son_num=0,warn3.son_num=0,
[0138] warn4.son_num=0,warn5.son_num=0)
[0139] 步骤B5、判断rule_list中是否还有待处理的规则,如果有则继续执行步骤B4,否则终止循环。
[0140] 基于前述排序结果状态,当再次执行步骤B4时,rule_list中只有rule2,rule2的子告警warn2和warn3的子告警数量属性值此时为warn2.son_num=0,warn3.son_num=0,因此符合条
件。将rule2从rule_list中摘除并将其添加到rule_queue中,同时修改warn1的子告警数量
属性值为0。由于此时,rule_list已为空,所以循环处理结束。
[0141] 步骤B6、输出经过优先级排序后的排序结果队列rule_queue。
[0142] 基于前述示例,最终输出的rule_queue =(rule2,rule1),根据规则优先级的排序结果可知,在对告警数据进行规则匹配时,优先使用规则rule2进行匹配,然后使用规则
rule1进行匹配。
[0143] 根据上述告警关联规则的优先级排序方法,只要按照告警关联规则分类中告警之间的蕴含关系构建起有向无环的告警关联图,然后再按照下游规则优先的原则进行排序,
即可自动完成告警关联规则的优先级排序,该方法满足了告警压缩最大化的要求,提高了
告警优先级关联关系分析的整体效率,具有很好的技术效果和重要的意义。
[0144] 应当认识到,本公开的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包
括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质
使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言
来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情
况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路
上运行。此外,可按任何合适的顺序来执行本公开描述的过程的操作,除非本公开另外指示
或以其他方式明显地与上下文矛盾。本公开描述的过程(或变型和/或其组合)可在配置有
可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理
器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或
其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0145] 进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成
的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本公开的各方面可以以存
储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算
平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当
存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此
外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器
或其他数据处理器实现上文所述步骤的指令或程序时,本公开包括这些和其他不同类型的
非暂时性计算机可读存储介质。当根据本公开所述的方法和技术编程时,本公开还包括计
算机本身。
[0146] 以上所述仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同
替换、改进等,均应包含在本公开的保护范围之内。