CN117539665B - 针对告警事件的高效处理方法以及计算机可读存储介质 - Google Patents

针对告警事件的高效处理方法以及计算机可读存储介质 Download PDF

Info

Publication number
CN117539665B
CN117539665B CN202410030148.3A CN202410030148A CN117539665B CN 117539665 B CN117539665 B CN 117539665B CN 202410030148 A CN202410030148 A CN 202410030148A CN 117539665 B CN117539665 B CN 117539665B
Authority
CN
China
Prior art keywords
alarm
processing
data
event
alarm event
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410030148.3A
Other languages
English (en)
Other versions
CN117539665A (zh
Inventor
廖万里
金卓
赵善维
莫俊能
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Kingsware Information Technology Co Ltd
Original Assignee
Zhuhai Kingsware Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Kingsware Information Technology Co Ltd filed Critical Zhuhai Kingsware Information Technology Co Ltd
Priority to CN202410030148.3A priority Critical patent/CN117539665B/zh
Publication of CN117539665A publication Critical patent/CN117539665A/zh
Application granted granted Critical
Publication of CN117539665B publication Critical patent/CN117539665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了针对告警事件的高效处理方法以及计算机可读存储介质,所述方法包括以下步骤:对采集的告警事件进行归一化和映射,并打上唯一性标识;将具有相同标识的告警事件路由到对应的计算节点;批量取出预设数量的告警事件,分流到对应的告警事件处理线程中;对每一个告警事件处理线程的告警事件,进行告警事件丰富和维护期判断,最后放入缓存散列表;对缓存散列表的告警事件,判断是否为恢复事件和是否需要事件压缩,完成后写入数据库。本发明通过采用预处理、分布式处理和多线程并行计算等技术手段,能够高效地处理具有相同标识的事件;通过并行计算和分布式处理,可以提高处理速度和吞吐量,满足大规模数据处理和实时数据处理的需求。

Description

针对告警事件的高效处理方法以及计算机可读存储介质
技术领域
本发明涉及数据处理领域,特别涉及针对告警事件的高效处理方法以及计算机可读存储介质。
背景技术
随着大数据和实时数据处理的兴起,处理具有相同标识的事件并保持时间先后顺序成为了一个重要的技术挑战。在许多应用场景中,事件的特性要求对同类事件进行有序处理,无论经过多少个处理层,都需要保持它们的时间先后顺序。例如,在金融领域,交易数据的处理需要按照时间顺序进行,以确保正确的交易顺序和一致性。在物联网领域,传感器数据的处理也需要保持时间顺序,以便准确分析和响应事件。
传统的事件处理方法往往面临处理效率低下和时间顺序保持困难的问题。传统的串行处理方式无法满足大规模数据处理的需求,而并行处理又可能导致时间顺序混乱。
因此,需要一种高效的方法和装置来处理具有相同标识的事件,并保持它们的时间先后顺序。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供针对告警事件的高效处理方法,该方法通过将事件分为多个阶段,并利用消息队列、预处理、分布式处理和多线程并行计算等技术手段,实现了对同类事件的高效处理和时间顺序的保持。预处理阶段对事件进行归一化和映射,分布式处理阶段根据事件关键字进行一致性哈希路由,事件处理阶段一进行分流计算,事件处理阶段二进行事件丰富和维护期判断,事件处理阶段三进行恢复事件和事件压缩处理。通过这些阶段的处理,能够高效地处理具有相同标识的事件,并保持它们的时间段的处理,能够高效地处理具有相同标识的事件,并保持它们的时间先后顺序。
本发明的目的通过以下的技术方案实现:
针对告警事件的高效处理方法,包括以下步骤:
预处理阶段:对采集的告警事件进行归一化和映射,并将原始告警事件映射到告警事件中心对应字段,根据预设的告警事件关键字,将采集的告警事件打上唯一性标识;
分布式处理阶段:采用一致性哈希算法,将具有相同标识的告警事件路由到对应的计算节点,所述计算节点包括消费端点和消息队列,消费端点专注于消费,消息队列负责告警事件的路由计算;由此实现了告警事件并行处理,也保持了告警事件的时序一致性;
告警事件处理阶段一:经过预处理的数据,批量取出预设数量的告警事件,并根据预设的告警事件关键字使用一致性哈希算法将告警事件分流到对应的告警事件处理线程中,确保同类数据被分配到同一个告警事件处理线程中,完成告警事件的分流计算;
告警事件处理阶段二:对每一个告警事件处理线程的告警事件,进行告警事件丰富和维护期判断,最后将当前批次的所有告警事件按序号排序后放入缓存散列表;
告警事件处理阶段三:对缓存散列表的告警事件,判断是否为恢复事件和是否需要事件压缩,完成后将告警事件写入数据库。
预处理阶段中,所述告警事件由采集器进行采集,并将告警事件加入消息队列等待后续消费处理。
预处理阶段中,所述归一化过程中,对事件记录中的数据范围进行统一的配置,使得在对事件进行归一化时,可以根据自定义的配置范围进行归一化处理,消除不同来源的事件的数据变量差异,使得不同来源的事件数据可根据特定的变量范围进行归一化处理,从而形成统一的事件接入模型。
告警事件处理阶段二中,所述事件丰富包括丰富源数据和规则数据的缓存,使用多线程异步并行方式遍历事件,使用规则引擎解析丰富规则并匹配丰富源数据缓存中的数据,将丰富的数据赋值给事件属性。
告警事件处理阶段二中,所述维护期判断,通过使用规则引擎解析维护期规则来判断告警事件是否在维护期间,如果告警事件在维护期,则直接存档;如果告警事件不在维护期,则继续后续处理。
所述告警事件处理阶段三对缓存散列表的告警事件,是按照时间先后顺序进行串行处理,遍历告警事件缓存散列表,使用规则引擎解析恢复规则和压缩规则,判断告警事件是否为恢复事件:若是,则将告警事件存档;若否,则进一步判断是否需要进行事件压缩,若满足压缩则将告警事件存档,若不满足则将告警事件写入数据库。
在告警事件中,所述归一化的过程依赖告警模型参数配置,告警模型参数配置在启动时,存储到内存数据库Redis中,用于数据处理,具体过程如下:
1)实时输入的告警事件消息,携带告警类型【alarm_type】字符串用于体现告警的触发渠道,通过【alarm_type】字符串的实际值(如‘prometheus’)匹配内存中的告警模型数据,匹配每一个告警模型数据中均携带的归一化字段【type】数据(如‘prometheus’);
2)对于匹配命中的告警事件数据,将自动在内存中创建对应的数据集合队列,队列命名【queue_name】将根据【type】字段和默认后缀自动创建(如‘prometheus_queue’),将实时告警事件消息存储至该队列中;该处理方式可对不同来源、不同类型的海量告警数据进行分类归一化处理,归一处理成多个队列,提升在告警接受、告警预处理阶段的效率,同时保留了告警分类的信息;
3)同时,依据队列命名【queue_name】字段对告警事件处理进行分布式路由,对告警数据进行分布式处理;对于未能匹配到告警模型的告警事件消息,依据缺省的告警模型,将告警事件消息存储至缺省队列【default_queue】中,进行下一步的告警事件处理;
4)对于独立的告警事件处理队列(如‘prometheus_queue’),依据实时告警中携带的触发时间【alarm_time】字符串进行时间流分区处理,按照告警模型中携带的timeslot数据(如‘10秒’),对实时告警数据进行时间流分区,将实时告警数据按照时间维度划分成数据流(如‘20231201103000_10s_timeslot’);同类型、时间间隔接近的实时告警数据将进入到对应的时间流分区中,该处理方式可高效地将相邻时间内触发的告警进行进一步的归一化处理,同时不改变告警数据的时间先后顺序,在高效应对海量告警数据的同时,保证数据的准确性;
5)每一个时间流分区中的实时告警数据,将根据告警事件处置中的丰富规则、维护期规则进行持续处理;
针对不同模型,自定义设置告警的归一化字段【alarm_type】组成,从而生成告警事件数据的归一化标识,消除不同来源的告警数据的差异,并作为唯一标识代表告警事件;
告警事件数据进行归一化处理的过程,将告警数据第一次归一化处理成数据队列,第二次归一化处理成数据队列中的时间流。
所述分布式处理阶段,具体工作过程如下:
(1)经过归一化处理的告警事件消息,将按照逻辑划分成多个数据队列(如‘prometheus_queue’),在创建数据队列时,会调用随机数生成算法SecureRandom()生成唯一标识数据队列的序号【queue_id】,基于该序号将保存至每一条告警事件消息中,标记每一条告警事件的队列;
(2)对告警事件消息中的唯一性标识,即归一化标识,调用一致性哈希算法Hash(),根据部署的节点数量进行哈希处理,根据哈希结果路由告警消息到对应的分布式处理节点上进行处理。
所述告警事件处理阶段一,具体工作过程如下:
A、对于经过分布式处理后的告警事件数据,在每个分布式节点上将进一步进行告警事件处理;每一个分布式处理节点,依据告警模型中【timeslot】参数,对应单独的线程(如‘20231201103000_10s_timeslot’);
B、依据路由到该节点上的告警事件数据,启动对应的timeslot线程,线程将告警处理逻辑配置读取至线程内存中,并对告警数据进行对应的逻辑判断和处理;每个线程只对其对应的时间流中的告警数据进行处理;线程的内存中记录着其对应的timeslot参数,并在内存中,对接收到的告警事件数据中的【alarm_time】参数进行匹配,只有匹配上的告警数据才会被线程进行处理;
C、匹配完成的告警事件数据以及线程,将根据内存中的告警处理规则配置,针对告警事件的业务需求,对告警事件数据有多种处理逻辑,包括告警压缩、告警升降级、告警维护期判断、告警聚合等业务处理逻辑,并最终将处理后的告警消息,写入到数据库中;满足实时告警策略的告警将被同时写入到Ignite内存数据库以及ElasticSearch持久化数据库中,而满足历史告警策略的告警将被写入到ElasticSearch数据库中,进行持久化存储;
D、告警事件数据采用多线程异步并行计算,对告警处理逻辑,采用多线程并行计算,每一种告警处理逻辑对应节点上的独立处理线程,该阶段不仅提高了处理速度,同时确保了事件的有序性;处理完成后,经过字段转换和映射,事件按序号排序写入数据库,为后续处理提供有序的数据。
所述告警事件处理阶段二,具体工作过程如下:
a、在对告警事件数据进行处理时,针对单条告警事件数据,将依据数据中的关键信息(如【alarm_ip】、【alarm_message】、【alarm_time】等),去轮询匹配线程内存中的告警处理规则,通过关键信息的匹配,获取告警事件处理的处理ID【rule_id】、处理动作【rule_action】信息,并存储至内存中的告警事件消息体中;
b、针对告警丰富处理规则,依据【rule_action】信息中的动作制定的查询动作,去查询CMDB数据库中的表;同时,将基于告警消息体中的关键数据,去过滤CMDB数据表中的记录,获得唯一的表记录,并将表记录的信息项,写入到告警事件的消息体中,完成丰富信息的获取;
c、完成告警丰富信息的获取后,同时记录当前的处理结果以及处理时间,补充到告警事件的消息体中,并写入到ignite内存数据库以及ElasticSearch持久化数据库中;
d、针对告警维护期规则,线程将读取内存中的维护期配置信息,获取告警处理规则中的【start_time】和【end_time】字段,并计算出时间差;
e、基于计算出来的时间差,匹配对应的timeslot信息,确定对应时间段内的timeslot列表,并将对应timeslot时间流内的告警消息进行处理,写入到ElasticSearch持久化数据中。
同时,本发明提供:
一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一段程序,所述程序由所述处理器加载并执行以实现上述针对告警事件的高效处理方法。
一种计算机可读存储介质,所述存储介质中存储有至少一段程序,所述程序由处理器加载并执行以实现上述针对告警事件的高效处理方法。
本发明与现有技术相比,具有如下优点和有益效果:
1、高效处理能力:通过采用预处理、分布式处理和多线程并行计算等技术手段,本发明技术方案能够高效地处理具有相同标识的事件。通过并行计算和分布式处理,可以提高处理速度和吞吐量,满足大规模数据处理和实时数据处理的需求。
2、时间顺序保持:本发明技术方案能够保持具有相同标识的事件的时间先后顺序。通过预处理阶段的排序和分流计算,以及事件处理阶段的串行运行,确保同类事件按照其发生的时间顺序进行处理,保持了事件的时间顺序一致性。
3、灵活性和可扩展性:本发明技术方案采用了分布式处理和多线程并行计算的方式,具有良好的灵活性和可扩展性。可以根据实际需求增加计算节点和线程数量,以适应不断增长的数据处理需求,同时保持高效的处理能力。
4、准确性和一致性:通过预处理阶段的数据归一化和映射,以及事件丰富和维护期判断阶段的规则引擎解析,本发明技术方案能够提高数据的准确性和一致性。通过丰富事件属性和判断维护期,确保处理后的数据符合事件中心规范,并满足特定的业务需求。
5、可靠性和容错性:本发明技术方案采用了消息队列作为事件的中间存储,具有较高的可靠性和容错性。即使在处理过程中出现故障或中断,事件数据仍然可以安全地存储在消息队列中,待恢复后继续处理,确保数据不会丢失。
6、可扩展性和适应性:本发明技术方案具有良好的可扩展性和适应性。通过采用分布式处理和多线程并行计算的方式,可以根据实际需求增加计算节点和线程数量,以适应不断增长的数据处理需求。同时,该方案可以灵活适应不同的业务场景和数据类型,通过配置不同的规则和参数,实现定制化的事件处理流程。
综上所述,本发明技术方案带来了高效处理能力、时间顺序保持、灵活性和可扩展性、准确性和一致性,以及可靠性和容错性等有益效果。这些效果使得该技术方案在处理具有相同标识的事件时具有广泛的应用前景,并能够满足大数据处理和实时数据处理的需求。
附图说明
图1为本发明所述告警事件唯一标识生成过程示意图。
图2为本发明所述分布式处理阶段的流程图。
图3为本发明所述告警事件处理阶段一的流程图。
图4为本发明所述告警事件处理阶段二的流程图。
图5为本发明所述告警事件处理阶段三的流程图。
图6为本发明所述告警归一化标识【alarm_type】配置样例的结构图。
图7为本发明所述告警归一化处理过程示意图。
图8为本发明所述告警分布式处理过程示意图。
图9为本发明所述多线程处理逻辑示意图。
图10为本发明所述告警丰富和维护期处理示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
针对告警事件的高效处理方法,包括以下步骤:
1、告警事件入消息队列1:通过采集器采集告警事件,并将其入消息队列等待后续消费处理。
2、告警事件预处理:消费原始采集到的告警事件,根据告警事件中心规范对数据进行归一化,并将原始告警事件映射到告警事件中心对应字段。
归一化过程中,对告警事件记录中的数据范围进行统一的配置,使得在对告警事件进行归一化时,可以根据自定义的配置范围进行归一化处理,消除不同来源的告警事件的数据变量差异,使得不同来源的告警事件数据可根据特定的变量范围进行归一化处理,从而形成统一的告警事件接入模型,并完成预处理的步骤。
如图1,从消息队列1中批量获取一定数量的告警事件,并按顺序打上递增序号标签。使用多线程异步并行方式对这批告警事件进行字段转换、字段映射,并根据预设的告警事件关键字打上唯一性标识。等待该批次告警事件全部处理结束后,合并并按序号排序。预处理完成后,输出符合告警事件中心规范的数据,并将数据再次入消息队列2,以供后续处理。
3、如图2,分布式处理:由于预处理阶段已经打上了唯一性标识,消息队列2根据一致性哈希算法将告警事件路由到对应的计算端点,消费端点专注于消费,消息队列负责告警事件的路由计算。
4、如图3,告警事件处理阶段一:该阶段对告警事件进行分流计算。消费消息队列2中经过预处理的数据,批量取出一定数量的告警事件,并根据预设的告警事件关键字使用一致性哈希算法将告警事件分流到对应的线程中,确保同类数据被分配到同一个线程中,以供后续处理。
5、如图4,告警事件处理阶段二:首先进行事件丰富,包括丰富源数据和规则数据的缓存。使用多线程异步并行方式遍历告警事件,使用规则引擎解析丰富规则并匹配丰富源数据缓存中的数据,将丰富的数据赋值给事件属性。其次进行维护期判断,包括维护期规则数据的缓存。使用规则引擎解析维护期规则来判断告警事件是否在维护期间,如果告警事件在维护期,则直接存档;如果告警事件不在维护期,则继续后续处理。该阶段处理完成后,将当前批次的所有告警事件按序号排序后放入缓存散列表,以供后续处理。
6、如图5,告警事件处理阶段三:该阶段的告警事件处理需要按照时间先后顺序进行串行运行。主要处理动作包括判断是否为恢复事件和事件压缩。前置动作包括恢复规则和压缩规则的缓存。遍历告警事件缓存散列表,使用规则引擎解析恢复规则和压缩规则,判断告警事件是否为恢复事件,以及是否需要进行事件压缩。该阶段处理完成后,将告警事件写入内存数据库,结束处理流程。
通过以上步骤,能够高效处理具有相同标识的告警事件,并保持其时间先后顺序。这种处理方式适用于需要对同类告警事件进行有序处理的场景,保证了告警事件处理的效率和准确性。
本实施例关键点如下:
1、预处理阶段实现了对告警事件数据的归一化。允许根据自定义的范围进行一致性处理,消除了不同来源告警事件数据的变量差异。
归一化过程中,对告警事件记录中的数据范围进行统一的配置,使得在对告警事件进行归一化时,可以根据自定义的配置范围进行归一化处理,消除不同来源的告警事件的数据变量差异,使得不同来源的告警事件数据可根据特定的变量范围进行归一化处理,从而形成统一的告警事件接入模型。
在告警事件中,归一化的过程依赖告警模型参数配置,告警模型参数配置在启动时,存储到内存数据库Redis中,用于数据处理,具体过程如下:
1)实时输入告警事件消息,携带告警类型【alarm_type】字符串用于体现告警的触发渠道,通过【alarm_type】字符串的实际值(如‘prometheus’)匹配内存中的告警模型数据,匹配每一个告警模型数据中均携带的归一化字段【type】数据(如‘prometheus’)。
2)对于匹配命中的告警事件数据,自动在内存中创建对应的数据集合队列,队列命名【queue_name】将根据【type】字段和默认后缀自动创建(如‘prometheus_queue’),将实时告警事件消息存储至该队列中。该处理方式可对不同来源、不同类型的海量告警数据进行分类归一化处理,归一处理成多个队列,提升告警接受、告警预处理阶段的效率,同时保留了告警分类的信息。
3)同时,依据【queue_name】字段对告警事件处理进行分布式路由,对告警数据进行分布式处理,详细的分布式处理过程将在对应章节描述。对于未能匹配到告警模型的告警事件消息,依据缺省的告警模型,将告警事件消息存储至缺省队列【default_queue】中,进行下一步的告警事件处理。
4)对于独立的告警事件处理队列(如‘prometheus_queue’),依据实时告警中携带的触发时间【alarm_time】字符串进行时间流分区处理,按照告警模型中携带的timeslot数据(如‘10秒’),对实时告警数据进行时间流分区,将实时告警数据按照时间维度划分成数据流(如‘20231201103000_10s_timeslot’)。同类型、时间间隔接近的实时告警数据将进入到对应的时间流分区中,该处理方式,可高效地将相邻时间内触发的告警进行进一步的归一化处理,同时不改变告警数据的时间先后顺序,在高效应对海量告警数据的同时,保证数据的准确性。
5)每一个时间流分区中的实时告警数据,将根据告警事件处置中的丰富规则、维护期规则进行持续处理。丰富规则和维护期规则处理,将在对应章节中进行描述。
针对不同模型,如图6所示,自定义设置告警的归一化字段【alarm_type】组成,从而生成告警事件数据的归一化标识,消除不同来源的告警数据的差异,并作为唯一标识代表告警事件。
如图7所示,事件告警数据进行归一化处理的过程,将告警数据第一次归一化处理成数据队列,第二次归一化处理成数据队列中的时间流。
2、分布式处理采用一致性哈希算法,将具有相同标识的告警事件高效地路由到对应的计算节点。这不仅实现了并行处理,也保持了告警事件的时序一致性。该设计充分利用分布式计算的优势,提高了处理效率。
1)经过归一化处理的告警事件消息,将按照逻辑划分成多个数据队列(如‘prometheus_queue’),在创建数据队列时,会调用随机数生成算法SecureRandom()生成唯一标识数据队列的序号【queue_id】,基于该序号将保存至每一条告警事件消息中,标记每一条告警的队列。
2)对告警事件消息中的唯一性标识,即归一化标识,并调用一致性哈希算法Hash(),根据部署的节点数量,进行哈希处理,根据哈希结果路由告警消息到对应的分布式处理节点上进行处理。由于在哈希处理前已经对每一条告警事件消息补充数据队列信息,在分布式处理的同时,依然能够准确保留告警事件的归一化处理结果,同时以来分布式处理的优势,提升告警事件的处理效率。
如图8所示,对告警事件数据的唯一性标识进行一致性哈希,根据哈希结果路由到对应的分布式计算节点进行处理。而对于告警事件数据进行哈希处理后,数据的时间先后顺序并未改变,数据队列信息未改变。
3、如图9,多线程并行计算的方式进一步加速了整个处理流程。采用多线程技术,可以同时处理多个告警事件,从而提高吞吐量。这种设计既保证了处理速度,也满足了对时间先后顺序的要求。
1)对于经过分布式处理后的告警事件数据,在每个分布式节点上将进一步进行告警事件处理。每一个分布式处理节点,依据告警模型中【timeslot】参数,对应单独的线程(如‘20231201103000_10s_timeslot’)。
2)依据路由到该节点上的告警事件数据,启动对应的timeslot线程,线程将告警处理逻辑配置读取至线程内存中,并对告警数据进行对应的逻辑判断和处理。每个线程只对其对应的时间流中的告警数据进行处理。线程的内存中记录着其对应的timeslot参数,并在内存中,对接收到的告警事件数据中的【alarm_time】参数进行匹配,只有匹配上的告警数据才会被线程进行处理。
3)匹配完成的告警事件数据以及线程,将根据内存中的告警处理规则配置,针对告警事件的业务需求,对告警事件数据有多种处理逻辑,包括告警压缩、告警升降级、告警维护期判断、告警聚合等业务处理逻辑,并最终将处理后的告警消息,写入到数据库中。满足实时告警策略的告警将被同时写入到Ignite内存数据库以及ElasticSearch持久化数据库中,而满足历史告警策略的告警将被写入到ElasticSearch数据库中,进行持久化存储。
4)告警事件数据采用多线程异步并行计算,对告警处理逻辑,采用多线程并行计算,每一种告警处理逻辑对应节点上的独立处理线程,该阶段不仅提高了处理速度,同时确保了告警事件的有序性。处理完成后,经过字段转换和映射,告警事件按序号排序写入数据库,为后续处理提供有序的数据。
4、如图10,本发明通过规则引擎实现了告警事件的丰富和维护期判断。在告警事件处理阶段二,通过丰富规则和规则引擎的匹配,告警事件得到了更为详尽的信息。同时,维护期规则的应用实现了对告警事件在维护期间的判断,有效区分了需要存档和继续处理的告警事件,确保了数据的准确性和一致性。
1)在对告警事件数据进行处理时,针对单条告警事件数据,将依据数据中的关键信息(如【alarm_ip】、【alarm_message】、【alarm_time】等),去轮询匹配线程内存中的告警处理规则,通过关键信息的匹配,获取告警事件处理的处理ID【rule_id】、处理动作【rule_action】等信息,并存储至内存中的告警事件消息体中。
2)针对告警丰富处理规则,依据【rule_action】信息中的动作制定的查询动作,去查询CMDB数据库中的表。同时,将基于告警消息体中的关键数据,去过滤CMDB数据表中的记录,获得唯一的表记录,并将表记录的信息项,写入到告警事件的消息体中,完成丰富信息的获取。
3)完成告警丰富信息的获取后,同时记录当前的处理结果以及处理时间,补充到告警事件的消息体中,并写入到ignite内存数据库以及ElasticSearch持久化数据库中。
4)针对告警维护期规则,线程将读取内存中的维护期配置信息,获取告警处理规则中的【start_time】和【end_time】字段,并计算出时间差。
5)基于计算出来的时间差,匹配对应的timeslot信息,确定对应时间段内的timeslot列表,并将对应timeslot时间流内的告警消息进行处理,写入到ElasticSearch持久化数据中。
同时,本实施例提供:
一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一段程序,所述程序由所述处理器加载并执行以实现上述针对告警事件的高效处理方法。
一种计算机可读存储介质,所述存储介质中存储有至少一段程序,所述程序由处理器加载并执行以实现上述针对告警事件的高效处理方法。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (7)

1.针对告警事件的高效处理方法,其特征在于,包括以下步骤:
预处理阶段:对采集的告警事件进行归一化和映射,并将原始告警事件映射到告警事件中心对应字段,根据预设的告警事件关键字,将采集的告警事件打上唯一性标识;
所述归一化的过程依赖告警模型参数配置,告警模型参数配置在启动时,存储到内存数据库Redis中,用于数据处理,具体过程如下:
1)实时输入的告警事件消息,携带告警类型alarm_type字符串用于体现告警的触发渠道,通过alarm_type字符串的实际值匹配内存中的告警模型数据,匹配每一个告警模型数据中均携带的归一化字段type数据;
2)对于匹配命中的告警事件数据,将自动在内存中创建对应的数据集合队列,队列命名queue_name将根据type字段和默认后缀自动创建,将实时告警事件消息存储至该队列中;如此处理可对不同来源、不同类型的海量告警数据进行分类归一化处理,归一处理成多个队列,提升在告警接受、告警预处理阶段的效率,同时保留了告警分类的信息;
3)同时,依据队列命名queue_name字段对告警事件处理进行分布式路由,对告警数据进行分布式处理;对于未能匹配到告警模型的告警事件消息,依据缺省的告警模型,将告警事件消息存储至缺省队列default_queue中,进行下一步的告警事件处理;
4)对于独立的告警事件处理队列,依据实时告警中携带的触发时间alarm_time字符串进行时间流分区处理,按照告警模型中携带的timeslot数据,对实时告警数据进行时间流分区,将实时告警数据按照时间维度划分成数据流;同类型、时间间隔接近的实时告警数据将进入到对应的时间流分区中,如此处理可高效地将相邻时间内触发的告警进行进一步的归一化处理,同时不改变告警数据的时间先后顺序;
5)每一个时间流分区中的实时告警数据,将根据告警事件处置中的丰富规则、维护期规则进行持续处理;
针对不同模型,自定义设置告警的归一化字段alarm_type组成,从而生成告警事件数据的归一化标识,消除不同来源的告警数据的差异,并作为唯一标识代表告警事件;
告警事件数据进行归一化处理的过程,将告警数据第一次归一化处理成数据队列,第二次归一化处理成数据队列中的时间流;分布式处理阶段:采用一致性哈希算法,将具有相同标识的告警事件路由到对应的计算节点,所述计算节点包括消费端点和消息队列,消费端点专注于消费,消息队列负责告警事件的路由计算;由此实现了告警事件并行处理,也保持了告警事件的时序一致性;
告警事件处理阶段一:经过预处理的数据,批量取出预设数量的告警事件,并根据预设的告警事件关键字使用一致性哈希算法将告警事件分流到对应的告警事件处理线程中,确保同类数据被分配到同一个告警事件处理线程中,完成告警事件的分流计算;
告警事件处理阶段二:对每一个告警事件处理线程的告警事件,进行告警事件丰富和维护期判断,最后将当前批次的所有告警事件按序号排序后放入缓存散列表;
所述告警事件处理阶段二,具体工作过程如下:
a、在对告警事件数据进行处理时,针对单条告警事件数据,将依据数据中的关键信息,去轮询匹配线程内存中的告警处理规则,通过关键信息的匹配,获取告警事件处理的处理ID rule_id、处理动作rule_action信息,并存储至内存中的告警事件消息体中;
b、针对告警丰富处理规则,依据rule_action信息中的动作制定的查询动作,去查询CMDB数据库中的表;同时,将基于告警消息体中的关键数据,去过滤CMDB数据表中的记录,获得唯一的表记录,并将表记录的信息项,写入到告警事件的消息体中,完成丰富信息的获取;
c、完成告警丰富信息的获取后,同时记录当前的处理结果以及处理时间,补充到告警事件的消息体中,并写入到ignite内存数据库以及ElasticSearch持久化数据库中;
d、针对告警维护期规则,线程将读取内存中的维护期配置信息,获取告警处理规则中的起始时间start_time和结束时间end_time字段,并计算出时间差;
e、基于计算出来的时间差,匹配对应的timeslot信息,确定对应时间段内的timeslot列表,并将对应timeslot时间流内的告警消息进行处理,写入到ElasticSearch持久化数据中;
告警事件处理阶段三:对缓存散列表的告警事件,判断是否为恢复事件和是否需要事件压缩,完成后将告警事件写入数据库;
所述告警事件处理阶段三对缓存散列表的告警事件,是按照时间先后顺序进行串行处理,遍历告警事件缓存散列表,使用规则引擎解析恢复规则和压缩规则,判断告警事件是否为恢复事件:若是,则将告警事件存档;若否,则进一步判断是否需要进行事件压缩,若满足压缩则将告警事件存档,若不满足则将告警事件写入数据库。
2.根据权利要求1所述针对告警事件的高效处理方法,其特征在于,预处理阶段中,所述归一化过程中,对事件记录中的数据范围进行统一的配置,使得在对事件进行归一化时,能够根据自定义的配置范围进行归一化处理,消除不同来源的事件的数据变量差异,使得不同来源的事件数据可根据特定的变量范围进行归一化处理,从而形成统一的事件接入模型。
3.根据权利要求1所述针对告警事件的高效处理方法,其特征在于,告警事件处理阶段二中,所述事件丰富包括丰富源数据和规则数据的缓存,使用多线程异步并行方式遍历事件,使用规则引擎解析丰富规则并匹配丰富源数据缓存中的数据,将丰富的数据赋值给事件属性。
4.根据权利要求1所述针对告警事件的高效处理方法,其特征在于,告警事件处理阶段二中,所述维护期判断,通过使用规则引擎解析维护期规则来判断告警事件是否在维护期间,如果告警事件在维护期,则直接存档;如果告警事件不在维护期,则继续后续处理。
5.根据权利要求1所述针对告警事件的高效处理方法,其特征在于,所述分布式处理阶段,具体工作过程如下:
(1)经过归一化处理的告警事件消息,将按照逻辑划分成多个数据队列,在创建数据队列时,会调用随机数生成算法SecureRandom()生成唯一标识数据队列的序号queue_id,基于该序号将保存至每一条告警事件消息中,标记每一条告警事件的队列;
(2)对告警事件消息中的唯一性标识,即归一化标识,调用一致性哈希算法Hash(),根据部署的节点数量进行哈希处理,根据哈希结果路由告警消息到对应的分布式处理节点上进行处理。
6.根据权利要求1所述针对告警事件的高效处理方法,其特征在于,所述告警事件处理阶段一,具体工作过程如下:
A、对于经过分布式处理后的告警事件数据,在每个分布式节点上将进一步进行告警事件处理;每一个分布式处理节点,依据告警模型中timeslot参数,对应单独的线程;
B、依据路由到该节点上的告警事件数据,启动对应的timeslot线程,线程将告警处理逻辑配置读取至线程内存中,并对告警数据进行对应的逻辑判断和处理;每个线程只对其对应的时间流中的告警数据进行处理;线程的内存中记录着其对应的timeslot参数,并在内存中,对接收到的告警事件数据中的alarm_time参数进行匹配,只有匹配上的告警数据才会被线程进行处理;
C、匹配完成的告警事件数据以及线程,将根据内存中的告警处理规则配置,针对告警事件的业务需求,对告警事件数据有多种处理逻辑,包括告警压缩、告警升降级、告警维护期判断、告警聚合业务处理逻辑,并最终将处理后的告警消息,写入到数据库中;满足实时告警策略的告警将被同时写入到Ignite内存数据库以及ElasticSearch持久化数据库中,而满足历史告警策略的告警将被写入到ElasticSearch数据库中,进行持久化存储;
D、告警事件数据采用多线程异步并行计算,对告警处理逻辑,采用多线程并行计算,每一种告警处理逻辑对应节点上的独立处理线程,该阶段不仅提高了处理速度,同时确保了事件的有序性;处理完成后,经过字段转换和映射,事件按序号排序写入数据库,为后续处理提供有序的数据。
7.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述程序由处理器加载并执行以实现权利要求1至6中任一权利要求所述针对告警事件的高效处理方法。
CN202410030148.3A 2024-01-09 2024-01-09 针对告警事件的高效处理方法以及计算机可读存储介质 Active CN117539665B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410030148.3A CN117539665B (zh) 2024-01-09 2024-01-09 针对告警事件的高效处理方法以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410030148.3A CN117539665B (zh) 2024-01-09 2024-01-09 针对告警事件的高效处理方法以及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN117539665A CN117539665A (zh) 2024-02-09
CN117539665B true CN117539665B (zh) 2024-04-12

Family

ID=89784623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410030148.3A Active CN117539665B (zh) 2024-01-09 2024-01-09 针对告警事件的高效处理方法以及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN117539665B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105915381A (zh) * 2016-04-21 2016-08-31 贵州电网有限责任公司信息中心 一种实现监控系统业务逻辑在线修改系统
CN107358300A (zh) * 2017-06-19 2017-11-17 北京至信普林科技有限公司 一种基于多平台自主预测的智能运维告警过滤方法及系统
CN107608862A (zh) * 2017-10-13 2018-01-19 众安信息技术服务有限公司 监控告警方法、监控告警装置及计算机可读存储介质
CN115168311A (zh) * 2022-06-30 2022-10-11 深信服科技股份有限公司 一种告警事件处理方法、系统、存储介质和终端
CN116522213A (zh) * 2022-01-21 2023-08-01 中兴通讯股份有限公司 业务状态级别分类及分类模型训练方法、电子设备
CN116684128A (zh) * 2023-05-24 2023-09-01 南京南瑞信息通信科技有限公司 一种基于网络攻击行为自适应分类的告警降噪方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831637B2 (en) * 2016-04-23 2020-11-10 International Business Machines Corporation Warning data management with respect to an execution phase
US10977017B2 (en) * 2016-04-23 2021-04-13 International Business Machines Corporation Warning data management for distributed application development

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105915381A (zh) * 2016-04-21 2016-08-31 贵州电网有限责任公司信息中心 一种实现监控系统业务逻辑在线修改系统
CN107358300A (zh) * 2017-06-19 2017-11-17 北京至信普林科技有限公司 一种基于多平台自主预测的智能运维告警过滤方法及系统
CN107608862A (zh) * 2017-10-13 2018-01-19 众安信息技术服务有限公司 监控告警方法、监控告警装置及计算机可读存储介质
CN116522213A (zh) * 2022-01-21 2023-08-01 中兴通讯股份有限公司 业务状态级别分类及分类模型训练方法、电子设备
CN115168311A (zh) * 2022-06-30 2022-10-11 深信服科技股份有限公司 一种告警事件处理方法、系统、存储介质和终端
CN116684128A (zh) * 2023-05-24 2023-09-01 南京南瑞信息通信科技有限公司 一种基于网络攻击行为自适应分类的告警降噪方法及系统

Also Published As

Publication number Publication date
CN117539665A (zh) 2024-02-09

Similar Documents

Publication Publication Date Title
WO2021088385A1 (zh) 一种在线日志解析方法、系统及其电子终端设备
CN111158977A (zh) 一种异常事件根因定位方法及装置
EP1110143B1 (en) Transaction recognition and prediction using regular expressions
WO2020078385A1 (zh) 数据采集方法、装置、存储介质及系统
CN105677615B (zh) 一种基于weka接口的分布式机器学习方法
US11809406B2 (en) Event records in a log file
CN113360554A (zh) 一种数据抽取、转换和加载etl的方法和设备
CN108132986B (zh) 一种飞行器海量传感器试验数据的快速处理方法
US20190197140A1 (en) Automation of sql tuning method and system using statistic sql pattern analysis
CN110505322B (zh) 一种ip地址段查找方法及装置
CN114979186B (zh) 基于Flink组件的流量链接分析方法及系统
CN111726249A (zh) 网络设备的配置文件处理方法及装置
CN117539665B (zh) 针对告警事件的高效处理方法以及计算机可读存储介质
CN111240599A (zh) 数据流存储方法及装置
CN112163015B (zh) 一种物联网时序数据实时监控方法、装置和系统
CN113094154A (zh) 一种基于阿里云的大数据处理方法及系统
CN113297253A (zh) 一种设备识别方法、装置、设备及可读存储介质
JP2000010815A (ja) 並列分散システムのデバッグ装置及びデバッグ方法
CN111046077A (zh) 数据的获取方法及装置、存储介质、终端
CN114116811B (zh) 日志处理方法、装置、设备及存储介质
Elsen et al. goProbe: a scalable distributed network monitoring solution
JP5098914B2 (ja) メッセージパターン生成プログラム、方法及び装置
CN113641654A (zh) 一种基于实时事件的营销处置规则引擎方法
EP3793171B1 (en) Message processing method, apparatus, and system
CN112765010A (zh) 业务参数集中管理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant