本发明涉及工控安全领域,具体涉及一种工控防火墙告警消息合并方法及装置。
背景技术:
工控防火墙是针对工控网络边界防护的专用防火墙产品,用于保护工业控制网络免受各类来自办公网或者内部其他区域的攻击。工控防火墙在处理收到的报文过程中,对不符合用户规则的报文做相应的处理,并产生相应的告警信息,这些大量的告警消息需要汇总到指定管理平台去存储。现有技术中,工控防火墙一旦产生告警消息,即刻发送至指定管理平台,但是由于工控防火墙产生的告警消息数量较多,且告警消息中大多为重复消息,因此工控防火墙实时向管理平台发送告警消息会给管理平台带来较大且不必要压力。
技术实现要素:
因此,本发明要解决的技术问题在于克服现有技术中的工控防火墙实时向管理平台发送告警消息给管理平台带来较大且不必要压力的缺陷,从而提供一种工控防火墙告警消息合并方法及装置。
本发明第一方面提供一种工控防火墙告警消息合并方法,包括:获取待存储告警消息,根据所述待存储告警消息获取所述待存储告警消息的存储索引号;根据预设的去重表与所述存储索引号判断所述去重表中是否存在与所述待存储告警消息相同的告警消息,所述去重表中包含至少一条链表;所述链表用于存储告警消息内容及存储的告警消息的出现次数;如果所述去重表中存在与所述待存储告警消息相同的告警消息,将与所述待存储告警消息相同的告警消息的出现次数加1;当所述去重表满足预设发送条件时,发送所述去重表中存储的告警消息及所述告警消息的出现次数。
可选地,根据所述待存储告警消息获取所述待存储告警消息的存储索引号的步骤包括:根据哈希函数计算所述待存储告警消息的哈希值;根据所述哈希值获取所述待存储告警消息的存储索引号。
可选地,如果所述去重表中不存在与所述待存储告警消息相同的告警消息,将所述待存储告警消息插入所述链表头部。
可选地,在所述将所述待存储告警消息插入所述链表头部的步骤之后,本发明提供的工控防火墙告警消息合并方法还包括:发送所述告警消息。
可选地,当所述去重表满足预设发送条件时,发送所述去重表中存储的告警消息及所述告警消息的出现次数的步骤,包括:当所述告警消息的出现次数达到所述第一预设值时,发送所述告警消息及所述告警消息的出现次数;将所述告警消息的出现次数清零。
可选地,在所述将所述待存储告警消息插入所述链表头部的步骤之后,所述发送所述告警消息的步骤之前,还包括:缓存所述待存储告警消息的存储地址。
可选地,如果所述去重表中存在与所述待存储告警消息相同的告警消息,将与所述待存储告警消息相同的告警消息的出现次数加1的步骤,包括:判断所述待存储告警消息是否为预设时间段内第一次出现;当所述待存储告警消息为预设时间段内第一次出现时,缓存所述待存储告警消息的存储地址,将与所述待存储告警消息相同的告警消息的出现次数加1。
可选地,当所述待存储告警消息不是预设时间段内第一次出现时,将与所述待存储告警消息相同的告警消息的出现次数加1。
可选地,当所述去重表满足预设发送条件时,发送所述去重表中存储的告警消息及所述告警消息的出现次数的步骤,包括:当获取所述待存储告警消息的时间达到第二预设值时,根据所述存储地址获取存储于所述存储地址下的告警消息,以及与所述告警消息相对应的出现次数;发送所述告警消息及各所述告警消息的出现次数;将所有所述告警消息的出现次数及获取所述待存储告警消息的时间清零;将缓存的所述待存储告警消息的存储地址清除。
本发明第二方面提供一种工控防火墙告警消息合并装置,包括:待存储告警消息获取模块,用于获取待存储告警消息,根据所述待存储告警消息获取所述待存储告警消息的存储索引号;告警消息比较模块,用于根据预设的去重表与所述存储索引号判断所述去重表中是否存在与所述待存储告警消息相同的告警消息,所述去重表中包含至少一条链表;所述链表用于存储告警消息内容及存储的告警消息的出现次数;告警消息合并模块,如果所述去重表中存在与所述待存储告警消息相同的告警消息,将与所述待存储告警消息相同的告警消息的出现次数加1;告警消息发送模块,当所述去重表满足预设发送条件时,用于发送所述去重表中存储的告警消息及所述告警消息的出现次数。
本发明第三方面提供一种计算机设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,从而执行如本发明第一方面提供的工控防火墙告警消息合并方法。
本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如发明第一方面提供的工控防火墙告警消息合并方法。
本发明技术方案,具有如下优点:
1.本发明提供的工控防火墙告警消息合并方法,通过去重表存储不同告警消息以及告警消息出现次数,在获取待存储告警消息后,先获取待存储告警消息的存储索引号,判断去重表中与索引号相对应的链表中是否存在与待存储告警消息相同的告警消息,如果存在,将与待存储告警消息相同的告警消息的出现次数加1,既记录了相同告警消息出现的次数,又避免了将同样的告警消息多次发送给告警消息管理平台带来不必要的压力,待去重表满足预设发送条件后,发送去重表中存储的告警消息及告警消息的出现次数,去重表满足发送条件后再发送告警消息及告警消息出现次数,与随时发送告警消息相比,告警消息管理平台无需随时接收告警消息,大大减小了告警消息管理平台的压力。
2.本发明提供的工控防火墙告警消息合并方法,当去重表中不存在与待存储告警消息相同的告警消息时,将待存储告警消息存于与待存储告警消息的索引号相对应的链表头部,便于后续收到待存储告警消息后查询相同的告警消息。
3.本发明提供的工控防火墙告警消息合并方法,对于去重表中不存在的告警消息,可以将待存储消息插入链表中后发送该待存储告警消息,由于去重表中不存在的告警消息是第一次出现,收到第一次出现的告警消息即刻发送,使用户可以及时收到新出现的告警消息。
4.本发明提供的工控防火墙告警消息合并方法,第一预设发送条件为告警消息的出现次数达到第一预设值,即,当告警消息的出现次数达到第一预设值时,发送告警消息及其出现次数,减少了重复告警消息的发送次数,减轻了告警消息管理平台不必要的压力。
5.本发明提供的工控防火墙告警消息合并方法,对于预设时间段内第一次出现的待存储告警消息,在将其插入去重表之后,缓存该待存储消息的存储地址,当达到预设发送条件后,只需根据缓存的存储地址查询并发送存储于存储地址下的告警消息即可,无需遍历全部去重表寻找待发送的告警消息,简化了发送告警消息的过程。
6.本发明提供的工控防火墙告警消息合并方法,第一预设发送条件为获取待存储告警消息的时间达到第二预设值,即,当获取存储告警消息的时间达到第二预设值时,根据存储地址获取并发送该时间段内出现的告警消息及其出现次数。以时间作为发送条件,告警消息管理平台无需随时接收告警消息,减轻了告警消息管理平台的压力。
7.本发明提供的工控防火墙告警消息合并装置,通过去重表存储不同告警消息以及告警消息出现次数,在获取待存储告警消息后,先获取待存储告警消息的存储索引号,判断去重表中与索引号相对应的链表中是否存在与待存储告警消息相同的告警消息,如果存在,将与待存储告警消息相同的告警消息的出现次数加1,既记录了相同告警消息出现的次数,又避免了将同样的告警消息多次发送给告警消息管理平台带来不必要的压力,待去重表满足预设发送条件后,发送去重表中存储的告警消息及告警消息的出现次数,去重表满足发送条件后再发送告警消息及告警消息出现次数,与随时发送告警消息相比,告警消息管理平台无需随时接收告警消息,大大减小了告警消息管理平台的压力。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中工控防火墙告警消息合并方法的一个具体示例的流程图;
图2为本发明实施例中去重表的原理框图;
图3-图9为本发明实施例中工控防火墙告警消息合并方法的具体示例的流程图;
图10为本发明实施例中工控防火墙告警消息合并装置的一个具体示例的原理框图;
图11为本发明实施例中计算机设备的原理框图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
工控防火墙在处理收到的报文过程中,对不符合用户规则的报文做相应的处理,并产生相应的告警信息,这些大量的告警消息需要汇总到指定管理平台去存储。但是由于工控防火墙产生的告警消息数量较多,且告警消息中大多为重复消息,因此工控防火墙实时向管理平台发送告警消息会给管理平台带来较大且不必要压力。为了减轻管理平台的压力,本发明实施例提供了一种工控防火墙告警消息合并方法,如图1所示,包括:
步骤s10:获取待存储告警消息,根据待存储告警消息获取待存储告警消息的存储索引号。在一具体实施例中,待存储告警消息的类型有多种,不同类型的待存储告警消息可以采用不同的方式提取其存储索引号。
步骤s20:根据预设的去重表与存储索引号判断去重表中是否存在与待存储告警消息相同的告警消息,去重表中包含至少一条链表;链表用于存储告警消息内容及存储的告警消息的出现次数。
在一具体实施例中,由于告警消息类型较多,例如包括访问控制列表(accesscontrollists,acl)告警、ip搜索(ipmac)告警、攻击检测告警、工业控制协议告警等,且对于不同类型的告警消息,在比较消息内容是否相同时,比较的参数也是不同的,因此可以为不同类型的告警消息分别建立一个预设去重表。图2为一个去重表的示意图,如图2所示,对于每一个去重表,一个存储索引号指向一条链表,一条链表中可以存储多个告警消息,在获取待存储告警消息的存储索引号后,遍历与存储索引号相对应的链表,根据预设的比较函数判断该链表中是否存在与待存储告警消息相同的告警消息,由于不同类型的告警消息在比较消息内容是否相同时,比较的参数也是不同的,因此需要分别为不同类型的去重表设定不同的比较函数。
如果去重表中存在与待存储告警消息相同的告警消息,执行步骤s30:
步骤s30:将与待存储告警消息相同的告警消息的出现次数加1。
步骤s40:判断去重表是否满足预设发送条件。当去重表满足预设发送条件时,执行步骤s50:
步骤s50:发送去重表中存储的告警消息及告警消息的出现次数。
本发明实施例提供的工控防火墙告警消息合并方法,通过去重表存储不同告警消息以及告警消息出现次数,在获取待存储告警消息后,先获取待存储告警消息的存储索引号,判断去重表中与索引号相对应的链表中是否存在与待存储告警消息相同的告警消息,如果存在,将与待存储告警消息相同的告警消息的出现次数加1,既记录了相同告警消息出现的次数,又避免了将同样的告警消息多次发送给告警消息管理平台带来不必要的压力,待去重表满足预设发送条件后,发送去重表中存储的告警消息及告警消息的出现次数,去重表满足发送条件后再发送告警消息及告警消息出现次数,与随时发送告警消息相比,告警消息管理平台无需随时接收告警消息,大大减小了告警消息管理平台的压力。
在一具体实施例中,在步骤s40之后,若去重表不满足预设发送条件,返回步骤s10的步骤,继续获取待存储告警消息,直到去重表满足预设发送条件完成告警消息的发送。
在一具体实施例中,当防火墙完成告警消息的发送后,返回步骤s10,继续获取待存储告警消息。
在一可选实施例中,如图3所示,上述步骤s10具体包括:
步骤s11:获取待存储告警消息,根据哈希函数计算待存储告警消息的哈希值。计算哈希值时,可以采用默认哈希函数进行计算,但是优选的,对于不同的去重表,可以设定不同的哈希函数计算某一类型的告警消息的哈希值。
步骤s12:根据哈希值获取待存储告警消息的存储索引号。在一具体实施例中,可以将哈希值的值定义为存储索引号,但是由于计算出的哈希值可以为任意值,为了避免去重表过于冗长,在本发明实施例中通过哈希值和预设的去重表的长度的商的余数计算存储索引号,例如,当哈希值的值为160,预设的去重表的长度为100,计算得到的存储索引号为60。
对待存储告警消息的存储索引号进行计算时,通过哈希函数进行计算只是其中一种实施方式,在具体实施例中,例如也可以通过二叉树遍历的方法遍历去重表中的全部内容,当出现与待存储告警消息相同的告警消息时,该告警消息的存储地址即为待存储告警消息的存储索引号,如果遍历去重表之后未找到与该待存储告警消息相同的告警消息,则将待存储告警消息插入去重表,此时待存储告警消息所在的位置即为其存储索引号。上述两种方法仅为两种具体的实施方式,对存储索引号的计算可根据实际需求采用更优、更适合的算法进行计算。
在一可选实施例中,如图1和图3所示,如果去重表中不存在与待存储告警消息相同的告警消息,则执行如下步骤:
步骤s60:将待存储告警消息插入链表头部。由于哈希函数是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值,这种转换是一种压缩映射,散列值的空间通常远小于输入的空间,因此不同的输入可能会散列成相同的输出,造成哈希冲突,为解决哈希冲突,本发明采用了链地址法,即,同一哈希值下可能存在多种内容不同的告警消息,因此需要建立链表存储哈希值相同但是内容不同的告警消息,当出现链表中不存在的告警消息时,将该告警消息插入链表头部,便于后续收到待存储告警消息后查询相同的告警消息。
在一可选实施例中,如图4所示,上述步骤s60之后,本发明实施例提供的工控防火墙告警消息合并方法还包括:
步骤s70:发送待存储告警消息。即,如果获取的待存储告警消息为第一次到来,在将该待存储告警消息插入链表头部后,将该告警消息发送至告警消息管理平台。
本发明实施例提供的工控防火墙告警消息合并方法,对于去重表中不存在的告警消息,可以将待存储消息插入链表中后发送该待存储告警消息,由于去重表中不存在的告警消息是第一次出现,收到第一次出现的告警消息即刻发送,使用户可以及时收到新出现的告警消息。
在一可选实施例中,上述步骤s40提出的预设发送条件分为两种:告警消息的出现次数达到第一预设值,和,获取待存储告警消息的时间达到第二预设值。当预设发送条件为告警消息的出现次数达到第一预设值时,如图5所示,上述步骤s40、步骤s50具体包括:
步骤s41:判断告警消息的出现次数是否达到第一预设值,第一预设值的值可以根据实际情况进行调整。在一具体实施例中,告警消息的出现次数达到第一预设值可以为所有告警消息的总出现次数达到第一预设值,也可以为某一告警消息的出现次数达到第一预设值。
当告警消息的出现次数未达到第一预设值时,返回上述步骤s10。
当告警消息的出现次数达到第一预设值时,执行如下步骤:
步骤s51:发送告警消息及告警消息的出现次数。在一具体实施例中,当预设发送条件为所有告警消息的总出现次数达到第一预设值时,将所有出现过的告警消息及其出现次数发送,当预设发送条件为某一告警消息的出现次数达到第一预设值时,将该告警消息发送。
步骤s52:将告警消息的出现次数清零。当预设发送条件为所有告警消息的总出现次数达到第一预设值时,将发送后的所有告警消息的出现次数清零。当预设发送条件为某一告警消息的出现次数达到第一预设值时,将发送后的某一告警消息的出现次数清零。
本发明实施例提供的工控防火墙告警消息合并方法,第一预设发送条件为告警消息的出现次数达到第一预设值,即,当告警消息的出现次数达到第一预设值时,发送告警消息及其出现次数,减少了重复告警消息的发送次数,减轻了告警消息管理平台不必要的压力。
当预设发送条件为获取待存储告警消息的时间达到第二预设值时,本发明实施例提供的工控防火墙告警消息合并方法还包括:
如图6所示,在上述步骤s60之后,步骤s70之前,本发明实施例提供的工控防火墙告警消息合并方法还包括:
步骤s80:缓存待存储告警消息的存储地址,即,对于第一次出现的告警消息,在将其插入链表头部后,缓存其存储地址,后续查询时,仅需根据缓存的存储地址即可获取第一次出现的告警消息。
本发明实施例提供的工控防火墙告警消息合并方法,对于预设时间段内第一次出现的待存储告警消息,在将其插入去重表之后,缓存该待存储告警消息的存储地址,当达到预设发送条件后,只需根据缓存的存储地址查询并发送存储于存储地址下的告警消息即可,无需遍历全部去重表寻找待发送的告警消息,简化了发送告警消息的过程。
如图7所示,上述步骤s30具体包括:
步骤s31:判断待存储告警消息是否为预设时间段内第一次出现。当预设发送条件为获取待存储告警消息的时间达到第二预设值时,对告警消息出现次数的统计为每隔一段时间进行一次统计,例如,对告警消息的出现次数可以从1:00开始每隔1h进行一次统计,对于告警消息a,即使其在1:00-2:00之间出现过多次,但是2:00-2:20一直未出现,直到2:21出现一次,在本发明实施例中称告警消息a在2:21的出现为预设时间段内第一次出现。
当待存储告警消息为预设时间段内第一次出现时,执行步骤s32。
步骤s32:缓存待存储告警消息的存储地址,将与待存储告警消息相同的告警消息的出现次数加1。以上述告警消息a为例,告警消息a在1:00-2:00已经出现过,因此去重表中已经有a的相关记载,当2:21再次出现a后,无需插入去重表,只需在原有的记载上将出现次数加1即可。缓存预设时间段内第一次出现的待存储告警消息的存储地址时,为方便后续查询,可以将存储地址缓存至预设链表中,后续查询时,只需遍历该预设链表即可获取预设时间段内出现的全部告警消息。
如图7所示,当待存储告警消息不是预设时间段内第一次出现时,执行步骤s33。
步骤s33:将与待存储告警消息相同的告警消息的出现次数加1。
如图8所示,预设发送条件为获取待存储告警消息的时间达到第二预设值时,区别于上述步骤s41、步骤s51、步骤s52,步骤s40、步骤s50包括:
步骤s42:判断获取待存储告警消息的时间是否达到第二预设值。在一具体实施例中,第二预设值的值可以根据实际需求进行调整,例如可上述步骤s31的举例中的第二预设值为1h。
当获取待存储告警消息的时间达到第二预设值时,执行如下步骤:
步骤s52:根据存储地址获取存储于存储地址下的告警消息,以及与告警消息相对应的出现次数,如上述步骤s32所述,若将预设时间段内第一次出现的待存储告警消息的存储地址缓存于预设链表中,只需遍历该预设链表接口获取该预设时间段内出现过的全部告警消息的存储地址,根据存储地址即可获得相应的告警消息及其出现次数。
步骤s53:发送告警消息及各告警消息的出现次数,此处所说的各告警消息的出现次数是指预设时间段内的出现次数。
步骤s54:将所有告警消息的出现次数及获取待存储告警消息的时间清零。
步骤s55:将缓存的待存储告警消息的存储地址清除。
本发明实施例提供的工控防火墙告警消息合并方法,第一预设发送条件为获取待存储告警消息的时间达到第二预设值,即,当获取存储告警消息的时间达到第二预设值时,根据存储地址获取并发送该时间段内出现的告警消息及其出现次数。以时间作为发送条件,告警消息管理平台无需随时接收告警消息,减轻了告警消息管理平台的压力。
在一可选实施例中,如图9所示,如果执行上述步骤s55之后,还执行步骤s56:将去重表内容清除,则在下一个时间段内获取到待存储告警消息并执行上述步骤s20判定去重表中存在与待存储告警消息相同的告警消息后,无需执行上述图7中的步骤s31和步骤s33,因为将去重表进行清除后,在下一个时间段内第一次出现的告警消息去重表中是不存在的,反之,若去重表中存在与待存储告警消息相同的告警消息,说明该待存储告警消息不是本时间段内第一次出现,无需再次判定。
实施例2
本实施例提供一种工控防火墙告警消息合并装置,如图10所示,包括:
待存储告警消息获取模块10,用于获取待存储告警消息,根据所述待存储告警消息获取所述待存储告警消息的存储索引号。详细描述见上述实施例1中对步骤s10的描述。
告警消息比较模块20,用于根据预设的去重表与所述存储索引号判断所述去重表中是否存在与所述待存储告警消息相同的告警消息,所述去重表中包含至少一条链表;所述链表用于存储告警消息内容及存储的告警消息的出现次数。详细描述见上述实施例1中对步骤s20的描述。
告警消息合并模块,如果所述去重表中存在与所述待存储告警消息相同的告警消息,将与所述待存储告警消息相同的告警消息的出现次数加1。详细描述见上述实施例1中对步骤s30的描述。
告警消息发送模块,当所述去重表满足预设发送条件时,用于发送所述去重表中存储的告警消息及所述告警消息的出现次数。详细描述见上述实施例1中对步骤s40、步骤s50的描述。
本发明提供的工控防火墙告警消息合并装置,通过去重表存储不同告警消息以及告警消息出现次数,在获取待存储告警消息后,先获取待存储告警消息的存储索引号,判断去重表中与索引号相对应的链表中是否存在与待存储告警消息相同的告警消息,如果存在,将与待存储告警消息相同的告警消息的出现次数加1,既记录了相同告警消息出现的次数,又避免了将同样的告警消息多次发送给告警消息管理平台带来不必要的压力,待去重表满足预设发送条件后,发送去重表中存储的告警消息及告警消息的出现次数,去重表满足发送条件后再发送告警消息及告警消息出现次数,与随时发送告警消息相比,告警消息管理平台无需随时接收告警消息,大大减小了告警消息管理平台的压力。
实施例3
本发明实施例提供一种计算机设备,如图11所示,该计算机设备主要包括一个或多个处理器31以及存储器32,图11中以一个处理器31为例。
该计算机设备还可以包括:输入装置33和输出装置34。
处理器31、存储器32、输入装置33和输出装置34可以通过总线或者其他方式连接,图11中以通过总线连接为例。
处理器31可以为中央处理器(centralprocessingunit,cpu)。处理器31还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。存储器32可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据工控防火墙告警消息合并装置的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器32可选包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至工控防火墙告警消息合并装置。输入装置33可接收用户输入的计算请求(或其他数字或字符信息),以及产生与工控防火墙告警消息合并装置有关的键信号输入。输出装置34可包括显示屏等显示设备,用以输出计算结果。
实施例4
本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的工控防火墙告警消息合并方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
1.一种工控防火墙告警消息合并方法,其特征在于,包括:
获取待存储告警消息,根据所述待存储告警消息获取所述待存储告警消息的存储索引号;
根据预设的去重表与所述存储索引号判断所述去重表中是否存在与所述待存储告警消息相同的告警消息,所述去重表中包含至少一条链表;所述链表用于存储告警消息内容及存储的告警消息的出现次数;
如果所述去重表中存在与所述待存储告警消息相同的告警消息,将与所述待存储告警消息相同的告警消息的出现次数加1;
当所述去重表满足预设发送条件时,发送所述去重表中存储的告警消息及所述告警消息的出现次数。
2.根据权利要求1所述的工控防火墙告警消息合并方法,其特征在于,所述根据所述待存储告警消息获取所述待存储告警消息的存储索引号的步骤包括:
根据哈希函数计算所述待存储告警消息的哈希值;
根据所述哈希值获取所述待存储告警消息的存储索引号。
3.根据权利要求1所述的工控防火墙告警消息合并方法,其特征在于,
如果所述去重表中不存在与所述待存储告警消息相同的告警消息,将所述待存储告警消息插入所述链表头部。
4.根据权利要求3所述的工控防火墙告警消息合并方法,其特征在于,在所述将所述待存储告警消息插入所述链表头部的步骤之后,还包括:
发送所述待存储告警消息。
5.根据权利要求1-4任一项所述的工控防火墙告警消息合并方法,其特征在于,所述当所述去重表满足预设发送条件时,发送所述去重表中存储的告警消息及所述告警消息的出现次数的步骤,包括:
当所述告警消息的出现次数达到第一预设值时,发送所述告警消息及所述告警消息的出现次数;
将所述告警消息的出现次数清零。
6.根据权利要求4所述的工控防火墙告警消息合并方法,其特征在于,在所述将所述待存储告警消息插入所述链表头部的步骤之后,所述发送所述告警消息的步骤之前,还包括:
缓存所述待存储告警消息的存储地址。
7.根据权利要求6所述的工控防火墙告警消息合并方法,其特征在于,所述如果所述去重表中存在与所述待存储告警消息相同的告警消息,将与所述待存储告警消息相同的告警消息的出现次数加1的步骤,包括:
判断所述待存储告警消息是否为预设时间段内第一次出现;
当所述待存储告警消息为预设时间段内第一次出现时,缓存所述待存储告警消息的存储地址,将与所述待存储告警消息相同的告警消息的出现次数加1。
8.根据权利要求7所述的工控防火墙告警消息合并方法,其特征在于,
当所述待存储告警消息不是预设时间段内第一次出现时,将与所述待存储告警消息相同的告警消息的出现次数加1。
9.根据权利要求6-8任一项所述的工控防火墙告警消息合并方法,其特征在于,所述当所述去重表满足预设发送条件时,发送所述去重表中存储的告警消息及所述告警消息的出现次数的步骤,包括:
当获取所述待存储告警消息的时间达到第二预设值时,根据所述存储地址获取存储于所述存储地址下的告警消息,以及与所述告警消息相对应的出现次数;
发送所述告警消息及各所述告警消息的出现次数;
将所有所述告警消息的出现次数及获取所述待存储告警消息的时间清零;
将缓存的所述待存储告警消息的存储地址清除。
10.一种计算机设备,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,从而执行如权利要求1-9中任一项所述的工控防火墙告警消息合并方法。
技术总结