一种告警压制方法和装置转让专利

申请号 : CN202111423375.5

文献号 : CN114091704B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王海遵

申请人 : 奇点浩翰数据技术(北京)有限公司

摘要 :

本发明公开了一种告警压制方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:对历史告警信息进行扫描,以获取上次扫描时间之后的告警信息;基于时间维度,采用聚类算法对所述告警信息进行聚类,得到各个告警集合,将所述各个告警集合记录到告警集合库;其中,每个告警集合包括多个互相关联的告警事件;采用机器学习算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;基于所述关联规则对当前告警信息进行压制。该实施方式能够解决告警数量过多、系统资源消耗较多和维护成本高的技术问题。

权利要求 :

1.一种告警压制方法,其特征在于,包括:对历史告警信息进行扫描,以获取上次扫描时间之后的告警信息;

基于时间维度,采用聚类算法对所述告警信息进行聚类,得到各个告警集合,将所述各个告警集合记录到告警集合库;其中,每个告警集合包括多个互相关联的告警事件;

采用机器学习算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;

基于所述关联规则对当前告警信息进行压制;

其中,基于所述关联规则对当前告警信息进行压制,包括:获取当前告警信息;

从所述规则库中匹配出包含有所述当前告警信息的目标关联规则;

从事件集合中查询所述目标关联规则包含的各个目标事件的发生状态;其中,所述目标事件包括触发事件和受影响事件,所述发生状态包括已发生和未发生;

根据所述各个目标事件的发生状态确定是否发送告警消息;

根据所述各个目标事件的发生状态确定是否发送告警消息,包括:若所述当前告警信息为所述目标关联规则包含的触发事件,且所述当前告警信息为首次标记为已发生的触发事件,则发送告警消息;

若所述当前告警信息为所述目标关联规则包含的受影响事件,所述目标关联规则包含的触发事件均已发生,且所述当前告警信息为最后标记为已发生的受影响事件,则发送告警消息;

反之,则不发送告警消息。

2.根据权利要求1所述的方法,其特征在于,对历史告警信息进行扫描,以获取上次扫描时间之后的告警信息,包括:判断是否存在上次扫描的结束时间;若是,则对历史告警信息进行扫描,以获取所述上次扫描的结束时间之后的告警信息;若否,则获取历史告警信息;

对所述告警信息进行异常数据清洗。

3.根据权利要求2所述的方法,其特征在于,对所述告警信息进行异常数据清洗,包括:判断是否存在连续发生告警和恢复的告警信息;

若是,则删除所述告警信息。

4.根据权利要求1所述的方法,其特征在于,基于时间维度,采用聚类算法对所述告警信息进行聚类,得到各个告警集合,包括:采用密度聚类算法对所述告警信息进行聚类,使得时间相近的告警信息聚合在同一个告警集合中,从而得到各个告警集合。

5.根据权利要求1所述的方法,其特征在于,将所述各个告警集合记录到告警集合库之前,还包括:基于时间维度,对所述各个告警集合进行排序;

删除时间最晚的告警集合;

将所述时间最晚的告警集合的起始时间作为本次扫描的结束时间。

6.根据权利要求1所述的方法,其特征在于,采用机器学习算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则,包括:采用关联分析算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;其中,所述关联规则的内容包括触发事件、受影响事件、影响率和命中次数。

7.根据权利要求6所述的方法,其特征在于,生成关联规则之后,还包括:根据所述关联规则中的触发事件和受影响时间,在规则库中匹配出对应的关联规则;

以生成的所述关联规则替换所述规则库中的关联规则。

8.一种告警压制装置,其特征在于,包括:扫描模块,用于对历史告警信息进行扫描,以获取上次扫描时间之后的告警信息;

聚类模块,用于基于时间维度,采用聚类算法对所述告警信息进行聚类,得到各个告警集合,将所述各个告警集合记录到告警集合库;其中,每个告警集合包括多个互相关联的告警事件;

分析模块,用于采用机器学习算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;

告警模块,用于基于所述关联规则对当前告警信息进行压制;

其中,所述告警模块还用于:

获取当前告警信息;

从所述规则库中匹配出包含有所述当前告警信息的目标关联规则;

从事件集合中查询所述目标关联规则包含的各个目标事件的发生状态;其中,所述目标事件包括触发事件和受影响事件,所述发生状态包括已发生和未发生;

根据所述各个目标事件的发生状态确定是否发送告警消息;

所述告警模块还用于:

若所述当前告警信息为所述目标关联规则包含的触发事件,且所述当前告警信息为首次标记为已发生的触发事件,则发送告警消息;

若所述当前告警信息为所述目标关联规则包含的受影响事件,所述目标关联规则包含的触发事件均已发生,且所述当前告警信息为最后标记为已发生的受影响事件,则发送告警消息;

反之,则不发送告警消息。

9.一种电子设备,其特征在于,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现如权利要求1‑7中任一项所述的方法。

10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1‑7中任一项所述的方法。

说明书 :

一种告警压制方法和装置

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种告警压制方法和装置。

背景技术

[0002] 目前,通常采用回归算法对各个指标的历史数据进行分析处理,计算出近期指标取值范围,从而预测指标数据情况,动态调整告警阈值,从而降低发生告警频率。
[0003] 在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
[0004] 1)只对单一指标分析,系统性问题仍会导致大量告警;
[0005] 2)监控指标采集频率过高,数据量偏大,涉及指标过多或者涉及时间过长,便会造成系统资源消耗加剧;
[0006] 3)不能体现监控对象实际产生的问题;
[0007] 4)由于不同趋势的指标需匹配不同的机器学习算法,导致维护成本较高;
[0008] 5)由于是基于历史数据进行预测,当运维人员参与调整时,容易产生误报。

发明内容

[0009] 有鉴于此,本发明实施例提供一种告警压制方法和装置,以解决告警数量过多、系统资源消耗较多和维护成本高的技术问题。
[0010] 为实现上述目的,根据本发明实施例的一个方面,提供了一种告警压制方法,包括:
[0011] 对历史告警信息进行扫描,以获取上次扫描时间之后的告警信息;
[0012] 基于时间维度,采用聚类算法对所述告警信息进行聚类,得到各个告警集合,将所述各个告警集合记录到告警集合库;其中,每个告警集合包括多个互相关联的告警事件;
[0013] 采用机器学习算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;
[0014] 基于所述关联规则对当前告警信息进行压制。
[0015] 可选地,对历史告警信息进行扫描,以获取上次扫描时间之后的告警信息,包括:
[0016] 判断是否存在上次扫描的结束时间;若是,则对历史告警信息进行扫描,以获取所述上次扫描的结束时间之后的告警信息;若否,则获取历史告警信息;
[0017] 对所述告警信息进行异常数据清洗。
[0018] 可选地,对所述告警信息进行异常数据清洗,包括:
[0019] 判断是否存在连续发生告警和恢复的告警信息;
[0020] 若是,则删除所述告警信息。
[0021] 可选地,基于时间维度,采用聚类算法对所述告警信息进行聚类,得到各个告警集合,包括:
[0022] 采用密度聚类算法对所述告警信息进行聚类,使得时间相近的告警信息聚合在同一个告警集合中,从而得到各个告警集合。
[0023] 可选地,将所述各个告警集合记录到告警集合库之前,还包括:
[0024] 基于时间维度,对所述各个告警集合进行排序;
[0025] 删除时间最晚的告警集合;
[0026] 将所述时间最晚的告警集合的起始时间作为本次扫描的结束时间。
[0027] 可选地,采用机器学习算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则,包括:
[0028] 采用关联分析算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;其中,所述关联规则的内容包括触发事件、受影响事件、影响率和命中次数。
[0029] 可选地,生成关联规则之后,还包括:
[0030] 根据所述关联规则中的触发事件和受影响时间,在规则库中匹配出对应的关联规则;
[0031] 以生成的所述关联规则替换所述规则库中的关联规则。
[0032] 可选地,基于所述关联规则对当前告警信息进行压制,包括:
[0033] 获取当前告警信息;
[0034] 从所述规则库中匹配出包含有所述当前告警信息的目标关联规则;
[0035] 从事件集合中查询所述目标关联规则包含的各个目标事件的发生状态;其中,所述目标事件包括触发事件和受影响事件,所述发生状态包括已发生和未发生;
[0036] 根据所述各个目标事件的发生状态确定是否发送告警消息。
[0037] 可选地,根据所述各个目标事件的发生状态确定是否发送告警消息,包括:
[0038] 若所述当前告警信息为所述目标关联规则包含的触发事件,且所述当前告警信息为首次标记为已发生的触发事件,则发送告警消息;
[0039] 若所述当前告警信息为所述目标关联规则包含的受影响事件,所述目标关联规则包含的触发事件均已发生,且所述当前告警信息为最后标记为已发生的受影响事件,则发送告警消息;
[0040] 反之,则不发送告警消息。
[0041] 另外,根据本发明实施例的另一个方面,提供了一种告警压制装置,包括:
[0042] 扫描模块,用于对历史告警信息进行扫描,以获取上次扫描时间之后的告警信息;
[0043] 聚类模块,用于基于时间维度,采用聚类算法对所述告警信息进行聚类,得到各个告警集合,将所述各个告警集合记录到告警集合库;其中,每个告警集合包括多个互相关联的告警事件;
[0044] 分析模块,用于采用机器学习算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;
[0045] 告警模块,用于基于所述关联规则对当前告警信息进行压制。
[0046] 可选地,所述扫描模块还用于:
[0047] 判断是否存在上次扫描的结束时间;若是,则对历史告警信息进行扫描,以获取所述上次扫描的结束时间之后的告警信息;若否,则获取历史告警信息;
[0048] 对所述告警信息进行异常数据清洗。
[0049] 可选地,所述扫描模块还用于:
[0050] 判断是否存在连续发生告警和恢复的告警信息;
[0051] 若是,则删除所述告警信息。
[0052] 可选地,所述聚类模块还用于:
[0053] 采用密度聚类算法对所述告警信息进行聚类,使得时间相近的告警信息聚合在同一个告警集合中,从而得到各个告警集合。
[0054] 可选地,所述聚类模块还用于:
[0055] 将所述各个告警集合记录到告警集合库之前,基于时间维度,对所述各个告警集合进行排序;
[0056] 删除时间最晚的告警集合;
[0057] 将所述时间最晚的告警集合的起始时间作为本次扫描的结束时间。
[0058] 可选地,所述分析模块还用于:
[0059] 采用关联分析算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;其中,所述关联规则的内容包括触发事件、受影响事件、影响率和命中次数。
[0060] 可选地,所述分析模块还用于:
[0061] 生成关联规则之后,根据所述关联规则中的触发事件和受影响时间,在规则库中匹配出对应的关联规则;
[0062] 以生成的所述关联规则替换所述规则库中的关联规则。
[0063] 可选地,所述告警模块还用于:
[0064] 获取当前告警信息;
[0065] 从所述规则库中匹配出包含有所述当前告警信息的目标关联规则;
[0066] 从事件集合中查询所述目标关联规则包含的各个目标事件的发生状态;其中,所述目标事件包括触发事件和受影响事件,所述发生状态包括已发生和未发生;
[0067] 根据所述各个目标事件的发生状态确定是否发送告警消息。
[0068] 可选地,所述告警模块还用于:
[0069] 若所述当前告警信息为所述目标关联规则包含的触发事件,且所述当前告警信息为首次标记为已发生的触发事件,则发送告警消息;
[0070] 若所述当前告警信息为所述目标关联规则包含的受影响事件,所述目标关联规则包含的触发事件均已发生,且所述当前告警信息为最后标记为已发生的受影响事件,则发送告警消息;
[0071] 反之,则不发送告警消息。
[0072] 根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
[0073] 一个或多个处理器;
[0074] 存储装置,用于存储一个或多个程序,
[0075] 当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现上述任一实施例所述的方法。
[0076] 根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
[0077] 根据本发明实施例的另一个方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。
[0078] 上述发明中的一个实施例具有如下优点或有益效果:因为采用基于时间维度,采用聚类算法对告警信息进行聚类,得到各个告警集合,将各个告警集合记录到告警集合库,采用机器学习算法对告警集合库中的各个告警集合进行分析,从而生成关联规则的技术手段,所以克服了现有技术中告警数量过多、系统资源消耗较多和维护成本高的技术问题。本发明实施例通过分析历史告警信息,而不是监控指标数据,处理的数据量大幅降低,消耗的系统资源显著减少;通过分析告警事件之间关联关系,将受影响事件屏蔽,可大幅降低运维人员接收到的告警数量,并且接收到的告警可直接定位问题原因;随着系统运行时间越长,告警压制的效果越好,告警源的定位会越准,有效地降低了维护成本。
[0079] 上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

[0080] 附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0081] 图1是根据本发明实施例的告警压制方法的主要流程的示意图;
[0082] 图2是根据本发明实施例的初始化关联规则的示意图;
[0083] 图3是根据本发明实施例的动态更新关联规则的主要流程的示意图;
[0084] 图4是根据本发明实施例的基于关联规则对当前告警信息进行压制的主要流程的示意图;
[0085] 图5是根据本发明实施例的告警压制装置的主要模块的示意图;
[0086] 图6是本发明实施例可以应用于其中的示例性系统架构图;
[0087] 图7是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

[0088] 以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0089] 图1是根据本发明实施例的告警压制方法的主要流程的示意图。作为本发明的一个实施例,如图1所示,所述告警压制方法可以包括:
[0090] 步骤101,对历史告警信息进行扫描,以获取上次扫描时间之后的告警信息。
[0091] 在该步骤中,对历史告警信息进行扫描,获取上次扫描时间之后的所有历史告警信息。与现有技术不同,本发明实施例扫描历史告警信息,并对历史告警信息进行分析,而不是对指标数据进行分析,这样使得处理的数据量大幅降低,消耗的系统资源也显著较少。
[0092] 可选地,步骤101可以包括:判断是否存在上次扫描的结束时间;若是,则对历史告警信息进行扫描,以获取所述上次扫描的结束时间之后的告警信息;若否,则获取历史告警信息;对所述告警信息进行异常数据清洗。在本发明的实施例中,首先判断是否存在上次扫描的结束时间,如果是,则对历史告警信息进行扫描,获取上次扫描的结束时间之后的所有历史告警信息,从而大幅降低数据处理压力;如果不是,说明当前扫描是首次扫描,可以直接获取所有的历史告警信息。因此,每次扫描获取的历史告警信息都是在上一次扫描之后的增量告警信息,然后对获取到的告警信息进行异常数据清洗。
[0093] 可选地,对所述告警信息进行异常数据清洗,包括:判断是否存在连续发生告警和恢复的告警信息;若是,则删除所述告警信息。本发明实施例的目的是通过历史告警信息分析出各个事件之间的关联关系,因此扫描得到历史告警信息之后,需要对告警信息进行过滤,比如判断是否存在连续发生告警和恢复的告警信息,可以预先设定时间阈值和次数阈值,如果在预设时间阈值内某个告警信息发生告警、恢复、告警、恢复、…、的次数超过次数阈值,说明该告警事件与其他告警事件没有关联关系,则将该告警信息删除。
[0094] 步骤102,基于时间维度,采用聚类算法对所述告警信息进行聚类,得到各个告警集合,将所述各个告警集合记录到告警集合库。
[0095] 获取到增量的告警信息之后,将告警信息以时间维度展开,利用聚类算法对这些告警信息进行聚类,得到各个告警集合(也就是簇),其中,每个告警集合包括多个互相关联的告警事件,比如事件A、事件B都在同一个告警集合中,则说明事件A与事件B是互相关联的事件。
[0096] 可选地,步骤102可以包括:采用密度聚类算法对所述告警信息进行聚类,使得时间相近的告警信息聚合在同一个告警集合中,从而得到各个告警集合。在本发明的实施例中,可以采用密度聚类算法(比如DBSCAN算法)对获取的增量告警信息进行聚类,从而得到各个告警集合,然后将各个告警集合新增到告警集合库中。
[0097] 可选地,将所述各个告警集合记录到告警集合库之前,还包括:基于时间维度,对所述各个告警集合进行排序;删除时间最晚的告警集合;将所述时间最晚的告警集合的起始时间作为本次扫描的结束时间。为了避免时间最晚的告警集合中的事件不全,本发明实施例首先按照时间由小到大或者由大到小,对聚类得到的各个告警集合进行排序,然后删除时间最晚的告警集合,该告警集合中的事件会被下一次扫描告警信息时获取到,同时将该告警集合的起始时间作为本次扫描的结束时间,那么下一次扫描告警信息时就会从该结束时间开始扫描。
[0098] 需要指出的是,告警集合内包括多个事件,每个事件都有其对应的发生时间(发生告警的时间),告警集合的开始时间是该告警集合内发生告警最早的时间,告警集合的结束时间是该告警集合内发生告警最晚的时间,比如某个告警集合内有事件A和事件B,事件A的告警发生时间a早于事件B的告警发生时间b,那么时间a即为该告警集合的开始时间,时间b即为该告警集合的结束时间。在对告警集合进行排序时,可以按照告警集合的开始时间进行排序,也可以按照告警集合的结束时间进行排序,本发明实施例对此不作限制。
[0099] 可选地,将所述各个告警集合记录到告警集合库之前,还包括:对于每个告警集合,将所述告警集合中的重复事件进行合并。本发明实施例的目的是通过历史告警信息分析出各个事件之间的关联关系,因此相同的事件可以合并为一个事件。
[0100] 步骤103,采用机器学习算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则。
[0101] 将聚类得到的各个告警集合新增到告警集合库之后,利用机器学习算法(比如FP‑growth算法)对告警集合库中的各个告警集合进行分析,从而生成关联规则。
[0102] 可选地,步骤103可以包括:采用关联分析算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;其中,所述关联规则的内容包括触发事件、受影响事件、影响率和命中次数。采用关联分析算法可以准确地对告警集合库中的各个告警集合进行分析,最终输出各个关联规则,如下表所示:
[0103]
[0104] 可选地,生成关联规则之后,还包括:根据所述关联规则中的触发事件和受影响时间,在规则库中匹配出对应的关联规则;以生成的所述关联规则替换所述规则库中的关联规则。采用机器学习算法生成最新的关联规则之后,根据触发事件及其对应的受影响事件在规则库中匹配出对应的关联规则,然后以最新的关联规则替换规则库中的关联规则。如果能够在规则库中匹配出关联规则,可以只更新该关联规则中的概率和命中次数,如果在规则库中没有匹配出关联规则,则将最新的关联规则直接写入规则库中。
[0105] 步骤104,基于所述关联规则对当前告警信息进行压制。
[0106] 当收到当前新的告警时,将当前告警信息与规则库中的关联规则进行匹配,如果匹配到规则,则按照规则处理,未匹配到则默认处理。
[0107] 可选地,步骤104可以包括:获取当前告警信息;从所述规则库中匹配出包含有所述当前告警信息的目标关联规则;从事件集合中查询所述目标关联规则包含的各个目标事件的发生状态;其中,所述目标事件包括触发事件和受影响事件,所述发生状态包括已发生和未发生;根据所述各个目标事件的发生状态确定是否发送告警消息。在该步骤中,主要涉及三个方面:告警标记,规则筛选,规则选举。
[0108] 告警标记:是规则匹配的前提,当接收到当前告警信息时,在事件集合中将所有与关联规则相关的并且已经发生但没恢复的告警信息打上标记;
[0109] 规则筛选:标记好事件之后,基于当前告警信息在规则库中查询包含有当前告警信息的目标关联规则,查询到的目标关联规则包括两部分,分别为作为触发事件的规则和作为受影响事件的规则;相应地,当前告警信息分别作为触发事件和受影响事件;
[0110] 规则选举:规则筛选之后,根据两类规则中各个事件的标记情况,再结合概率排序,选出最符合的关联规则,确定触发问题的源头,进行告警压制。
[0111] 可选地,根据所述各个目标事件的发生状态确定是否发送告警消息,包括:若所述当前告警信息为所述目标关联规则包含的触发事件,且所述当前告警信息为首次标记为已发生的触发事件,则发送告警消息;若所述当前告警信息为所述目标关联规则包含的受影响事件,所述目标关联规则包含的触发事件均已发生,且所述当前告警信息为最后标记为已发生的受影响事件,则发送告警消息;反之,则不发送告警消息。
[0112] 如果当前告警信息为目标关联规则中的触发事件,而且当前告警信息为该目标关联规则的所有触发事件中首次发生的事件,那么发送告警消息。例如:
[0113] 告警消息1:事件A出现,有80%的概率会触发事件B出现;
[0114] 告警消息2:事件A出现,事件B可能会出现,如果事件A和事件B出现,有80%的概率会触发事件C和事件D出现。
[0115] 如果当前告警信息为目标关联规则包中的受影响事件,该目标关联规则包含的触发事件均已发生,且当前告警信息为最后标记为已发生的受影响事件,那么发送告警消息。例如:
[0116] 告警消息1:受事件A影响,事件B已出现;
[0117] 告警消息2:受事件A和事件B影响,事件C和事件D已全部出现。
[0118] 除了上述情况之外,则不需要发送告警消息,从而达到告警压制的目的。
[0119] 因此,本发明实施例基于关联规则内容,可以预测后续告警内容,可以分析出初始告警内容实现问题定位(根因分析);由于告警内容相对监控指标数据而言,数据量很少,因此占用的系统资源极少而且后期基本无需维护,执行步骤101‑步骤103后关联规则会动态更新。
[0120] 根据上面所述的各种实施例,可以看出本发明实施例通过基于时间维度,采用聚类算法对告警信息进行聚类,得到各个告警集合,将各个告警集合记录到告警集合库,采用机器学习算法对告警集合库中的各个告警集合进行分析,从而生成关联规则的技术手段,解决了现有技术中告警数量过多、系统资源消耗较多和维护成本高的技术问题。本发明实施例通过分析历史告警信息,而不是监控指标数据,处理的数据量大幅降低,消耗的系统资源显著减少;通过分析告警事件之间关联关系,将受影响事件屏蔽,可大幅降低运维人员接收到的告警数量,并且接收到的告警可直接定位问题原因;随着系统运行时间越长,告警压制的效果越好,告警源的定位会越准,有效地降低了维护成本。
[0121] 图3是根据本发明实施例的动态更新关联规则的主要流程的示意图。作为本发明的又一个实施例,如图3所示,所述告警压制方法可以包括:
[0122] 由于基于算法的规则提取,需要大量的历史数据做基础,所以需要根据一些特定的依赖自动生成一些基础规则用来初始化规则库。系统运行起来后,再通过算法来完善规则库。
[0123] 规则初始化依据如图2所示,初始化规则可以如下:
[0124]
[0125] 比如,事件A可以是存储设备中的Lun异常,事件B可以是服务器中的磁盘异常;又比如,事件A可以是存储设备中的Lun异常,事件B可以是服务器中的磁盘异常,事件C可以是操作系统的磁盘使用率异常,事件D可以是MySQL的每秒操作数异常。
[0126] 需要说明的是,在图2中,可以以“应用‑>操作系统‑>硬件设备”之间的关联关系为基础,靠近下方的事件为触发事件,靠近上方的事件为受影响事件。
[0127] 应用的一些事件会受到所在平台关联事件的影响,当出现平台指标告警事件后,如又出现应用指标告警事件,可先屏蔽应用指标告警事件,待应用相关指标均告警或应用指标告警长时间不再变化时,再发送一条聚合关联事件集的告警,达到降低告警频率同时不漏报的目的;同时实现了根因分析,问题定位,确定到平台指标的问题。
[0128] 完成初始化规则库之后,每隔一段时间按照如下步骤动态更新规则库中的关联规则:
[0129] 首先判断是否存在上次扫描的结束时间,如果是,则对历史告警信息进行扫描,获取上次扫描的结束时间之后的所有历史告警信息,从而大幅降低数据处理压力;如果不是,说明当前扫描是首次扫描,可以直接获取所有的历史告警信息。
[0130] 然后,对所述告警信息进行异常数据清洗,具体地,判断是否存在连续发生告警和恢复的告警信息;若是,则删除所述告警信息。
[0131] 接着,采用密度聚类算法(比如DBSCAN算法)对所述告警信息进行聚类,使得时间相近的告警信息聚合在同一个告警集合中,从而得到各个告警集合。
[0132] 为了避免时间最晚的告警集合中的事件不全,本发明实施例按照时间由小到大或者由大到小,对聚类得到的各个告警集合进行排序,然后删除时间最晚的告警集合,该告警集合中的事件会被下一次扫描告警信息时获取到,同时将该告警集合的起始时间作为本次扫描的结束时间,那么下一次扫描告警信息时就会从该结束时间开始扫描。
[0133] 对于每个告警集合,将所述告警集合中的重复事件进行合并。本发明实施例的目的是通过历史告警信息分析出各个事件之间的关联关系,因此相同的事件可以合并为一个事件。
[0134] 将聚类得到的各个告警集合新增到告警集合库之后,利用机器学习算法(比如FP‑growth算法)对告警集合库中的各个告警集合进行分析,从而生成关联规则。其中,所述关联规则的内容包括触发事件、受影响事件、影响率和命中次数。
[0135] 最后,根据所述关联规则中的触发事件和受影响时间,在规则库中匹配出对应的关联规则;以生成的所述关联规则替换所述规则库中的关联规则。采用机器学习算法生成最新的关联规则之后,根据触发事件及其对应的受影响事件在规则库中匹配出对应的关联规则,然后以最新的关联规则替换规则库中的关联规则。如果能够在规则库中匹配出关联规则,可以只更新该关联规则中的概率和命中次数,如果在规则库中没有匹配出关联规则,则将最新的关联规则直接写入规则库中。
[0136] 另外,在本发明一个可参考实施例中告警压制方法的具体实施内容,在上面所述告警压制方法中已经详细说明了,故在此重复内容不再说明。
[0137] 图4是根据本发明实施例的基于关联规则对当前告警信息进行压制的主要流程的示意图。作为本发明的另一个实施例,如图4所示,所述告警压制方法可以包括:
[0138] 接收当前告警信息;
[0139] 在规则库中匹配出包含有所述当前告警信息的目标关联规则;
[0140] 若在规则库中没有匹配出目标关联规则,则基于匹配聚合规划生成聚合消息,然后将其封装成告警消息,并将其发送出去;
[0141] 若在规则库中匹配出目标关联规则,则从事件集合中查询所述目标关联规则包含的各个目标事件的发生状态;
[0142] 如果当前告警信息属于触发时间,则获取该目标关联规则中的受影响事件,然后根据该目标关联规则生成告警消息,并将其发送出去;
[0143] 如果当前告警信息属于受影响事件,则获取该关联规则中的所有触发事件和所有受影响事件,判断受影响事件是否全部出现;若是,则根据该目标关联规则生成告警消息,并将其发送出去;若否,则结束。
[0144] 另外,在本发明另一个可参考实施例中告警压制方法的具体实施内容,在上面所述告警压制方法中已经详细说明了,故在此重复内容不再说明。
[0145] 图5是根据本发明实施例的告警压制装置的主要模块的示意图。如图5所示,所述告警压制装置500包括扫描模块501、聚类模块502、分析模块503和告警模块504;其中,扫描模块501用于对历史告警信息进行扫描,以获取上次扫描时间之后的告警信息;聚类模块502用于基于时间维度,采用聚类算法对所述告警信息进行聚类,得到各个告警集合,将所述各个告警集合记录到告警集合库;其中,每个告警集合包括多个互相关联的告警事件;分析模块503用于采用机器学习算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;告警模块504用于基于所述关联规则对当前告警信息进行压制。
[0146] 可选地,所述扫描模块501还用于:
[0147] 判断是否存在上次扫描的结束时间;若是,则对历史告警信息进行扫描,以获取所述上次扫描的结束时间之后的告警信息;若否,则获取历史告警信息;
[0148] 对所述告警信息进行异常数据清洗。
[0149] 可选地,所述扫描模块501还用于:
[0150] 判断是否存在连续发生告警和恢复的告警信息;
[0151] 若是,则删除所述告警信息。
[0152] 可选地,所述聚类模块502还用于:
[0153] 采用密度聚类算法对所述告警信息进行聚类,使得时间相近的告警信息聚合在同一个告警集合中,从而得到各个告警集合。
[0154] 可选地,所述聚类模块502还用于:
[0155] 将所述各个告警集合记录到告警集合库之前,基于时间维度,对所述各个告警集合进行排序;
[0156] 删除时间最晚的告警集合;
[0157] 将所述时间最晚的告警集合的起始时间作为本次扫描的结束时间。
[0158] 可选地,所述分析模块503还用于:
[0159] 采用关联分析算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;其中,所述关联规则的内容包括触发事件、受影响事件、影响率和命中次数。
[0160] 可选地,所述分析模块503还用于:
[0161] 生成关联规则之后,根据所述关联规则中的触发事件和受影响时间,在规则库中匹配出对应的关联规则;
[0162] 以生成的所述关联规则替换所述规则库中的关联规则。
[0163] 可选地,所述告警模块504还用于:
[0164] 获取当前告警信息;
[0165] 从所述规则库中匹配出包含有所述当前告警信息的目标关联规则;
[0166] 从事件集合中查询所述目标关联规则包含的各个目标事件的发生状态;其中,所述目标事件包括触发事件和受影响事件,所述发生状态包括已发生和未发生;
[0167] 根据所述各个目标事件的发生状态确定是否发送告警消息。
[0168] 可选地,所述告警模块504还用于:
[0169] 若所述当前告警信息为所述目标关联规则包含的触发事件,且所述当前告警信息为首次标记为已发生的触发事件,则发送告警消息;
[0170] 若所述当前告警信息为所述目标关联规则包含的受影响事件,所述目标关联规则包含的触发事件均已发生,且所述当前告警信息为最后标记为已发生的受影响事件,则发送告警消息;
[0171] 反之,则不发送告警消息。
[0172] 需要说明的是,在本发明所述告警压制装置的具体实施内容,在上面所述告警压制方法中已经详细说明了,故在此重复内容不再说明。
[0173] 图6示出了可以应用本发明实施例的告警压制方法或告警压制装置的示例性系统架构600。
[0174] 如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0175] 用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
[0176] 终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
[0177] 服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的物品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。
[0178] 需要说明的是,本发明实施例所提供的告警压制方法一般由服务器605执行,相应地,所述告警压制装置一般设置在服务器605中。本发明实施例所提供的告警压制方法也可以由终端设备601、602、603执行,相应地,所述告警压制装置可以设置在终端设备601、602、603中。
[0179] 应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0180] 下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0181] 如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
[0182] 以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
[0183] 特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。
[0184] 需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0185] 附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0186] 描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括扫描模块、聚类模块、分析模块和告警模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
[0187] 作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,该设备实现如下方法:对历史告警信息进行扫描,以获取上次扫描时间之后的告警信息;基于时间维度,采用聚类算法对所述告警信息进行聚类,得到各个告警集合,将所述各个告警集合记录到告警集合库;其中,每个告警集合包括多个互相关联的告警事件;采用机器学习算法对所述告警集合库中的各个告警集合进行分析,从而生成关联规则;基于所述关联规则对当前告警信息进行压制。
[0188] 作为另一方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。
[0189] 根据本发明实施例的技术方案,因为采用基于时间维度,采用聚类算法对告警信息进行聚类,得到各个告警集合,将各个告警集合记录到告警集合库,采用机器学习算法对告警集合库中的各个告警集合进行分析,从而生成关联规则的技术手段,所以克服了现有技术中告警数量过多、系统资源消耗较多和维护成本高的技术问题。本发明实施例通过分析历史告警信息,而不是监控指标数据,处理的数据量大幅降低,消耗的系统资源显著减少;通过分析告警事件之间关联关系,将受影响事件屏蔽,可大幅降低运维人员接收到的告警数量,并且接收到的告警可直接定位问题原因;随着系统运行时间越长,告警压制的效果越好,告警源的定位会越准,有效地降低了维护成本。
[0190] 上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。