一种集群设备告警方法和系统与流程

    专利2022-07-08  109


    本发明涉及数据存储领域,更具体地,特别是指一种集群设备告警方法和系统。



    背景技术:

    在分布式文件系统中,monitor(监视器)模块的主要功能是管理集群和监控集群的各种状态。monitor模块是分布式文件系统的核心模块。monitor负责管理集群的各种map(状态图)。管理软件模块不是构成分布式文件系统的基本模块。管理软件是一个独立于集群的外部模块。管理软件通过与monitor进行交互来实现对集群的管理和监控。当集群出现异常时,可以通过monitor的命令查询到集群的异常。管理软件通过monitor的命令查询到集群的异常状态,然后将异常状态显示在web界面上。于此同时,管理软件需要记录集群的异常状态,以告警信息的方式呈现在web界面上。当异常状态解除时,管理软件的web界面上也需要将告警消除掉。对于管理软件来说,可以通过monitor命令查询集群状态的方式来获取集群是否发生异常,如果发生异常就记录告警信息。

    但是集群的异常状态有很多种,需要通过不同的命令来查询;并且通过命令定时查询(轮询)的方式时效性不高。所以目前的方案是monitor主动上报告警,即当集群出现异常时monitor主动调用管理软件的外部接口进行告警上报;当异常消除时monitor再主动调用管理软件的外部接口进行告警的消除。告警的上报和消除的接口为统一的,无论哪种类型的异常告警都可以通过该接口进行上报和消除。

    由于monitor上报和消除告警并不是常态,为了不影响monitor的正常业务,monitor是通过启动一个子进程调用一下管理软件的接口。对于monitor来说,并不知道本次异常告警是否成功地被管理软件处理。所以,在管理软件出现异常发生切换时(管理软件也是分布式的,不同节点地多个管理软件同时运行,其中一个管理软件作为主管理软件负责处理告警和同步告警信息到其他节点地管理软件上),告警信息有可能并没有被成功处理,这样就导致告警信息丢失。如果是消除告警时发生了丢失,就会造成管理软件的web页面上的告警无法被消除掉,残留在了web页面上。

    针对现有技术中告警信息丢失、告警内容残留的问题,目前尚无有效的解决方案。



    技术实现要素:

    有鉴于此,本发明实施例的目的在于提出一种集群设备告警方法和系统,能够防止告警丢失和按需消除告警内容,并且减少了处理告警所需的资源。

    基于上述目的,本发明实施例的第一方面提供了一种集群设备告警方法,包括执行以下步骤:

    响应于接收到设备的离线消息,而由主监视器将设备的离线更新到设备状态图和告警状态图,并同步到所有备监视器;

    响应于同步完毕,而由主监视器基于设备的离线生成告警信息并置入告警监视器的处理队列的队尾;

    响应于等待直到告警信息位于处理队列的头部,而将告警信息从主监视器传送到主管理器;

    响应于从主管理器接收到告警信息的处理成功反馈,而由主监视器从处理队列中移除告警信息,并将告警信息作为最后处理告警同步到所有备监视器。

    在一些实施方式中,方法还包括:将告警信息从主监视器传送到主管理器的同时,还为告警信息生成版本号,并将版本号与告警信息一同传送到主管理器;

    从主管理器接收到告警信息的处理成功反馈包括:确认接收到的处理成功反馈中包括相对应的告警信息的版本号;

    将告警信息作为最后处理告警同步到所有备监视器包括:将告警信息的版本号同步到所有备监视器。

    在一些实施方式中,方法还包括响应于从主监视器接收到告警信息而由主管理器执行以下步骤:

    确定告警信息是否存储于主管理器的数据库中;

    响应于数据库中存在告警信息而不执行处理;

    响应于数据库中不存在告警信息,而将告警信息写入数据库、呈现在管理页面上、并向主监视器发送处理成功反馈,其中处理成功反馈包括相对应的告警信息的版本号。

    在一些实施方式中,方法还包括:响应于在阈值时间内未能从主管理器接收到告警信息的处理成功反馈,而由主监视器重新发送告警信息和版本号。

    在一些实施方式中,方法还包括:响应于主监视器出现故障而从所有备监视器中确定一个备监视器作为新主监视器。

    在一些实施方式中,方法还包括响应于确定了一个新主监视器而由新主监视器执行以下步骤:

    清空告警监视器的处理队列;

    检视被同步的所有告警信息,并将其中版本号大于最后处理告警的告警信息依次插入处理队列。

    在一些实施方式中,处理队列针对其中的告警信息执行异步处理。

    本发明实施例的第二方面提供了一种集群设备告警系统,包括:

    处理器;和

    存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:

    响应于接收到设备的离线消息,而由主监视器将设备的离线更新到设备状态图和告警状态图,并同步到所有备监视器;

    响应于同步完毕,而由主监视器基于设备的离线生成告警信息并置入告警监视器的处理队列的队尾;

    响应于等待直到告警信息位于处理队列的头部,而将告警信息从主监视器传送到主管理器;

    响应于从主管理器接收到告警信息的处理成功反馈,而由主监视器从处理队列中移除告警信息,并将告警信息作为最后处理告警同步到所有备监视器。

    在一些实施方式中,步骤还包括:将告警信息从主监视器传送到主管理器的同时,还为告警信息生成版本号,并将版本号与告警信息一同传送到主管理器;

    从主管理器接收到告警信息的处理成功反馈包括:确认接收到的处理成功反馈中包括相对应的告警信息的版本号;

    将告警信息作为最后处理告警同步到所有备监视器包括:将告警信息的版本号同步到所有备监视器。

    在一些实施方式中,步骤还包括响应于从主监视器接收到告警信息而由主管理器执行以下步骤:

    确定告警信息是否存储于主管理器的数据库中;

    响应于数据库中存在告警信息而不执行处理;

    响应于数据库中不存在告警信息,而将告警信息写入数据库、呈现在管理页面上、并向主监视器发送处理成功反馈,其中处理成功反馈包括相对应的告警信息的版本号。

    本发明具有以下有益技术效果:本发明实施例提供的集群设备告警方法和系统,通过响应于接收到设备的离线消息,而由主监视器将设备的离线更新到设备状态图和告警状态图,并同步到所有备监视器;响应于同步完毕,而由主监视器基于设备的离线生成告警信息并置入告警监视器的处理队列的队尾;响应于等待直到告警信息位于处理队列的头部,而将告警信息从主监视器传送到主管理器;响应于从主管理器接收到告警信息的处理成功反馈,而由主监视器从处理队列中移除告警信息,并将告警信息作为最后处理告警同步到所有备监视器的技术方案,能够防止告警丢失和按需消除告警内容,并且减少了处理告警所需的资源。

    附图说明

    为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1为本发明提供的集群设备告警方法的流程示意图。

    具体实施方式

    为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

    需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

    基于上述目的,本发明实施例的第一个方面,提出了一种防止告警丢失和按需消除告警内容的集群设备告警方法的一个实施例。图1示出的是本发明提供的集群设备告警方法的流程示意图。

    所述的集群设备告警方法,如图1所示,包括执行以下步骤:

    步骤s101,响应于接收到设备的离线消息,而由主监视器将设备的离线更新到设备状态图和告警状态图,并同步到所有备监视器;

    步骤s103,响应于同步完毕,而由主监视器基于设备的离线生成告警信息并置入告警监视器的处理队列的队尾;

    步骤s105,响应于等待直到告警信息位于处理队列的头部,而将告警信息从主监视器传送到主管理器;

    步骤s107,响应于从主管理器接收到告警信息的处理成功反馈,而由主监视器从处理队列中移除告警信息,并将告警信息作为最后处理告警同步到所有备监视器。

    本发明优化了monitor和管理软件之间告警信息交互的流程,将管理软件的告警接口(脚本)的功能直接集成在monitor上,monitor和管理软件之间直接进行消息交互。在monitor中增加一个告警管理的alarmmonitor(告警监视器)对告警信息进行版本管理,各个版本的告警信息在各个主备monitor之间进行告警信息的同步;对管理软件返回的处理结果进行处理,对失败的告警进行重新上报,保证告警不丢失。

    本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

    在一些实施方式中,方法还包括:将告警信息从主监视器传送到主管理器的同时,还为告警信息生成版本号,并将版本号与告警信息一同传送到主管理器;

    从主管理器接收到告警信息的处理成功反馈包括:确认接收到的处理成功反馈中包括相对应的告警信息的版本号;

    将告警信息作为最后处理告警同步到所有备监视器包括:将告警信息的版本号同步到所有备监视器。

    在一些实施方式中,方法还包括响应于从主监视器接收到告警信息而由主管理器执行以下步骤:

    确定告警信息是否存储于主管理器的数据库中;

    响应于数据库中存在告警信息而不执行处理;

    响应于数据库中不存在告警信息,而将告警信息写入数据库、呈现在管理页面上、并向主监视器发送处理成功反馈,其中处理成功反馈包括相对应的告警信息的版本号。

    在一些实施方式中,方法还包括:响应于在阈值时间内未能从主管理器接收到告警信息的处理成功反馈,而由主监视器重新发送告警信息和版本号。

    在一些实施方式中,方法还包括:响应于主监视器出现故障而从所有备监视器中确定一个备监视器作为新主监视器。

    在一些实施方式中,方法还包括响应于确定了一个新主监视器而由新主监视器执行以下步骤:

    清空告警监视器的处理队列;

    检视被同步的所有告警信息,并将其中版本号大于最后处理告警的告警信息依次插入处理队列。

    在一些实施方式中,处理队列针对其中的告警信息执行异步处理。

    下面根据具体实施例进一步阐述本发明的具体实施方式,其流程如下:

    1.主monitor收到osd(对象存储设备)退出信号(消息)。

    2.主备monitor发起一次议案达成osdmap的统一,将该osd标记成down状态,发布新的osdmap,本次议案也需要达成告警信息的统一,发布新版本的alarmmap(告警状态图)。

    3.主monitor将本次告警信息插入alarmmonitor的处理队列(队列尾)中,等待异步处理。

    4.从alarmmonitor的处理队列(头部)中取出一条告警信息,通过消息发送给主管理软件,该消息中有告警的版本号(步骤2中alarmmap的版本);然后等待主管理软件处理成功的消息(此处会设置超时时间)。

    5.主管理软件收到告警消息后查询该告警是否在数据库里,如果不在数据库里就插入数据库,如果数据库里已经存在该告警信息,说明是重复上报,就丢弃该告警消息。然后给主monitor回复一条成功处理的消息,该消息中带有告警信息的版本号(步骤4中主monitor发过来的告警信息里的版本号)。

    6.在管理软件的web页面上进入告警页面时将数据库里的告警记录显示在web页面上。

    7.主monitor收到主管理软件的消息后,将last_alarm_committed(最后处理告警)更新到消息中告警版本号,并且主备monitor间将last_alarm_committed进行同步,达成统一;并将该版本的告警信息从alarmmonitor的处理队列中删除。

    8.如果步骤4设置的超时时间超时后还未收到主管理软件处理成功的消息就跳到第4步执行。

    由于告警的处理队列都是主monitor来处理,当主monitor发生故障后会有其他monitor成为新的主monitor,这个过程称之为选举。在选举成功后主monitor需要进行如下处理:

    1.如果alarmmonitor的告警处理队列不为空,则清空处理队列。

    2.将数据库中版本号大于last_alarm_committed的告警信息逐个插入alarmmonitor的告警处理队列中(版本号大于last_alarm_committed的告警是未被管理软件成功处理的告警,需要由新的主monitor重新处理)等待异步处理。

    由于告警信息(alarmmap)的每一个版本都存储在本地数据库中,需要定时进行清理。monitor本身具有清理数据库过期无用map的功能,这个功能称为trim。first_committed记录了上次清理map时清理后剩余map的最小版本,即first_committed之前的版本都被清理掉了。alarmmonitor实现了相关函数。trim时会将first_committed到last_alarm_committed之间(包括first_committed但不包括last_alarm_committed)的告警版本都清理掉,然后更新first_committed=last_alarm_committed。

    从上述实施例可以看出,本发明实施例提供的集群设备告警方法,通过响应于接收到设备的离线消息,而由主监视器将设备的离线更新到设备状态图和告警状态图,并同步到所有备监视器;响应于同步完毕,而由主监视器基于设备的离线生成告警信息并置入告警监视器的处理队列的队尾;响应于等待直到告警信息位于处理队列的头部,而将告警信息从主监视器传送到主管理器;响应于从主管理器接收到告警信息的处理成功反馈,而由主监视器从处理队列中移除告警信息,并将告警信息作为最后处理告警同步到所有备监视器的技术方案,能够防止告警丢失和按需消除告警内容,并且减少了处理告警所需的资源。

    需要特别指出的是,上述集群设备告警方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于集群设备告警方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。

    基于上述目的,本发明实施例的第二个方面,提出了一种防止告警丢失和按需消除告警内容的集群设备告警系统的一个实施例。系统包括:

    处理器;和

    存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:

    响应于接收到设备的离线消息,而由主监视器将设备的离线更新到设备状态图和告警状态图,并同步到所有备监视器;

    响应于同步完毕,而由主监视器基于设备的离线生成告警信息并置入告警监视器的处理队列的队尾;

    响应于等待直到告警信息位于处理队列的头部,而将告警信息从主监视器传送到主管理器;

    响应于从主管理器接收到告警信息的处理成功反馈,而由主监视器从处理队列中移除告警信息,并将告警信息作为最后处理告警同步到所有备监视器。

    在一些实施方式中,步骤还包括:将告警信息从主监视器传送到主管理器的同时,还为告警信息生成版本号,并将版本号与告警信息一同传送到主管理器;

    从主管理器接收到告警信息的处理成功反馈包括:确认接收到的处理成功反馈中包括相对应的告警信息的版本号;

    将告警信息作为最后处理告警同步到所有备监视器包括:将告警信息的版本号同步到所有备监视器。

    在一些实施方式中,步骤还包括响应于从主监视器接收到告警信息而由主管理器执行以下步骤:

    确定告警信息是否存储于主管理器的数据库中;

    响应于数据库中存在告警信息而不执行处理;

    响应于数据库中不存在告警信息,而将告警信息写入数据库、呈现在管理页面上、并向主监视器发送处理成功反馈,其中处理成功反馈包括相对应的告警信息的版本号。

    从上述实施例可以看出,本发明实施例提供的系统,通过响应于接收到设备的离线消息,而由主监视器将设备的离线更新到设备状态图和告警状态图,并同步到所有备监视器;响应于同步完毕,而由主监视器基于设备的离线生成告警信息并置入告警监视器的处理队列的队尾;响应于等待直到告警信息位于处理队列的头部,而将告警信息从主监视器传送到主管理器;响应于从主管理器接收到告警信息的处理成功反馈,而由主监视器从处理队列中移除告警信息,并将告警信息作为最后处理告警同步到所有备监视器的技术方案,能够防止告警丢失和按需消除告警内容,并且减少了处理告警所需的资源。

    需要特别指出的是,上述系统的实施例采用了所述集群设备告警方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述集群设备告警方法的其他实施例中。当然,由于所述集群设备告警方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述系统也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。

    以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

    所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。


    技术特征:

    1.一种集群设备告警方法,其特征在于,包括执行以下步骤:

    响应于接收到设备的离线消息,而由主监视器将所述设备的离线更新到设备状态图和告警状态图,并同步到所有备监视器;

    响应于同步完毕,而由所述主监视器基于所述设备的离线生成告警信息并置入告警监视器的处理队列的队尾;

    响应于等待直到所述告警信息位于所述处理队列的头部,而将所述告警信息从所述主监视器传送到主管理器;

    响应于从所述主管理器接收到所述告警信息的处理成功反馈,而由所述主监视器从所述处理队列中移除所述告警信息,并将所述告警信息作为最后处理告警同步到所有所述备监视器。

    2.根据权利要求1所述的方法,其特征在于,还包括:将所述告警信息从所述主监视器传送到主管理器的同时,还为所述告警信息生成版本号,并将所述版本号与所述告警信息一同传送到所述主管理器;

    从所述主管理器接收到所述告警信息的处理成功反馈包括:确认接收到的所述处理成功反馈中包括相对应的所述告警信息的所述版本号;

    将所述告警信息作为最后处理告警同步到所有所述备监视器包括:将所述告警信息的所述版本号同步到所有所述备监视器。

    3.根据权利要求2所述的方法,其特征在于,还包括响应于从所述主监视器接收到所述告警信息而由所述主管理器执行以下步骤:

    确定所述告警信息是否存储于所述主管理器的数据库中;

    响应于所述数据库中存在所述告警信息而不执行处理;

    响应于所述数据库中不存在所述告警信息,而将所述告警信息写入所述数据库、呈现在管理页面上、并向所述主监视器发送所述处理成功反馈,其中所述处理成功反馈包括相对应的所述告警信息的所述版本号。

    4.根据权利要求2所述的方法,其特征在于,还包括:响应于在阈值时间内未能从所述主管理器接收到所述告警信息的处理成功反馈,而由所述主监视器重新发送所述告警信息和所述版本号。

    5.根据权利要求2所述的方法,其特征在于,还包括:响应于所述主监视器出现故障而从所有所述备监视器中确定一个备监视器作为新主监视器。

    6.根据权利要求5所述的方法,其特征在于,还包括响应于确定了一个新主监视器而由所述新主监视器执行以下步骤:

    清空所述告警监视器的所述处理队列;

    检视被同步的所有告警信息,并将其中版本号大于所述最后处理告警的所述告警信息依次插入所述处理队列。

    7.根据权利要求2所述的方法,其特征在于,所述处理队列针对其中的所述告警信息执行异步处理。

    8.一种集群设备告警系统,其特征在于,包括:

    处理器;和

    存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行以下步骤:

    响应于接收到设备的离线消息,而由主监视器将所述设备的离线更新到设备状态图和告警状态图,并同步到所有备监视器;

    响应于同步完毕,而由所述主监视器基于所述设备的离线生成告警信息并置入告警监视器的处理队列的队尾;

    响应于等待直到所述告警信息位于所述处理队列的头部,而将所述告警信息从所述主监视器传送到主管理器;

    响应于从所述主管理器接收到所述告警信息的处理成功反馈,而由所述主监视器从所述处理队列中移除所述告警信息,并将所述告警信息作为最后处理告警同步到所有所述备监视器。

    9.根据权利要求8所述的系统,其特征在于,所述步骤还包括:将所述告警信息从所述主监视器传送到主管理器的同时,还为所述告警信息生成版本号,并将所述版本号与所述告警信息一同传送到所述主管理器;

    从所述主管理器接收到所述告警信息的处理成功反馈包括:确认接收到的所述处理成功反馈中包括相对应的所述告警信息的所述版本号;

    将所述告警信息作为最后处理告警同步到所有所述备监视器包括:将所述告警信息的所述版本号同步到所有所述备监视器。

    10.根据权利要求8所述的系统,其特征在于,所述步骤还包括响应于从所述主监视器接收到所述告警信息而由所述主管理器执行以下步骤:

    确定所述告警信息是否存储于所述主管理器的数据库中;

    响应于所述数据库中存在所述告警信息而不执行处理;

    响应于所述数据库中不存在所述告警信息,而将所述告警信息写入所述数据库、呈现在管理页面上、并向所述主监视器发送所述处理成功反馈,其中所述处理成功反馈包括相对应的所述告警信息的所述版本号。

    技术总结
    本发明公开了一种集群设备告警方法和系统,方法包括:响应于接收到设备的离线消息,而由主监视器将设备的离线更新到设备状态图和告警状态图,并同步到所有备监视器;响应于同步完毕,而由主监视器基于设备的离线生成告警信息并置入告警监视器的处理队列的队尾;响应于等待直到告警信息位于处理队列的头部,而将告警信息从主监视器传送到主管理器;响应于从主管理器接收到告警信息的处理成功反馈,而由主监视器从处理队列中移除告警信息,并将告警信息作为最后处理告警同步到所有备监视器。本发明能够防止告警丢失和按需消除告警内容,并且减少了处理告警所需的资源。

    技术研发人员:王庆海;孟祥瑞
    受保护的技术使用者:苏州浪潮智能科技有限公司
    技术研发日:2020.12.18
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22686.html

    最新回复(0)