专利名称:一种告警相关性屏蔽方法
技术领域:
本发明涉及计算机及通信领域中的故障处理技术,尤其涉及一种告警相关性屏蔽方法。
背景技术:
在计算机或者通信领域中,当系统中的某个物理设备或逻辑模块出现异常时,都会发出用于传递故障信息的事件报告,此种事件报告即为告警。所有的告警可以分为两种情况一种是真正存在故障的对象实例所发出的告警,它们被称为是源告警;另外一种是由于源告警的出现而使其他相关对象实例不能正常工作,这种异常所产生的告警被称为是衍生告警。当大量的告警信号上报给系统后,系统必须能够区分出源告警和衍生告警,进而针对源告警的类型快速准确地确定故障的性质和存在位置,以便迅速排除故障。区分源告警和衍生告警的工作被称为告警相关性屏蔽,即只保留原始的源告警、而屏蔽由该源告警引发的衍生告警。告警相关性屏蔽是增加告警的可用性、层次性和准确性,以及减少无效的告警上报的一种重要手段。
目前的告警相关性屏蔽的做法是基于已有的告警并采用集中处理方式进行告警相关性屏蔽。
现有的告警相关性屏蔽中,将父告警作为根节点、子告警作为分支节点进行排列,由于父告警与子告警是相对的概念,即父告警可能会有自身的父告警、而子告警也可能会存在自身的子告警,因此会形成树状的告警关系,该告警关系称为告警对象树。由于某一个告警可以有多个父告警,所以它可以通过多条路径到达告警对象树中的根节点。从告警状态的角度而言,如果一条告警处于当前没有恢复、正在发生的状态,则该告警为活动告警;否则,该告警为恢复告警。所以在告警对象树中,既包含活动告警又包含恢复告警。
在基于已有告警的集中处理方式下,系统主控点将所有历史告警按父子关系排列成告警对象树后,保存到数据库中,作为告警相关性屏蔽的原始信息源。所述的历史告警包括活动告警和恢复告警。当告警出现时,系统从告警数据库的告警对象树中搜索该告警的父告警,并根据父告警的状态决定该告警是否为源告警,即是否屏蔽该告警。如图1所示,现有的告警相关性屏蔽方法包括以下步骤步骤101.系统中出现告警,则系统主控点将该告警放入告警数据库的告警对象树中。
本步骤中,系统主控点将所出现的告警放入告警数据库中,并按照该告警所出现的位置将其放在告警对象树的相应节点。
步骤102.在告警数据库的告警对象树中搜索该告警的父告警。
本步骤中,系统主控点在告警数据库中保存的所有历史告警中进行搜索。由于刚刚出现的告警已经在步骤101中被放入了告警对象树,因此系统主控点在搜索时,首先在告警对象树中找到该告警,而后以该告警为基准,向着告警对象树根节点的方向查找该告警的父告警。
步骤103.判断是否存在所述告警的父告警,如果是,则执行步骤104;否则,执行步骤107。
本步骤针对步骤102中的搜索结果,判断所找到该告警的父告警个数是否大于零,如果是,则表明存在父告警;否则,该告警不存在父告警。
步骤104.判断搜索到的父告警中是否存在未恢复的父告警,如果是,则执行步骤105;否则,执行步骤107。
本步骤从告警状态的角度对所有的父告警进行判断,找出其中仍处于活动状态的父告警。本步骤的目的在于如果存在活动状态的父告警,则步骤101中出现的告警可能不是由于其所在位置发生故障,而是由于上述父告警的存在而引发的衍生告警,因此本步骤对所有父告警的状态进行判断。
步骤105.判断在该告警到告警对象树根节点的最短路径中是否存在活动告警,如果是,则执行步骤106;否则,执行步骤107。
由于该告警可以通过多条路径到达告警对象树的根节点,即各条路径所经过的历史告警均可引发该告警。众多路径中的最短路径所经过的节点处出现的历史告警与该告警的相关性最大,因此如果最短路径中存在活动告警,则认为该告警是最短路径中的某个活动告警所引发的衍生告警,即该告警所在节点处工作正常。
步骤106.该告警为衍生告警并将其屏蔽,结束本告警相关性屏蔽流程。
步骤107.该告警为源告警、不进行屏蔽,并结束本告警相关性屏蔽的流程。
由上述的过程可见,现有告警相关性屏蔽方法具有如下缺点1.现有的告警相关性屏蔽方法中,系统主控点将所出现的告警按照其与历史告警的父子关系放入数据库中的告警对象树、从数据库中搜索出活动状态的父告警以及决定是否屏蔽所出现的告警等处理均是由系统主控点进行,因此系统主控点要与数据库进行交互、并进行大量的处理与判断,过程复杂、容易出错;2.现有的告警相关性屏蔽方法是基于历史告警来进行的,系统主控点在告警数据库中保存大量的数据,并且每出现一个告警都要对告警数据库中所有的历史告警进行搜索和判断,因此不易管理且效率较低;3.现有的告警相关性屏蔽方法中,针对每个告警的处理流程均相同,不能够根据用户的需要来调整告警相关性屏蔽的等级,灵活性较小、可控性较差。
发明内容
有鉴于此,本发明的主要目的在于提供一种告警相关性屏蔽的方法,更加快速、准确、完整地进行告警相关性屏蔽。
为实现上述目的,本发明提供了一种告警相关性屏蔽的方法,系统事先将基于状态的告警相关性屏蔽程序分布设置于子模块、模块以及系统内,该方法包括以下步骤A.子模块收到一条告警;B.子模块判断是否能够进行告警相关性屏蔽,如果是,则执行步骤F,否则,执行步骤C;C.子模块将告警上报给模块;D.模块判断是否能够进行告警相关性屏蔽,如果是,则执行步骤F,否则,执行步骤E;E.模块将告警上报给系统;F.由告警相关性屏蔽程序根据发出该告警的对象实例所关联对象实例的状态,对该告警进行告警相关性屏蔽。
系统事先设置表征告警类别的告警标识,并且所有出现的告警均携带有告警标识,则步骤B所述的子模块判断是否能够进行告警相关性屏蔽的方法为子模块根据告警所携带的告警标识进行判断;步骤D所述的模块判断是否能够进行告警相关性屏蔽的方法为模块根据告警所携带的告警标识进行判断。
用户预先设置告警屏蔽等级,则所述的步骤F包括以下步骤F1.根据用户设置的告警屏蔽等级判断是否能够调用告警相关性屏蔽程序,如果是,则执行步骤F2;否则,不屏蔽该告警,并结束告警相关性屏蔽流程;F2.检查发出该告警的对象实例所依赖、继承及被包含的对象实例的状态;F3.判断发出该告警的对象实例所依赖、继承及被包含的对象实例的状态是否为告警状态,如果是,则屏蔽该告警,并结束告警相关性屏蔽流程;否则,不屏蔽该告警,并结束告警相关性屏蔽流程。
所述的告警屏蔽等级为
高屏蔽系统内所有的衍生告警,由系统、系统内的模块或者子模块完成衍生告警的屏蔽;中在模块内进行衍生告警的屏蔽,当源告警和衍生告警处于同一模块时,由告警所在的模块或者子模块完成衍生告警的屏蔽;低在子模块内进行衍生告警的屏蔽,当源告警和衍生告警处于同一子模块时,由告警所在的子模块完成衍生告警的屏蔽;无不屏蔽任何告警。
由子模块完成基于状态的告警相关性屏蔽,则所述的步骤F在告警所在的子模块中进行。
所述的步骤F1为子模块根据用户设定的告警屏蔽等级来判断是否能够调用告警相关性屏蔽程序,如果告警屏蔽等级为高、中或者低,则子模块认为能够调用告警相关性屏蔽程序;否则,认为不能调用告警相关性屏蔽程序。
由模块完成基于状态的告警相关性屏蔽,则所述的步骤F在告警所在的模块中进行。
所述的步骤F1为模块根据用户设定的告警屏蔽等级来判断是否能够调用告警相关性屏蔽程序,如果告警屏蔽等级为高或者中,则模块认为能够调用告警相关性屏蔽程序;否则,认为不能调用告警相关性屏蔽程序。
由系统完成基于状态的告警相关性屏蔽,则所述的步骤F在告警所在的系统中进行。
所述的步骤F1为系统根据用户设定的告警屏蔽等级来判断是否能够调用告警相关性屏蔽程序,如果告警屏蔽等级为高,则系统认为能够调用告警相关性屏蔽程序;否则,认为不能调用告警相关性屏蔽程序。
所出现的告警中包含其对象实例所依赖、继承或者被包含的对象实例的告警状态信息,则所述的步骤F2为根据该告警所携带的其对象实例所依赖、继承或者被包含的对象实例的告警状态信息进行检查告警状态;所出现的告警中不包含其对象实例所依赖、继承或者被包含的对象实例的告警状态信息,则所述的步骤F2为从存储配置信息的数据库中获取发出该告警的对象实例所依赖、继承或被包含的对象实例的告警状态信息,并进行告警状态的检查。
应用本发明,系统对所出现的告警按照用户设置的告警屏蔽等级进行基于该告警继承对象状态的分布式处理,提高了告警相关性屏蔽的效率。具体而言,本发明具有如下有益效果1.本发明采用了分布式处理的方式,由告警所在的子模块、模块或者系统主控点对所收到的告警进行实时的告警相关性屏蔽,提高了告警相关性屏蔽的效率;2.本发明中,用户能够根据需要设置告警屏蔽等级,增强了告警相关性屏蔽的可控性与灵活性;3.本发明采用基于状态的告警相关性屏蔽,根据发出告警的对象实例所依赖、继承及被包含的对象实例的状态决定是否屏蔽收到的告警,而无需采用告警相关性数据库存储告警信息、系统主控点从数据库的告警对象树中查询父告警状态的方式,降低了告警相关性屏蔽的复杂程度,提高了告警相关性屏蔽的效率。
图1为现有告警相关性屏蔽方法的流程图。
图2为本发明告警相关性屏蔽方法的总体流程图。
图3为本发明告警相关性屏蔽方法中基于状态的告警相关性屏蔽流程图。
具体实施例方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步的详细说明。
本发明为一种告警相关性屏蔽的方法,其基本思想是系统设置多个告警屏蔽等级,用户根据具体需要进行选择;在进行告警相关性屏蔽时,系统对所出现的告警进行基于该告警继承对象状态的分布式处理。
本发明将告警屏蔽分为高、中、低、无四个等级,具体标准如下1.高屏蔽系统内所有的衍生告警,即由系统、系统内的模块或者子模块完成衍生告警的屏蔽;2.中在模块内进行衍生告警的屏蔽,即当源告警和衍生告警处于同一模块时,由告警所在的模块或者子模块完成衍生告警的屏蔽;3.低在子模块内进行衍生告警的屏蔽,即当源告警和衍生告警处于同一子模块时,由告警所在的子模块完成衍生告警的屏蔽;4.无不屏蔽任何告警。
在进行告警相关性屏蔽之前,用户根据自身的需要选择告警屏蔽的等级。
本发明在构建系统时,将基于状态的告警相关性屏蔽程序分布于子模块、模块以及系统内,使得所有包含该告警相关性屏蔽程序的部分均具有基于状态的告警相关性屏蔽能力。另外,系统事先规定表征告警类别的告警标识,即通过告警标识来区别子模块能够处理的告警、模块能够处理的告警以及系统能够处理的告警等,以便在有告警出现时,系统、模块或者子模块根据告警所携带的告警标识来判断是否能够进行告警相关性屏蔽。
如图2所示,本发明的告警相关性屏蔽方法包括以下步骤步骤201.子模块收到一条告警。
本步骤中,子模块所收到的告警按照系统预先的规定,在自身携带有告警标识。
步骤202.子模块判断是否能够进行告警相关性屏蔽,如果是,则执行步骤206;否则,执行步骤203。
本步骤中,子模块根据告警所携带的告警标识进行判断。
步骤203.子模块将告警上报给模块。
由于子模块无法对该告警进行处理,因此,子模块将该告警上报给子模块所在的模块。
步骤204.模块判断是否能够进行告警相关性屏蔽,如果是,则执行步骤206;否则,执行步骤205。
步骤205.模块将告警上报给系统。
由于告警所在的子模块和模块均无法对其进行处理,因此,模块将该告警上报给系统。
步骤206.对该告警进行基于状态的告警相关性屏蔽。
如图3所示,基于状态的告警相关性屏蔽包括以下步骤步骤301.判断告警相关性屏蔽开关是否打开,如果是,则执行步骤302;否则,执行步骤305。
如果基于状态的告警相关性屏蔽流程是在步骤202后进行的,即告警相关性屏蔽由告警所在的子模块完成,则本步骤中子模块根据用户设定的告警屏蔽等级来判断告警相关性屏蔽开关是否打开。如果告警屏蔽等级为高、中或者低,则子模块认为告警相关性屏蔽开关已经打开,即子模块能够调用告警相关性屏蔽程序;否则,认为告警相关性屏蔽开关未打开,不能够调用告警相关性屏蔽程序。
如果基于状态的告警相关性屏蔽流程是在步骤204后进行的,即告警相关性屏蔽由告警所在的模块完成,则本步骤中模块根据用户设定的告警屏蔽等级来判断告警相关性屏蔽开关是否打开。如果告警屏蔽等级为高或者中,则模块认为告警相关性屏蔽开关已经打开,即模块能够调用告警相关性屏蔽程序;否则,认为告警相关性屏蔽开关未打开,不能够调用告警相关性屏蔽程序。
如果基于状态的告警相关性屏蔽流程是在步骤205后进行的,即告警相关性屏蔽由系统完成,则本步骤中系统根据用户设定的告警屏蔽等级来判断告警相关性屏蔽开关是否打开。如果告警屏蔽等级为高,则系统认为告警相关性屏蔽开关已经打开,即系统能够调用告警相关性屏蔽程序;否则,认为告警相关性屏蔽开关未打开,不能够调用告警相关性屏蔽程序。
步骤302.检查发出该告警的对象实例所依赖、继承及被包含的对象实例的状态。
所谓依赖是指对象实例A的变化取决于对象实例B的变化,即对象实例B的改变一定会引起对象实例A的变化,此时对象实例A依赖于对象实例B;所谓继承是指必须先存在对象实例B,然后才能够存在对象实例A,此时对象实例A继承对象实例B;所谓包含是指对象实例A完全包含另外一个对象实例B的内容,当对象实例A消亡时,被包含的对象实例B也随之消亡。
上述依赖、继承及被包含关系的对象实例之间的互相影响程度较大、即相关性较大,因此本步骤检查步骤201中所出现告警的对象实例所依赖、继承及被包含的对象实例的状态,目的在于检查该告警是否是由于与其对象实例相关的其它对象实例的故障而引发的,即检查该告警是否为衍生告警。
步骤201中所出现的告警存在两种情况一种是该告警中包含了其对象实例所依赖、继承或者被包含的对象实例的告警状态信息;另一种是该告警中不包含其对象实例所依赖、继承或者被包含的对象实例的告警状态信息。在第一种情况下,本步骤根据该告警所携带的其对象实例所依赖、继承或者被包含的对象实例的告警状态信息进行检查;在第二种情况下,用户在构建系统时,用户对系统中各个对象实例的关系进行配置,并将配置关系信息记录在专门的存储配置信息的数据库中,因此本步骤从系统原有的存储配置信息的数据库中获取发出该告警的对象实例所依赖、继承或被包含的对象实例的告警状态信息,并进行告警状态的检查。无论是上述的何种情况,系统均无需为了进行告警相关性屏蔽而专门建立数据库。
步骤303~305.判断发出该告警的对象实例所依赖、继承及被包含的对象实例的状态是否为告警状态,如果是,则屏蔽该告警,并结束告警相关性屏蔽流程;否则,不屏蔽该告警,并结束告警相关性屏蔽流程。
在发出该告警的对象实例所依赖、继承及被包含的对象实例的状态为告警状态的情况下,认为该告警是由于其对象实例所依赖、继承及被包含的对象实例出现故障而引发的衍生告警,所以要将该告警屏蔽;反之,则认为该告警是由于在其对象实例处出现了故障而产生的,即该告警为源告警,所以不对其屏蔽,以便排除故障。
如果上述基于状态的告警相关性屏蔽流程是在步骤202之后进行,即由子模块完成告警相关性屏蔽,则告警相关性屏蔽流程中的判断、检查以及屏蔽或不屏蔽等操作均是由子模块进行的;如果上述基于状态的告警相关性屏蔽流程是在步骤204之后进行,即由模块完成告警相关性屏蔽,则告警相关性屏蔽流程中的各种操作均是由模块进行的;如果上述基于状态的告警相关性屏蔽流程是在步骤205之后进行,即由系统完成告警相关性屏蔽,则告警相关性屏蔽流程中的各种操作均是由系统进行的。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种告警相关性屏蔽的方法,其特征在于,系统事先将基于状态的告警相关性屏蔽程序分布设置于子模块、模块以及系统内,该方法包括以下步骤A.子模块收到一条告警;B.子模块判断是否能够进行告警相关性屏蔽,如果是,则执行步骤F,否则,执行步骤C;C.子模块将告警上报给模块;D.模块判断是否能够进行告警相关性屏蔽,如果是,则执行步骤F,否则,执行步骤E;E.模块将告警上报给系统;F.由告警相关性屏蔽程序根据发出该告警的对象实例所关联对象实例的状态,对该告警进行告警相关性屏蔽。
2.如权利要求1所述的方法,其特征在于,系统事先设置表征告警类别的告警标识,并且所有出现的告警均携带有告警标识,则步骤B所述的子模块判断是否能够进行告警相关性屏蔽的方法为子模块根据告警所携带的告警标识进行判断;步骤D所述的模块判断是否能够进行告警相关性屏蔽的方法为模块根据告警所携带的告警标识进行判断。
3.如权利要求1所述的方法,其特征在于,用户预先设置告警屏蔽等级,则所述的步骤F包括以下步骤F1.根据用户设置的告警屏蔽等级判断是否能够调用告警相关性屏蔽程序,如果是,则执行步骤F2;否则,不屏蔽该告警,并结束告警相关性屏蔽流程;F2.检查发出该告警的对象实例所依赖、继承及被包含的对象实例的状态;F3.判断发出该告警的对象实例所依赖、继承及被包含的对象实例的状态是否为告警状态,如果是,则屏蔽该告警,并结束告警相关性屏蔽流程;否则,不屏蔽该告警,并结束告警相关性屏蔽流程。
4.如权利要求3所述的方法,其特征在于,所述的告警屏蔽等级为高屏蔽系统内所有的衍生告警,由系统、系统内的模块或者子模块完成衍生告警的屏蔽;中在模块内进行衍生告警的屏蔽,当源告警和衍生告警处于同一模块时,由告警所在的模块或者子模块完成衍生告警的屏蔽;低在子模块内进行衍生告警的屏蔽,当源告警和衍生告警处于同一子模块时,由告警所在的子模块完成衍生告警的屏蔽;无不屏蔽任何告警。
5.如权利要求4所述的方法,其特征在于,由子模块完成基于状态的告警相关性屏蔽,则所述的步骤F在告警所在的子模块中进行。
6.如权利要求5所述的方法,其特征在于,所述的步骤F 1为子模块根据用户设定的告警屏蔽等级来判断是否能够调用告警相关性屏蔽程序,如果告警屏蔽等级为高、中或者低,则子模块认为能够调用告警相关性屏蔽程序;否则,认为不能调用告警相关性屏蔽程序。
7.如权利要求4所述的方法,其特征在于,由模块完成基于状态的告警相关性屏蔽,则所述的步骤F在告警所在的模块中进行。
8.如权利要求6所述的方法,其特征在于,所述的步骤F1为模块根据用户设定的告警屏蔽等级来判断是否能够调用告警相关性屏蔽程序,如果告警屏蔽等级为高或者中,则模块认为能够调用告警相关性屏蔽程序;否则,认为不能调用告警相关性屏蔽程序。
9.如权利要求4所述的方法,其特征在于,由系统完成基于状态的告警相关性屏蔽,则所述的步骤F在告警所在的系统中进行。
10.如权利要求9所述的方法,其特征在于,所述的步骤F1为系统根据用户设定的告警屏蔽等级来判断是否能够调用告警相关性屏蔽程序,如果告警屏蔽等级为高,则系统认为能够调用告警相关性屏蔽程序;否则,认为不能调用告警相关性屏蔽程序。
11.如权利要求4所述的方法,其特征在于,所出现的告警中包含其对象实例所依赖、继承或者被包含的对象实例的告警状态信息,则所述的步骤F2为根据该告警所携带的其对象实例所依赖、继承或者被包含的对象实例的告警状态信息进行检查告警状态;所出现的告警中不包含其对象实例所依赖、继承或者被包含的对象实例的告警状态信息,则所述的步骤F2为从存储配置信息的数据库中获取发出该告警的对象实例所依赖、继承或被包含的对象实例的告警状态信息,并进行告警状态的检查。
全文摘要
本发明公开了一种告警相关性屏蔽的方法,系统事先将基于状态的告警相关性屏蔽程序分布设置于子模块、模块以及系统内,该方法包括以下步骤A、子模块收到一条告警;B、子模块判断是否能够进行告警相关性屏蔽,如果是,则执行步骤F,否则,执行步骤C;C、子模块将告警上报给模块;D、模块判断是否能够进行告警相关性屏蔽,如果是,则执行步骤F,否则,执行步骤E;E、模块将告警上报给系统;F、由告警相关性屏蔽程序根据发出该告警的对象实例所关联对象实例的状态,对该告警进行基于状态的告警相关性屏蔽。本发明提高了告警相关性屏蔽的效率、增强了可控性与灵活性。
文档编号G06F11/30GK1740986SQ20041005712
公开日2006年3月1日 申请日期2004年8月24日 优先权日2004年8月24日
发明者董庆阳 申请人:华为技术有限公司