具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
每个监控端可监控多个被监控端,被监控端例如可以是硬盘、CPU、服务器、服务器下关联的各种资源和服务、路由器、交换机等,本实施例中,将被监控端进行分类,根据不同的类型实施不同的报警控制策略。
实施例一:
请参考图1、图2,本实施例中监控报警控制***包括数据获取模块101和预警控制模块102。数据获取模块101用于获取被监控端的实时监控数据并形成监控消息队列,每条监控消息中包括监控数据;预警控制模块102用于从监控消息队列中读取监控消息,将监控消息中的监控数据和与该监控数据对应的监控端阈值数据进行比较,根据比较结果确定是否根据该监控消息生成报警信息,若生成了报警信息,然后判断生成的报警信息是否满足与该监控数据对应的报警触发条件,根据判断结果确定是否产生报警触发信号,所述报警触发条件用于采用时间和/或产生报警触发信号次数的方式排除不期望的报警信息。
数据获取模块101和预警控制模块102的具体工作流程如下:
步骤103,数据获取模块101获取被监控端的实时监控数据。监控数据为被监控端的的状态数据,由被监控端通过脚本文件产生,数据获取模块获取状态数据的方式可以是定时或不定时地主动读取被监控端的状态数据,也可以由被监控端定时或不定时地发送状态数据给监控端。
步骤104,数据获取模块101将步骤103获取的监控数据形成监控消息队列。
步骤105,预警控制模块102从监控消息队列中读取单个监控消息。
步骤106,预警控制模块102将读取的监控消息中包含的监控数据与阈值数据进行比较,根据比较结果确定是否根据该监控消息生成报警信息。当监控数据超出阈值数据的范围时则继续步骤107,当监控数据没有超出阈值数据的范围时则执行步骤110。
步骤107,一般的,当监控数据超出阈值数据范围时即说明相应的被监控端出现故障,则预警控制模块102生成报警信息。
步骤108,预警控制模块102将生成的报警信息进一步进行判断,判断报警信息是否满足报警触发条件。如果满足,则执行步骤109,如果不满足,则执行步骤111。
步骤109,当预警控制模块102判断出报警信息满足报警触发条件时,则生成报警触发信号,进行报警开启操作。
步骤110,放弃当前监控消息,***自动读取下一条监控消息。
步骤111,放弃当前报警信息,读取队列中的下一条报警信息,或者还可以将不满足报警触发条件的监控信息记录下来,已备后续处理步骤应用。
本实施例中,由于在预警控制模块102中对报警信息增加了报警触发条件的限制,对报警信息进行了过滤操作,过滤掉了无效报警。举例来说,当报警触发条件为接收到相同报警信息的报警信息次数不少于5次,只有当预警控制模块连续接收到5次或更多次报警信息时才会开启报警。在实际操作中,比如,当被监控端因为外界环境的突然性波动而产生超出阈值数据范围的监控数据,便生成相应的报警信息,因为外界环境的突然性波动时间是极短的,所以所产生的报警信息数量极少,甚至只产生一个报警信息,之后,被监控端又恢复正常工作。现有技术中,此时***便会开启报警操作,然而在本实施例提供的监控报警控制过程中,预警控制模块接收到报警信息后并不会马上开启报警操作,而是继续接收,在一定时间内,如果接收到相同报警信息的数量没有超过5个,则说明该报警信息为无效报警,不进行开启报警操作。如果接收到的相同报警信息数量超过5个,则说明监控对象很大可能确实发生了故障,则开启报警,提醒工作人员进行排障。故在本实施例提供的监控报警控制过程中可以根据报警触发条件的不同对无效报警进行过滤,减少工作中无效报警的开启,减少工作人员的工作负担,提高监控报警***的准确性与可控性。
本实施例中,所述报警触发条件可以根据被监控对象的不同进行区别设定,优选的,所述报警触发条件还包括产生报警触发信号的次数阈值、检验间隔时间阈值和报警间隔时间阈值中的至少一个,所述检验间隔时间为判断当前监控消息的时间和判断来自同一被监控端的前一监控消息的时间之间的间隔时间,所述报警间隔时间为判断当前监控消息和同一被监控端的最近一次的报警时间之间的间隔时间。根据报警触发条件的不同对不同的无效报警信息进行过滤,提高了监控报警控制***的准确性。
实施例二:
请参考图3、图4,本实施例中监控报警控制***包括数据获取模块201和预警控制模块202。其中,数据获取模块202包括读取单元203、监控数据分类单元204和缓存单元205,读取单元203用于从至少一个被监控端获取实时监控数据;监控数据分类单元204用于确定监控数据的属性210,将监控数据及属性210合成为一条监控消息,所述属性210中至少包括产生该监控数据的被监控端的类型;缓存单元205用于将监控消息放入监控消息队列中。
预警控制模块202用于从监控消息队列中读取监控消息,将监控消息中的监控数据和与该监控数据对应的监控端阈值数据进行比较,根据比较结果确定是否根据该监控消息生成报警信息,若生成了报警信息,然后判断生成的报警信息是否满足与该监控数据对应的报警触发条件,根据判断结果确定是否产生报警触发信号,所述报警触发条件用于采用时间和/或产生报警触发信号次数的方式排除不期望的报警信息。预警控制模块202可预先针对每个监控数据根据其属性设置不同的报警触发条件,当数据获取模块201为每一监控消息确定属性后,预警控制模块202根据该监控消息的属性可确定应该采用哪个报警触发条件,当监控消息满足报警触发条件时才产生报警触发信号。
基于本实施例中的监控报警控制***,监控报警的控制流程包括以下步骤:
步骤206,获取监控数据。读取单元203从被监控端获取实时监控数据,基于监控数据生成监控信息。
步骤207,监控数据分类单元204将监控数据、属性和监控端阈值数据合成为一条监控消息。数据获取模块中预先设置各监控对象的属性,属性可包括监控对象类型、监控对象级别等,为方便用户对报警的控制,属性中还包括自定义优先级,自定义优先级为用户临时设定值,用户可根据需要进行调整。每获取到一个监控对象的状态数据,首先根据预先定义的监控对象的属性,确定该状态数据的属性,将监控数据及其属性210(例如包括监控对象类型、监控对象级别和自定义优先级)整合成一个数据包,生成一条监控信息,将监控信息放入监控消息队列中。在一具体实例中,数据获取模块还根据该监控数据的监控对象类型确定监控端阈值数据209,将监控数据及其属性210、监控端阈值数据209一起合成为监控信息,如在图4所示。监控端阈值数据通常是一个范围。
在本实施例中,数据获取模块还根据监控对象类型、监控对象级别和自定义优先级的设置计算该监控信息的处理优先级别,处理优先级别为被监控端类型、被监控端服务级别和自定义优先级的加权和。
步骤208,缓存单元205按照处理优先级别确定监控消息在队列中的位置,将监控消息放入监控消息队列中,处理优先级别高的监控消息排列在被优先处理的位置。
消息在消息队列中的排列方式通常是按照放入的时间先后进行排队,并且按照排列顺序被读取进行处理。为了实现监控对象报警的可控性,使用户认为重要的监控对象的报警能够被优先处理,在本实施例的一种具体实例中,在将监控消息放入监控消息队列中时按照处理优先级别确定监控消息在队列中的位置,处理优先级别高的监控消息排列在被优先处理的位置。例如优先级高的监控信息自动被置于消息队列的前端,被优先读取。
本实施例中,监控报警控制***根据被监控端的重要性对被监控端进行了规划,对***中处于比较重要地位的被监控端设定较高的处理优先级别,当其出现故障时可以优先传送其生成的报警信息进行报警操作,避免延误排障工作的进行。
本实施例中,预警控制模块202的工作步骤包括:
步骤211,读取监控消息,预警控制模块202从队列中读取监控信息。
步骤212,判断监控对象当前监控数据是否超出报警阈值数据。预警控制模块202从队列中读取监控信息,提取监控信息中的监控数据和报警阈值数据,并且将两者进行比较,判断当前监控数据是否超出报警阈值数据的范围。如果监控数据超出了阈值范围,则执行步骤213,否则执行步骤216。在另外的实施例中,本领域技术人员应当理解,监控信息中也可以不包括报警阈值数据,在本步骤中,预警控制模块202根据监控数据的属性确定报警阈值数据,并判断当前监控数据是否超出报警阈值数据的范围。
步骤213,生成报警信息。当步骤212中判断出当前监控数据超出了报警阈值数据的范围时,则说明监控对象可能发生了故障,于是生成报警信息。
步骤214,判断报警信息是否满足报警触发条件。预警控制模块202根据不同监控对象类型和/或处理优先级别设定不同的报警触发条件,当报警信息满足报警触发条件时,预警控制模块202执行步骤215,产生报警触发信号,执行开启报警操作,否则执行步骤217。
步骤215,生成报警触发信号,通知开启报警操作。
步骤216,放弃当前监控消息,***自动读取下一条监控消息。
步骤217,放弃当前报警信息,读取队列中的下一条报警信息,或者还可以将不满足报警触发条件的监控信息记录下来,已备后续处理步骤应用。
否则转向执行步骤212,判断下一监控信息。报警触发条件可以包括报警次数和/或间隔时间。报警次数可以是超过监控端阈值数据产生报警信息的次数,也可以是满足报警触发条件产生报警触发信号的次数阈值,间隔时间可以是检验间隔时间阈值或报警间隔时间阈值,检验间隔时间为判断当前监控消息的时间和判断来自同一被监控端的前一监控消息的时间之间的间隔时间,报警间隔时间为判断当前监控消息和同一被监控端的最近一次的报警时间之间的间隔时间。
在一种具体实例中,报警触发条件为产生报警信息的次数,比如,当报警信息次数设置为5时,只有当预警控制模块202在一定时间内接收到来自于同一监控对象的相同报警信息的次数大于5,即说明监控对象可能存在故障,则产生报警触发信号;当预警控制模块202在一定时间内接收到相同报警信息的次数小于5,即说明监控对象可能因为外界环境的突然性波动造成暂时的故障,但在短时间内已经恢复正常工作了,则预警控制模块202不产生报警触发信号。
在另一种具体实例中,报警触发条件为报警间隔时间,报警间隔时间可根据需要灵活设置,也可以由***自动设置比如,当预警控制模块202产生一报警触发信号后,将报警间隔时间设置为60秒。如果预警控制模块202接收到下一个报警信息时,则判断间隔时间是否大于60秒,如果是则产生下一报警触发信号,否则,不产生报警触发信号,避免产生无效报警。这样,既可避免在短时间内多次接收到相同的报警,同时也可防止错过有用的报警。通过对报警触发条件的设定,可以比较准确地过滤掉无效报警信息,提高监控报警控制***的准确性。
本实施例中的监控对象级别、自定义优先级与报警触发条件都可以根据现实工作需求预先设定好。本实施例中的监控报警控制***可以实现优先对级别高的监控对象进行报警操作,同时还可以通过报警触发条件对无效报警进行过滤,减少工作中无效报警的开启,减少工作人员的工作负担,提高监控报警***的准确性与可控性。
实施例三:
本实施例在上述实施例的基础上增加了报警触发控制模块303,下面以在实施例二的基础上增加报警触发控制模块303,为了进行说明,请参考图5、图6,监控报警控制***包括数据获取模块301、预警控制模块302和报警触发控制模块303。其中,数据获取模块301、预警控制模块302与上述实施例中的数据获取模块、预警控制模块相同,报警触发单元303用于基于产生的报警触发信号确定是否触发报警,报警触发控制模块303根据预先建立的被监控端关联信息表确定当前报警触发信号对应的被监控端是否具有向上或向下关联的监控,如果有则基于产生的报警触发信号和关联信息进行触发报警的控制,如果没有向上或向下关联的监控,则基于产生的报警触发信号触发报警。报警触发控制模块303在确定报警触发信号对应的被监控端具有向上关联的监控时,检查上级关联设备是否在设定的第一时间内已有触发报警,如果有,则对当前的报警触发信号不再触发报警,否则基于当前的报警触发信号触发报警;所述报警触发控制模块303在确定报警触发信号对应的被监控端具有向下关联的监控时,在设定的第二时间内,对由向下关联设备产生的报警触发信号不再触发报警。
本实施例中报警触发控制模块303的具体工作流程如下:
步骤304,报警触发控制模块303接收到预警控制模块发生的报警触发信号,根据预先建立的被监控端关联信息表确定当前报警触发信号对应的被监控端是否具有向上或向下关联的监控,如果不存在,执行步骤305,如果存在,执行步骤306。
步骤305,如果当前的报警触发信号对应的被监控端不存在向上或向下的关联监控,则基于当前的报警触发信号触发报警。
步骤306,判断当前的报警触发信号对应的被监控端是否存在向上的关联监控,如果是,则执行步骤307。如果不存在向上的关联监控,则执行步骤309。
步骤307,判断向上的关联监控是否已经触发报警,如果是则执行步骤308,如果向上的关联监控没有触发报警,则转到步骤305,基于当前的报警触发信号触发报警。
步骤308,对当前的报警触发信号不再触发报警,即关闭当前被监控端的报警。
步骤309,当前的报警触发信号对应的被监控端存在向下的关联监控,不管向下的关联监控是否已经触发报警,都对由向下关联设备产生的报警触发信号不再触发报警,即关闭向下关联设备产生的报警。并转到步骤305,基于当前的报警触发信号触发报警。
比如,监控了某个服务器的存活状态,同时监控了服务器上运行的各种服务,包括服务器本地资源等,当监控对象服务器触发了报警,说明整个服务器处于非活动状态,也就意味着其***上的各种服务以及资源均不可用,然后***上的各种服务以及资源却依然会传送报警信息,经过报警触发控制模块303处理后,只会对上级服务器的报警信息进行开启报警操作。同理,对于某个交换机的监控,当交换机的存活状态触发了报警,即可推断连接到交换机下的各个服务器及其资源均不可用,此类情况,报警触发控制模块303就只会发出一条报警信息(交换机相应的报警信息),并且附加关联的下级监控对象信息,而不会对每个监控对象均触发报警。
本实施例中,也可以先判断当前的报警触发信号对应的被监控端是否存在向下的关联监控,然后再判断当前的报警触发信号对应的被监控端是否存在向上的关联监控。
当上级被监控端已经开启报警后,其相应的下级被监控端的报警信息可以定义为无效报警信息,因此,本实施例中增加的报警触发控制模块303可以减少部分无效报警请求,减少工作人员的工作负担,提高了监控报警控制***的准确与可控性。
实施例四:
本实施例在上述实施例的基础上增加了标记模块和标记统计模块,下面以在实施例三的基础上增加标记模块和标记统计模块,为了进行说明,请参考图7、图8,监控报警控制***包括数据获取模块401、预警控制模块402、报警触发控制模块403、标记模块404和标记统计模块405。其中,数据获取模块401、预警控制模块402、报警触发控制模块403与上述实施例中的数据获取模块、预警控制模块、报警触发控制模块相同。本实施例与实施例三的区别在于增加了标记模块404和标记统计模块405。标记模块404用于对所述报警信息进行标记;标记统计模块405用于将所述标记信息进行统计,生成统计数据。
本实施例中标记模块404和标记统计模块405的具体工作流程如下:
步骤406,标记模块404在接收到报警信息后,根据报警信息类型的不同进行不同的标记,生成标记信息。
步骤407,标记统计模块405接收标记模块404生成的标记信息,并对其进行统计,生成统计数据,所述统计数据可以是根据标记信息生成的图表或者数字表格。
本实施例中,对于已触发的报警信息,标记模块404对其做相关标记,生成标记信息以便统计分析用,并存入数据库等可记忆的设备中,并由标记统计模块405根据标记信息对已触发的报警进行汇总,根据不同标记做统计,提供有效的统计数据,并可生成直观的图表数据。工作人员通过分析统计数据,可对高故障率的服务进行优化调整。
实施例五:
本实施例在上述实施例的基础上增加了自动排障模块,下面以在实施例四的基础上增加自动排障模块,为了进行说明,请参考图9、图10,本实施例中监控报警控制***包括数据获取模块501、预警控制模块502、报警触发控制模块503、标记模块504、标记统计模块505和自动排障模块506。其中,数据获取模块501、预警控制模块502、报警触发控制模块503、标记模块504、标记统计模块505与上述实施例中的数据获取模块、预警控制模块、报警触发控制模块、标记模块、标记统计模块相同。自动排障模块506根据标记信息判断是否可以对当前报警信息进行自动排障,若标记信息对应有预先存储好的自动排障处理程序,说明可以对当前报警信息进行自动排障,则向报警信息对应的被监控端发送自动处理信息,如果不可以,则对当前的报警信息触发报警,所述自动处理信息用于通知被监控端运行处理过程自动排除故障。
本实施例中自动排障模块506的具体工作流程如下:
步骤507,自动排障模块506根据标记信息判断是否可以对当前报警信息进行自动排障。
步骤508,如果可以对当前报警信息进行自动排障,则自动排障模块506向被监控端发送自动处理信息,所述自动处理信息用于通知被监控端运行处理过程自动排除故障。
步骤509,被监控端接收到自动排障模块506发送的自动处理信息后运行自动处理过程,进行自动排障。
步骤510,如果不可以对当前报警信息进行自动排障,则对当前报警信息触发报警。
本实施例中,对于可以进行自动排障的报警信息,自动排障模块506在接收到用户的自动排障指令后发出自动处理信息指示相应被监控端运行自动处理过程进行自动排障。实现了监控报警控制过程中排障操作的自动化处理,从而减少了人为的干预或维护过程。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施例只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换。