一种报警处理器及报警处理方法

文档序号:6705707阅读:145来源:国知局
专利名称:一种报警处理器及报警处理方法
技术领域
本发明涉及计算机技术领域,具体涉及一种报警处理器及报警处理方法。
背景技术
随着网络的快速发展,出现了需要为大量用户服务的网络系统。这些网络系统具有分布在各个地址的大量服务器,而这些服务器通常构建为集群的方式来为用户服务。随着提供服务的服务器越来越多,对这些服务器的性能进行监控并在出现故障时及时、准确地进行报警成为目前非常关注的问题。当监控系统用于监控大规模服务器时,会产生大量的监控数据。随着监控数据越来越多,如何对监控数据进行提取、分析、有效管理以便快速向操作人员及时、准确地报警成为考量包含大规模服务器的网络系统的快速反应、修复能力,直接影响着网络系统的服
务质量。

发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的报警处理器及报警处理方法。依据本发明的一个方面,提供了报警处理器,其对需要报警的数据进行处理,该报警处理器包括数据表构造模块,适于根据需要报警的数据来构造报警数据表,所述需要报警的数据包括至少两个数据项,所述报警数据表包括多个数据节点,每个数据节点上链接有环形双向链表,所述环形双向链表包括多个链表节点,其中数据节点由需要报警的数据中选定的至少一个数据项进行标识,该至少一个数据项相同的需要报警的数据被存储在同一个数据节点下并按顺序存储在该数据节点的环形双向链表中相应的链表节点;以及报警模块,根据预定的报警策略来确定与数据节点相关联的环形双向链表中的需要报警的数据是否符合所述报警策略,当确定符合报警策略时进行报警。 根据本发明的另一方面,提供了一种报警处理方法,其对需要报警的数据进行处理,该报警处理方法包括根据需要报警的数据来构造报警数据表,所述需要报警的数据包括至少两个数据项,所述报警数据表包括多个数据节点,每个数据节点上链接有环形双向链表,所述环形双向链表包括多个链表节点,其中每个数据节点由需要报警的数据中选定的至少一个数据项进行标识,该至少一个数据项相同的需要报警的数据被存储在同一个数据节点下并按顺序存储在该数据节点的环形双向链表中相应的链表节点;根据预定的报警策略来确定与数据节点相关联的环形双向链表中的需要报警的数据是否符合所述报警策略,当确定满足报警策略时进行报警。本发明的报警处理器和报警处理方法可以应用于监控系统中,尤其监控多台甚至上千、上万台机器的监控系统中,便于对需要报警的数据进行分类、统计,并进行报警。使得操作人员能够快速、准确地定位出现异常的机器。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式



通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图I示出了根据本发明的一实施例的报警处理器的框图;图2示出了根据本发明一个实施例的报警数据表的示意图;以及图3示出了根据本发明一个实施例的报警处理方法的流程图。
具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本发明提供一种报警处理器,其可以用于监控多台服务器的监控系统,在监控系统监测到多台服务器的大量的异常运行数据后,报警处理器对这些大量的异常运行数据有效地进行处理,从而及时、准确地进行报警。图I示出了根据本发明的一实施例的报警处理器100的框图。如图I所示,报警处理器100包括数据表构造模块Iio和报警模块120。数据表构造模块110适于根据需要报警的数据来构造报警数据表。这里,需要报警的数据例如可以是被监控的机器的异常运行数据。该异常运行数据包括至少两个数据项,例如可以包括机器域名、报警策略ID、监控数据项ID、故障值、和时间戳。其中机器域名是被监控是否存在异常的机器的域名;报警策略ID是采取的对应的预定的报警策略;监控数据项ID是对应于被监控机器的一项运行指标;故障值是监测到的机器的监控数据项的异常数据;时间戳是监测到机器的监控数据项的异常数据的时间。想特别说明的是,该异常运行数据不限于上面所举例子,其可以是上述例子中所列数据项的两个或多个或全部,也可以是其它数据项。数据表构造模块110所构造的报警数据表如图2所示。图2中的报警数据表200是以需要报警的数据包括机器域名、报警策略ID、监控数据项ID、故障值、和时间戳这五个数据项为例进行的图示说明。从图2中可以看出,报警数据表200包括多个数据节点210,这里只示意性地示出了 3个数据节点210。每个数据节点210链接有一环形双向链表220,环形双向链表220包括多个链表节点2220-2205。图2中为了图示清楚起见,将环形双向链表220画在报警数据表200之外,实际上,环形双向链表220与报警数据表200紧密关联。在报警数据表200中,每个数据节点210由需要报警的运行数据中的机器域名和报警策略ID来标识,与每个数据节点210相关联的环形双向链表220的每个链表节点中存储有具有相同机器域名和相同报警策略ID的需要报警的运行数据,多个链表节点根据其上的需要报警的运行数据的时间戳的值的大小在环形双向链表220中依次链接排列。
想特别说明的是,根据图2所示的报警数据表200,在大量的需要报警的数据中,即使机器域名相同,但是报警策略ID不同,也会形成不同的数据节点210,即,同一服务器因为报警策略ID不同而会有不同的数据节点210。另一方面,即使报警策略ID相同,但是机器域名不同,也会形成不同的数据节点210。只有机器域名和报警策略ID都相同的数据才位于一个数据节点210,并分布在与该数据节点210对应的一有序的环形双向链表220中的各个对应的链表节点上。每当一个数据进入报警数据表200中,该数据就被分配到相应的数据节点210,并把该数据挂载到环形双向链表220中与该数据中的时间戳相对应的链表节点处。利用图2所示的报警数据表200,可以在存在大量需要报警的数据的情形下,将每个机器的不同类型的报警内容区别开,从而可以准确定位大量被监控的机器中哪个机器出现了问题,以及出现了什么问题。在图2的环形双向链表220中,可以设定某一点为标准时间戳的链表节点,然后将各数据按时间戳的值从小到大或从大到小自标准时间戳的链表节点按顺时针或逆时针方向进行排列。例如,如图2所示,在环形双向链表220中,2200为标准时间戳的链表节点, 按顺时针方向时间戳的值逐渐增大,从链表节点2200开始逆时针方向与其最邻近的链表节点2205为时间戳的值最大的链表节点;而从链表节点2200开始顺时针方向与其最邻近的链表节点2201为时间戳的值最小的链表节点。2202、2203、2204为时间戳的值大于2201的时间戳的值而小于2205的时间戳的值的、且时间戳的值依次增大的三个数据。图2中只以环形双向链表220中包含5个数据为例,在实际中环形双向链表220中可以包含更少或更多的数据。另外,环形双向链表220中包含的链表节点的个数也随时间可能会变化。每当有新的数据进入时,就根据其时间戳的值将其插入到环形双向链表220中的对应位置。在图2所示的实施例中,数据节点是以机器域名和报警策略ID这两个数据项标识的。本发明并不限定于此。实际上,在操作人员的关注点不同时,数据节点可以由选自需要报警的数据中的不同的数据项标识,另外,用来标识数据节点的数据项也可以是一个、两个、或更多。这样,用来标识数据节点的数据项相同的所有数据都被存储在同一个数据节点下并以另一数据项的大小按顺序存储在该数据节点的环形双向链表中相应的链表节点。例如,当在各台机器上试运行同一软件时,操作人员想监测该软件在各机器上运行的效果,这时可以将该软件对机器性能产生影响的参数、机器域名以及时间戳作为监控数据项,用其中的对机器性能产生影响的参数这一监控数据项来标识数据节点,将对机器性能产生影响的参数在不同范围内的数据放置在不同的数据节点下,将位于每一数据节点下的数据按其时间戳的值的大小依次地排列在环形双向链表中,由此可以统计出该软件在各机器上运行时对机器的性能所产生的影响。另外,在图2所述的实施例中,报警模块120根据每个数据节点210中的报警策略ID选择相应的报警策略,并根据所选择的报警策略来确定与数据节点210相关联的环形双向链表220中的需要报警的数据是否达到所选择的报警策略中的报警条件,当确定满足报警条件时进行报警。例如,当报警条件为N分钟出现M次(其中N和M是大于等于I的整数)则进行报警时,从环形双向链表220中时间戳的值最大的地方开始依次取时间N分钟内的数据,将所取出的数据个数与M进行比较,如果所取出的数据个数大于或等于M,则表示达到报警条件,报警模块120可以通过进行报警(报警的示例包括发Email和/或短信,但是不发明不受限于此);如果所取出的数据个数小于M,则表示还不满足报警条件,不需要进行报警。由此可知,通过使用环形双向链表220可以很快地计算得知是否达到报警条件。另夕卜,报警条件还可以增加其它的内容,例如,当报警超过S (S是大于等于I的整数)次,则报警模块120不再进行报警。下面通过一个具体的例子详细说明报警模块120。当报警策略为〃#118#add_ops#2#4#5#机器负载过高〃时,其表示该报警策略的ID号为118,属于报警组add_ops。报警条件为如果2分钟内有4次这样的情况出现,就发进行报警(报警的示例包括Email或短信,但是本发明不受限于此),最多进行5次报警,报警内容为“机器负载过高”。可选地,根据本发明的报警处理器100还可以包括报警历史存储器130,该报警历史存储器130耦接到报警模块120,存储报警模块120的报警结果的历史记录。这里,报警历史存储器130可以将数据存储在hbase数据库中,由于hbase数据库是一个分布式的数据库,能够很好地扩展存储。可选地,报警历史存储器130也可独立于本发明的报警处理器100而设置。
·
本发明还提供一种报警处理方法,其对需要报警的数据进行处理。图3示出了根据本发明的一个实施例的报警处理方法的流程图。如图3所示,该报警处理方法始于步骤S310,在步骤S310,根据需要报警的数据来构造报警数据表。所述需要报警的数据包括至少两个数据项。这里,需要报警的数据例如可以是被监控的机器的异常运行数据。该异常运行数据包括至少两个数据项,例如可以包括机器域名、报警策略ID、监控数据项ID、故障值、和时间戳。其中机器域名是被监控是否存在异常的机器的域名;报警策略ID是采取的对应的预定的报警策略;监控数据项ID是对应于被监控机器的一项运行指标;故障值是监测到的机器的监控数据项的异常数据;和时间戳是监测到机器的监控数据项的异常数据的时间。想特别说明的是,该异常运行数据不限于上面所举例子,其可以是上述例子中所列数据项的两个或多个或全部,也可以是其它数据项。报警数据表包括多个数据节点,每个数据节点上链接有环形双向链表,所述环形双向链表包括多个链表节点,其中每个数据节点由需要报警的数据中选定的至少一个数据项进行标识,该至少一个数据项相同的需要报警的数据被存储在同一个数据节点下并按顺序存储在该数据节点的环形双向链表中相应的链表节点。具体参照前面关于图2的说明。随后,在步骤S320,获取需要报警的数据,并且将数据根据其中的数据项的内容而存储到报警数据表中的相应数据节点的链表节点处。由于通常对机器的监控是长期的监控,所以本发明的报警处理方法是对不断获取的需要报警的数据进行处理。随后,在步骤S330,根据构造的报警数据表和预先存储的预定的报警策略来确定所获取的需要报警的数据是否符合报警策略中的报警条件,当确定满足报警条件时,则进入步骤S340,进行报警;当不满足报警条件时,则回到步骤S320,继续获取需要报警的数据并存储。这里,每个报警策略包括唯一的报警策略ID以及报警条件。关于报警策略的具体说明参见前面关于报警模块120的描述的部分,这里不再详细说明。具体地,报警策略中的报警条件可以包括某一被监控的数据项在预定时间段内出现超过第一预定阈值的次数达到或者多于第一预定次数就报警的信息,如前面所描述的,例如当报警策略为“2#4#机器负载过高”时,表示如果2分钟内有4次这样的情况出现,就发Email或短信进行报警。这时,从环形双向链表中需要报警的数据的时间戳的值最大的位置开始获取2分钟内的数据,如果取得的数据的条数大于或者等于4,则进行报警。可选地,报警策略中的报警条件还可以包括报警次数达到第二预定次数则不再报警的信息,这样,在步骤S340之后,还可以包括步骤S350,在步骤S350,确定报警次数是否达到第二预定次数,当报警次数达到第二预定次数时,则进行步骤S360,不再报警;当报警次数未达到第二预定次数时,则执行步骤S330。例如,当报警策略为“2#4#5#机器负载过高”时,如在步骤S330中所述,2分钟内有4次这样的情况出现,则进入步骤S340,进行报警。接下来,在步骤S350中,当报警次数达到5次时,则进入步骤S360,不再报警;当报警次数未达到5次时,则执行步骤S330。可选地,本发明的报警处理方法300还可以包括步骤S370 :将报警结果存储在报警历史存储器中,以便操作人员查看并监控多台服务器的运行状况。这样,在操作人员不在现场而没有听到报警或者及时看到报警结果的情况下,可以通过查看报警历史存储器中存储的报警结果信息而很快得知是否有异常情况出现。需要说明的是,图3所示的方法并不限定按所示的各步骤的顺序进行,可以根据需要调整各步骤的先后顺序,另外,所述步骤也不限定于上述步骤划分,上述步骤可以进一步拆分成更多步骤也可以合并成更少步骤。本发明的报警处理器和报警处理方法可以应用于监控系统中,尤其监控多台甚至上千、上万台机器的监控系统中,便于对需要报警的数据进行分类、统计,并进行报警。使得操作人员能够快速、准确地定位出现异常的机器。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式
的权利要求书由此明确地并入该具体实施方式
,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
权利要求
1.一种报警处理器,其对需要报警的数据进行处理,该报警处理器包括 数据表构造模块,适于根据需要报警的数据来构造报警数据表,所述需要报警的数据包括至少两个数据项,所述报警数据表包括多个数据节点,每个数据节点上链接有环形双向链表,所述环形双向链表包括多个链表节点,其中数据节点由需要报警的数据中选定的至少一个数据项进行标识,该至少一个数据项相同的需要报警的数据被存储在同一个数据节点下并按顺序存储在该数据节点的环形双向链表中相应的链表节点;以及 报警模块,根据预定的报警策略来确定与数据节点相关联的环形双向链表中的需要报警的数据是否符合所述报警策略,当确定符合报警策略时进行报警。
2.根据权利要求I所述的报警处理器,其中,所述报警策略包括报警策略ID和报警条件,所述至少两个数据项包括下列中的两个或者多个机器域名、报警策略ID、监控数据项ID、故障值、和时间戳,其中, 机器域名,是被监控是否存在异常的机器的域名; 报警策略ID,对应于预定的报警策略; 监控数据项ID,对应于被监控机器的一项运行指标; 故障值,监测到的机器的监控数据项的异常数据;和 时间戳,监测到机器的监控数据项的异常数据的时间。
3.根据权利要求2所述的报警处理器,其中, 所述数据节点由需要报警的数据中的机器域名和报警策略ID来标识,而与每个数据节点相关联的环形双向链表的每个链表节点中存储有具有相同机器域名和相同报警策略ID的需要报警的数据,所述多个链表节点根据其上的需要报警的数据的时间戳值大小进行链接排列。
4.如权利要求2或3所述的报警处理器,其中所述报警策略中的报警条件包括监控数据项在预定时间段内出现超过第一预定阈值的次数达到或者多于第一预定次数就报警的信息, 所述报警模块根据环形双向链表中需要报警的数据的时间戳值获取在预定时间段内的链表节点,如果链表节点的数量大于或者等于所述第一预定次数,则进行报警。
5.如权利要求2-4中任一个所述的报警处理器,其中,所述报警条件还包括报警次数达到第二预定次数不再报警的信息。
6.如权利要求2-5中任一个所述的报警处理器,还包括 报警历史存储器,其存储报警结果的历史记录。
7.一种报警处理方法,其对需要报警的数据进行处理,该报警处理方法包括 根据需要报警的数据来构造报警数据表,所述需要报警的数据包括至少两个数据项,所述报警数据表包括多个数据节点,每个数据节点上链接有环形双向链表,所述环形双向链表包括多个链表节点,其中每个数据节点由需要报警的数据中选定的至少一个数据项进行标识,该至少一个数据项相同的需要报警的数据被存储在同一个数据节点下并按顺序存储在该数据节点的环形双向链表中相应的链表节点, 根据预定的报警策略来确定与数据节点相关联的环形双向链表中的需要报警的数据是否符合所述报警策略,当确定满足报警策略时进行报警。
8.如权利要求7所述的报警处理方法,其中,所述报警策略包括报警策略ID和报警条件,所述至少两个数据项包括下列中的两个或者多个机器域名、报警策略ID、监控数据项ID、故障值、和时间戳,其中, 机器域名,是被监控是否存在异常的机器的域名; 报警策略ID,对应于预定的报警策略; 监控数据项ID,对应于被监控机器的一项运行指标; 故障值,监测到的机器的监控数据项的异常数据;和 时间戳,监测到机器的监控数据项的异常数据的时间。
9.如权利要求8所述的报警处理方法,其中, 所述数据节点由需要报警的数据中的机器域名和报警策略ID来标识,而与每个数据节点相关联的环形双向链表的每个链表节点中存储有具有相同机器域名和相同报警策略ID的需要报警的数据,所述多个链表节点根据其上的需要报警的数据的时间戳值大小进行链接排列。
10.如权利要求8或9所述的报警处理方法,其中,所述报警条件包括监控数据项在预定时间段内出现超过第一预定阈值的次数达到或者多于第一预定次数就报警的信息, 所述根据预定的报警策略来确定与数据节点相关联的环形双向链表中的需要报警的数据是否符合所述报警策略,当确定满足报警策略时进行报警的步骤为根据所述报警条件,基于环形双向链表中需要报警的数据的时间戳值获取在预定时间段内的链表节点,如果链表节点的数量大于或者等于所述第一预定次数,则进行报警。
11.如权利要求10所述的报警处理方法,其中,所述报警条件还包括报警次数达到第二预定次数不再报警的信息。
12.如权利要求7-11中任一个所述的报警处理方法,还包括 将报警结果的历史记录存储在报警历史存储器中。
全文摘要
本发明公开了一种报警处理器,其对需要报警的数据进行处理,包括数据表构造模块,适于根据需要报警的数据来构造报警数据表,需要报警的数据包括至少两个数据项,报警数据表包括多个数据节点,每个数据节点上链接有环形双向链表,环形双向链表包括多个链表节点,其中数据节点由需要报警的数据中选定的至少一个数据项进行标识,该至少一个数据项相同的需要报警的数据被存储在同一个数据节点下并按顺序存储在该数据节点的环形双向链表中相应的链表节点;以及报警模块,根据预定的报警策略来确定与数据节点相关联的环形双向链表中的需要报警的数据是否符合所述报警策略,当确定符合报警策略时进行报警。另外,本发明还提供一种报警处理方法。
文档编号G08B21/00GK102930690SQ20121045764
公开日2013年2月13日 申请日期2012年11月14日 优先权日2012年11月14日
发明者曾文杰, 刘浩, 冯顾, 胡宇, 华起 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1