发明内容
本发明要解决的技术问题是提出一种通用多层次告警处理方法,本发明通过对告警事件的收集与屏蔽,以及对告警事件持续性判别及雪崩告警的处理,高优先级告警的判别和对低优先级告警的屏蔽处理,使得本发明具有广泛的适用性。
本发明所述通用多层次告警处理方法,包括如下步骤:
对系统中各种所需处理的告警类型进行分类统计;
根据告警类型及数量,定义树形数据结构,其包含主干分支和终结分支,每个分支上分布一个或多个节点,每个节点代表一个告警事件,同一分支上的告警事件按照优先级高低顺序排列,不同分支上的告警事件彼此告警优先级视为相等;
将定义好的数据结构连同事件处理机制,进行模块化处理,集成到系统软件中编译;
告警输入模块接受来自硬件或底层软件告警事件的驱动,把告警事件存入树形结构告警模型中的相应节点;
在单一时钟的驱动下,告警处理模块根据告警事件的优先级关系进行处理,首先判断告警事件是否在同一分支上,对于同一分支上的告警事件接受最高优先级的告警屏蔽其他的低优先级告警,对于不同分支的告警事件同时接受其告警,并对告警持续性进行判断处理,处理后的结果送给告警输出模块;
告警输出模块将符合报告条件的告警向上报告给高层软件或进行显示告警输出。
本发明采用树形数据结构建立告警模型,极好地表征了系统中各种告警的实际情况,节点在树中的空间位置表征了告警的类型,树的结构则表征了告警之间的层次关系。因此所占用系统存储资源少,具有查找运算方便的特点。
由于树形数据结构的赋值、查找十分方便,采用查找算法和时间相关的告警协调算法,层次相关的告警协调算法,可以全面解决系统中复杂的多路复用告警问题。因此本发明还具有告警处理效率高的特点。
由于不依赖中间状态,即使出现告警数据传输错误甚至告警丢失,也不影响其正常工作;所以可靠性高。
本发明基于模块化设计,可方便移植到各种单一级联系统或树形级联系统中,具有广泛的适用性。例如:ATM的异常告警系统,SDH的异常告警系统,实时系统的设备异常告警等。
通过后面的实施方式和附图的描述,本发明的其他目的和特征将变得更清楚。附图中相同的标号表示相同或相似的部件。
具体实施方式
本发明所述通用多层次告警处理方法的流程如图1所示,图1给出了本发明所述方法的总体思路,分为对告警类型的分类统计,建立告警模型;进行模块化处理,然后接受告警事件进行相应的处理。具体包括如下的步骤:
针对具体所选的系统,对各种所需处理的告警类型进行分类统计;
根据告警类型及数量,定义数据结构,其包含主干分支和终结分支,每个分支上分布一个或多个节点,每个节点代表一个告警事件,同一分支上的告警事件按照优先级高低顺序排列,不同分支上的告警事件彼此告警优先级视为相等;有关数据结构的定义将在图2中具体说明;
将定义好的数据结构连同事件处理模块,进行模块化处理,集成到系统软件中编译;其中,附图3给出了本发明的模块化结构。
具体的告警运行过程为:
告警输入模块接受来自硬件或底层软件告警事件的驱动,把告警事件存入树形结构告警模型中的相应节点;
在单一时钟的驱动下,告警处理模块根据告警事件的优先级进行处理,首先判断告警事件是否在同一分支上,对于同一分支上的告警事件接受最高优先级的告警屏蔽其他的低优先级告警,对于不同分支的告警事件同时接受其告警,并对告警持续性进行判断处理,处理后的结果送给告警输出模块;
告警输出模块将符合报告条件的告警向上报告给高层软件或进行显示告警输出。
图2为本发明如何对告警的树形数据结构进行定义的示意图。
定义树形数据结构的基本做法是:建立一主干分支和一个或一个以上的终结分支,终结分支分别与主干分支相连,构成一个树形。
在图2的左边,划出了优先级的高低,靠近下方数字越大,优先级就越低,图2的右边是复合级别,由图2可见,上半部分只有一个空心圆,表示分支级0,下部部分是分支级1,由三个终极分支构成。因此有两个复合级别,即复合级别数为2。在分支级0中,优先级分成0、1、2、3共四个级别,其中,级别2里,三个节点分别代表三种不同的告警事件,只不过优先级相同。所以它们属异构节点,且数目为3。而分支级1上的三个终极分支,各有5个节点。所以,树形结构A总的节点数为21个。图2右下角给出的放大的圆中,index20代表当前节点在树型中的绝对编号,也就是按从上到下,从左到右遍历整棵树所有节点时,当前是第二十个节点;type10代表当前节点的类型编号,也就是按绝对编号排序,当前节点是具有与之前节点不同的第十种类型。同优先级异构节点视为不同类型,同优先级同构节点视为相同类型,id4代表当前节点在复合分枝中的级别
图2中的树形结构A,可以用如下参数进行定义,具体量化表示如如表1如示:
表1
参数名称 |
参数取值 |
说明 |
最高优先级 |
0 |
树的最高节点所在级别 |
最低优先级 |
9 |
树的最低节点所在级别 |
树-分支 |
2 |
树A共有两处分支,分别在级别3和8处 |
树-分支-分支点0-优先级 |
3 |
树A的第一个分支点所在处的优先级级别 |
树-分支-分支点0-分支数 |
3 |
树A的第一个分支点的分支数目 |
树-分支-分支点1-优先级 |
8 |
树A的第二个分支点所在级别(终结分支,标示树的末端) |
树-分支-分支点1-分支数 |
0 |
树A的第一个分支点的分支数目 |
树-同异结构 |
1,1,3,1,1,1,1,1,1 |
如图2所示,除了级别2外,各级别上节点均为同构节点(同一级别上的节点具有完全相同的物理意义,即相同类型的告警)。 |
树形A建模的派生参数(所有派生参数值由基本参数计算获得),如表2所示:
表2
参数名称 |
参数取值 |
说明 |
分支个数 |
4 |
如图2中虚线园所框出的4个分支 |
终结分支个数 |
3 |
树末端的分支数目。 |
告警源个数 |
21 |
树表示的告警的总数量。 |
复合级别 |
2 |
包括复合级别0和复合级别1 |
复合级别0分支数 |
1 |
|
复合级别1分支数 |
3 |
|
复合级别0告警源个数 |
6 |
|
复合级别1告警源个数 |
15 |
|
可以看到,所需表示的告警的数量和各个告警之间的层次结构关系都已经通过描述树形结构的参数表示出来了。
树形中每一个节点代表一个告警事件
树的每个节点存储了本节点表示的告警的所有信息。这些节点信息由以下参数描述,如表3所示:
表3
参数名称 |
参数取值范围 |
说明 |
本节点状态LS |
无告警、收到告警、告警中、已告警 |
收到告警:告警处理中。告警中:告警已确认,但被高优先级的告警所屏蔽。 |
本节点激活状态Standby |
是、非 |
|
告警状态变化队列FIFO_TR |
比特队列 |
记录经过确认的告警翻转的过程 |
告警状态队列FIFO_ES |
比特队列 |
记录未经过确认的告警的翻转过程 |
当前告警状态ES |
是、非 |
|
告警正翻转延时DD |
整数 |
以时钟周期为单位,从告警产生到告警确认之间的延时 |
告警负翻转延时PD |
整数 |
以时钟周期为单位,从告警消除到告警消除确认之间的延时 |
同一分支上的告警事件依据其告警优先级来进行屏蔽
例如图2中空心圆所示的选定分支上,节点3在节点8的关键分支上,并且,节点3的优先级为2,高于节点8的优先级6(数值越小,其优先级越高)。其中关键分枝是指某一节点延树枝向上到达树顶的最短路径所经过的分枝。当节点3和节点8代表的告警事件同时出现时,层次相关的告警协调算法将判断出这两个节点在同一关键分支上,或者说这两个节点的关键分枝有包含关系,并根据优先级,在报告节点3告警的同时,屏蔽节点8告警。
比如:如果图2中的树表示某三层楼宇的告警,其复合级别0表示整幢楼的告警,复合级别1的三个分枝分别表示各个楼层的告警。假设节点3表示断电事件,节点8表示一楼电灯故障。则,当两事件同时发生时,节点3的楼宇断电事件将作为高优先级事件对节点8表示一楼电灯故障进行屏蔽。
不同分支上的节点不具备屏蔽关系,各自分别处理
例如图2中的节点8和节点15,当这两个节点同时有告警事件产生时,层次相关的告警协调算法则判断出这两个节点不在同一关键分支上,而不同分支上的告警事件彼此告警优先级是相等的,因此,不需要做优先级判断,将同时报告则两种告警。( )
举例说明:如前例图二所示,若节点8表示一楼电灯故障,节点15表示二楼门窗故障,因两事件在不同楼层,彼此互不屏蔽。
系统中可根据管理的告警类型和数量,可同时定义多棵树
相关的告警被存储在同一树上;不同的树可以具有不同结构,不同树上的节点之间的优先级视为相等,所以不具备屏蔽关系。
图3为本发明所述通用多层次告警处理方法进行模块化的实现示意图。
本发明所述方法可以表示成图3的模块化结构。
告警输入模块:根据预先定义好的告警模型,把告警事件存入树形结构的相应节点(第几棵树,第几个分支,第几优先级的那一个节点),由事件驱动,接受来自硬件或下层软件的告警(消息或中断)。
告警处理模块:由单一时钟驱动,负责告警的优先级处理和持续性处理。
告警输出模块:由告警处理模块驱动,把符合报告条件的告警向上报告给高层软件或操作员。
图4为告警处理模块的工作原理示意图。
图4表示了代表告警事件的树形节点的参数之间的运算关系,具体包括如下步骤:
1.运算由时钟驱动进行;
2.首先将告警状态ES存入FIFO-ES队列中,如表4所示,比特0表示告警消除,比特1表示告警存在;
表4
FIFO-ES=1000,1100 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
时刻(时钟周期) |
-7(7个时钟前) |
-6 |
-5 |
-4 |
-3 |
-2 |
-1 |
0(当前时刻) |
告警状态 |
有 |
无 |
无 |
无 |
有 |
有 |
无 |
无 |
3.FIFO-ES与PD和DD进行比特运算(二进制),将运算的结果存入FIFO-TR中,此处涉及持续告警处理和雪崩告警的防护处理;
a)对DD运算参见图5:DD=5个时钟周期,这是系统自己定义的允许告警报告门限,门限以下的雪崩告警被屏蔽,门限以上的持续告警才被允许报告。
i.计算FIFO-ES&11111等于中间结果A:屏蔽无关位,仅取当前起5个时钟内DD的状态;
ii.如果中间结果A & 11111等于11111,即有持续5时钟的告警,将持续告警状态1存入FIFO-TR。否则,就不对FIFO-TR操作。
b)对PD运算参见图6,PD=6个时钟周期,这是系统自己定义的消除告警报告门限,门限以下的不稳定状态被屏蔽,超过门限的稳定状态触发告警的消除。
i.计算FIFO-ES&111111等于中间结果B:屏蔽无关位,仅取当前起6个时钟内PD的状态;
ii.如果中间结果B&111111等于0,即有持续6时钟的告警消除,将持续告警状态0存入FIFO-TR。否则,就不对FIFO-TR操作。
经过PD与DD运算,FIFO-TR中保存了确认的告警的翻转状态。例如:FIFO-TR=1111,1100,0001,1111,则表示当前时刻前连续5个时钟周期时间内,经确认告警为1;之前5周期,经确认告警为0;再前,经确认告警为1。
4.进行告警的优先级处理,结果存入LS:由于树形数据结构表达出优异的层次关系,对各节点告警的优先级处理可以通过层次相关的告警协调算法来完成。例如,当图2中空心圆所示的选定分支上的节点3和节点8同时出现时告警正翻转时,依据告警协调算法,在同一树枝上,不存在比节点3更高级别的告警,因而该节点3的告警得以报告;同理,节点8的告警事件被同一树枝上具有更高优先级的节点3告警所屏蔽。
本发明所述通用的告警处理方法,具有广泛的适用性。可适用于如图7所示的单一系统,或者如图8所示的级联系统中,用来处理设备告警和业务告警。本发明适合于处理SDH业务告警和ATM业务告警。由于具有模块化设计的特点,可以方便的移植到其它系统中。图9中给出了本发明所述方法在SDH中的应用实例:物理上,一个STM1(STM为同步传输模式)包含一个VC4(VC为虚容器),一个VC4包含63个VC12。与STM1相关的近端告警定义不但种类多,数量多,而且彼此都具有优先级的屏蔽关系。
图9中给出了本发明所述方法在处理一根STM1相关告警时所采用的树形定义:树由三个复合级别的分枝构成,分别代表了STM1,VC4和VC12的近端告警。复合级别0和1都为单一分枝,分别包含6个和7个节点,代表着不同优先级的告警事件。复合级别2由63个分枝构成,代表一个VC4中的63个VC12每个分枝上的7个节点代表着当前VC12相关的7种不同优先级的告警事件。由于所有相关信息都包含在树形结构中,配合前面介绍过的已模块化的算法,可以简便的完成其告警处理。
参见图10,如要处理不具有层次屏蔽关系的远端告警,只需再多定义一棵远端告警树即可。
由此可见,本发明所述方法具有良好的可扩展性。
相信本发明的操作和结构通过上面的描述已经很清楚了。在不脱离本发明的范围和构思可以做出许多其它改变和改型。应当理解,本发明不限于特定的实施例,本发明的范围由所附权利要求限定。