CN114285724A - 基于Raft协议的Alertmanager部署方法 - Google Patents
基于Raft协议的Alertmanager部署方法 Download PDFInfo
- Publication number
- CN114285724A CN114285724A CN202111587850.2A CN202111587850A CN114285724A CN 114285724 A CN114285724 A CN 114285724A CN 202111587850 A CN202111587850 A CN 202111587850A CN 114285724 A CN114285724 A CN 114285724A
- Authority
- CN
- China
- Prior art keywords
- alarm
- alertmanager
- sending
- raft
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000002085 persistent effect Effects 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 13
- 230000002688 persistence Effects 0.000 claims description 17
- 230000008439 repair process Effects 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明公开基于Raft协议的Alertmanager部署方法,涉及分布式告警管理技术领域;通过Prometheus向Alertmanager中输入警报信息,部署Alertmanager的两处持久化操作,其中先进行一处所述持久化操作中根据Alertmanager中配置的规则进行警报分组处理,形成警报通知方案并发送警报,再进行另一处所述持久化操作中对当前警报通知信息进行静默规则的匹配,如果匹配成功,则对警报通知信息进行标记,中断所述警报通知信息的发送流程,其中通过中断所述警报通知信息的发送流程基于Raft完成主节点对其余Follower节点的警报发送。
Description
技术领域
本发明公开一种方法,涉及分布式告警管理技术领域,具体地说是基于Raft协议的Alertmanager部署方法。
背景技术
随着K8s云环境的飞速发展与大范围的应用,以及在K8s中Prometheus+Alertmanager监控架构的普及,当前在云环境中使用Alertmanager进行警报处理变得越来越普遍。
Alertmanager是Prometheus监控系统中重要的组成部分,用于对Prometheus中采集的警报信息进行处理,最终通过接收器发送给指定的用户。虽然Alertmanager服务能够通过自带的警报分组机制同时处理处理多个相同的Prometheus产生的警报,但如果部署的Alertmanager是以单节点的形式进行部署的,那就存在明显的单点故障风险,当Alertmanager节点宕机以后,单节点部署的Alertmanager则处于整体不可用的状态。
发明内容
本发明针对现有技术的问题,提供基于Raft协议的Alertmanager部署方法,避免因单节点服务宕机造成的Alertmanager整体不可用的影响。
本发明提出的具体方案是:
基于Raft协议的Alertmanager部署方法,通过Prometheus向Alertmanager中输入警报信息,部署Alertmanager的两处持久化操作,其中先进行一处所述持久化操作中根据Alertmanager中配置的规则进行警报分组处理,形成警报通知方案并发送警报,
再进行另一处所述持久化操作中对当前警报通知信息进行静默规则的匹配,如果匹配成功,则对警报通知信息进行标记,中断所述警报通知信息的发送流程,其中通过中断所述警报通知信息的发送流程基于Raft完成主节点对其余Follower节点的警报发送。
进一步,所述的基于Raft协议的Alertmanager部署方法中所述所述根据Alertmanager中配置的规则进行警报分组处理,包括:
配置Alertmanager中规则,所述规则描述对警报分组方式、警报发送等待时长、警报发送时间间隔及修复发送间隔的参数进行配置的方式。
进一步,所述的基于Raft协议的Alertmanager部署方法中所述中断所述警报通知信息的发送流程,依次包括Wait等待阶段、Dedup阶段、Send阶段和Raft阶段。
进一步,所述的基于Raft协议的Alertmanager部署方法中所述Wait等待阶段,通过Alertmanager根据当前集群的所处在的index值设定发送等待时间。
进一步,所述的基于Raft协议的Alertmanager部署方法中所述Dedup阶段判断当前Alertmanager中警报通知信息是否已经完成了发送,如果已经完成发送则中断当前节点的发送流程。
进一步,所述的基于Raft协议的Alertmanager部署方法中所述Send阶段在结束Dedup阶段后,进入发送警报阶段,根据警报通知信息中对应的渠道信息,对警报通知信息进行分发。
进一步,所述的基于Raft协议的Alertmanager部署方法中所述Raft阶段,基于Raft主节点对其余Follower节点进行发送完成通知,通过主节点将警报发送完成信息写入到本地持久化设备中,并向其余Follower节点发送信息将警报发送完成信息写入Follower节点持久化设备中,最后向Prometheus返回已经完成警报通知。
本发明提供基于Raft协议的Alertmanager部署系统,包括部署模块和持久化模块,
部署模块接收Prometheus向Alertmanager中输入的警报信息,部署Alertmanager的两处持久化操作,
持久化模块先进行一处所述持久化操作,根据Alertmanager中配置的规则进行警报分组处理,形成警报通知方案并发送警报,
再进行另一处所述持久化操作,对当前警报通知信息进行静默规则的匹配,如果匹配成功,则对警报通知信息进行标记,中断所述警报通知信息的发送流程,其中通过中断所述警报通知信息的发送流程基于Raft完成主节点对其余Follower节点的警报发送。
本发明提供基于Raft协议的Alertmanager部署装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的基于Raft协议的Alertmanager部署方法。
本发明的有益之处是:
本发明提供基于Raft协议的Alertmanager部署方法,解决了前述中Alertmanager单点部署的缺陷问题,方案中使用了多点部署的方式,既解决了单点宕机无法向外提供服务的问题,又实现了高可用的特性;
基于Raft的Alertmanager高可用架构做到了有效避免Prometheus与AlertManager一体部署带来的同时失效风险,实现了强大的可靠性,极大了减轻了因宕机而引起的服务不可用带来的风险,有效的降低了运维人员的巡查维护的难度;
同时本发明高可用设计方案与分布式的架构也极大的减轻了单节点的运行的压力,在机器性能不足的条件下,可以使得运维人员更加合理的分配服务器资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法部署原理示意图。
图2是本发明方法告警信息处理流程示意图。
图3是Alertmanager工作流程示意图。
图4是Alertmanager工作原理示意图。
图5是Alertmanager-HA部署框架示意图。
图6是Alertmanager内部组成示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供基于Raft协议的Alertmanager部署方法,通过Prometheus向Alertmanager中输入警报信息,部署Alertmanager的两处持久化操作,其中先进行一处所述持久化操作中根据Alertmanager中配置的规则进行警报分组处理,形成警报通知方案并发送警报,
再进行另一处所述持久化操作中对当前警报通知信息进行静默规则的匹配,如果匹配成功,则对警报通知信息进行标记,中断所述警报通知信息的发送流程,其中通过中断所述警报通知信息的发送流程基于Raft完成主节点对其余Follower节点的警报发送。
本发明方法基于Raft的Prometheus Alertmanager高可用部署方案解决警报系统存在的因单点部署造成的系统在大流量或者部分设备故障的情况下无法正常向外提供服务的问题。
具体应用中,在本发明的一些实施例中,可以通过多个信息输入端,多个警报处理节点和界面化UI组成的高可用Alertmanager部署方案,并通过http接口的方式接受其他端传递来的警报信息,其中Prometheus通过http接口向Alertmanager中输入警报信息,在收到警报信息后,部署Alertmanager对警报信息进行两处不同的持久化操作,例如保存在本地持久化存储设备中。在警报信息持久化完成后,信息将会进入下一步的处理流程中。
其中先进行一个持久化存储步骤,此步骤会对持久化后的信息根据警报信息中携带的分组信息进行处理。根据Alertmanager中启动时配置的规则进行分组处理时,规则中可以对警报分组方式、警报发送等待时长、警报发送时间间隔、修复发送间隔等参数进行自由配置。最终通过多种不同的渠道组合成多种灵活的警报通知方案。
进行另一个持久化存储步骤时,在进行持久化存储后会对当前通知信息进行静默规则的匹配,如果匹配成功,则对消息进行标记,中断此通知的发送流程。其中Wait等待阶段:Alertmanager会根据当前集群的所处在的index值,等待index*5s的发送等待时间。
Dedup阶段:当Wait阶段结束后,进入此阶段,这是会判断当前Alertmanager持久化存储中警报信息是否已经完成了发送,如果已经完成发送则中断当前节点的发送流程,不发送当前的警报信息。
Send阶段:当结束Dedup阶段后,则进入最后的发送警报阶段,根据警报信息中对应的渠道信息,对通知进行分发。
Raft阶段:当警报信息成功完成发送后,进入此阶段,有Raft中的主节点对其余Follower节点进行发送完成通知,当大多数节点都已经正常向主节点返回收到通知后,主节点将警报发送完成信息写入到本地持久化设备中,向其他Follower节点发送信息将警报发送完成信息写入Follower节点持久化设备中,最后向Prometheus系统返回已经完成警报通知。
除上述过程外,当Alermanager节点异常时,当Leader节点出现异常后,无法向Follower节点发送心跳确认包,导致Follower节点选举心跳超时的情况下,则剩余Follower自动转变为Candidate状态,当最终某一个Candidate节点当选为Leader节点后,整体Alertmanager恢复正常工作,重新开始向外提供服务。此时若失联Leader节点恢复连接,则自动转为Follower状态节点加入集群中进行工作。
通过上述过程可以评估Alertmanager的高可用性,然后使用相应的方法来对结果进行分析。结果表明,基于基于Raft一致性协议的Alertmanager高可用方案能够提高Alertmanager应用范围,达到99.9%可用的情况,在发生节点异常的情况下,可以在快速时间内恢复并对外提供服务。
同时本发明提供基于Raft协议的Alertmanager部署系统,包括部署模块和持久化模块,
部署模块接收Prometheus向Alertmanager中输入的警报信息,部署Alertmanager的两处持久化操作,
持久化模块先进行一处所述持久化操作,根据Alertmanager中配置的规则进行警报分组处理,形成警报通知方案并发送警报,
再进行另一处所述持久化操作,对当前警报通知信息进行静默规则的匹配,如果匹配成功,则对警报通知信息进行标记,中断所述警报通知信息的发送流程,其中通过中断所述警报通知信息的发送流程基于Raft完成主节点对其余Follower节点的警报发送。
上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
同样地,本发明系统解决了前述中Alertmanager单点部署的缺陷问题,方案中使用了多点部署的方式,既解决了单点宕机无法向外提供服务的问题,又实现了高可用的特性;
基于Raft的Alertmanager高可用架构做到了有效避免Prometheus与AlertManager一体部署带来的同时失效风险,实现了强大的可靠性,极大了减轻了因宕机而引起的服务不可用带来的风险,有效的降低了运维人员的巡查维护的难度;
同时本发明系统的高可用设计方案与分布式的架构也极大的减轻了单节点的运行的压力,在机器性能不足的条件下,可以使得运维人员更加合理的分配服务器资源。
以及本发明提供基于Raft协议的Alertmanager部署装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的基于Raft协议的Alertmanager部署方法。
上述装置内的处理器的信息交互、执行可读程序过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
同样地,本发明装置解决了前述中Alertmanager单点部署的缺陷问题,方案中使用了多点部署的方式,既解决了单点宕机无法向外提供服务的问题,又实现了高可用的特性;
基于Raft的Alertmanager高可用架构做到了有效避免Prometheus与AlertManager一体部署带来的同时失效风险,实现了强大的可靠性,极大了减轻了因宕机而引起的服务不可用带来的风险,有效的降低了运维人员的巡查维护的难度;
同时本发明系统的高可用设计方案与分布式的架构也极大的减轻了单节点的运行的压力,在机器性能不足的条件下,可以使得运维人员更加合理的分配服务器资源。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (9)
1.基于Raft协议的Alertmanager部署方法,其特征是通过Prometheus向Alertmanager中输入警报信息,部署Alertmanager的两处持久化操作,其中先进行一处所述持久化操作中根据Alertmanager中配置的规则进行警报分组处理,形成警报通知方案并发送警报,
再进行另一处所述持久化操作中对当前警报通知信息进行静默规则的匹配,如果匹配成功,则对警报通知信息进行标记,中断所述警报通知信息的发送流程,其中通过中断所述警报通知信息的发送流程基于Raft完成主节点对其余Follower节点的警报发送。
2.根据权利要求1所述的基于Raft协议的Alertmanager部署方法,其特征是所述所述根据Alertmanager中配置的规则进行警报分组处理,包括:
配置Alertmanager中规则,所述规则描述对警报分组方式、警报发送等待时长、警报发送时间间隔及修复发送间隔的参数进行配置的方式。
3.根据权利要求1或2所述的基于Raft协议的Alertmanager部署方法,其特征是所述中断所述警报通知信息的发送流程,依次包括Wait等待阶段、Dedup阶段、Send阶段和Raft阶段。
4.根据权利要求3所述的基于Raft协议的Alertmanager部署方法,其特征是所述Wait等待阶段,通过Alertmanager根据当前集群的所处在的index值设定发送等待时间。
5.根据权利要求3所述的基于Raft协议的Alertmanager部署方法,其特征是所述Dedup阶段判断当前Alertmanager中警报通知信息是否已经完成了发送,如果已经完成发送则中断当前节点的发送流程。
6.根据权利要求3所述的基于Raft协议的Alertmanager部署方法,其特征是所述Send阶段在结束Dedup阶段后,进入发送警报阶段,根据警报通知信息中对应的渠道信息,对警报通知信息进行分发。
7.根据权利要求3所述的基于Raft协议的Alertmanager部署方法,其特征是所述Raft阶段,基于Raft主节点对其余Follower节点进行发送完成通知,通过主节点将警报发送完成信息写入到本地持久化设备中,并向其余Follower节点发送信息将警报发送完成信息写入Follower节点持久化设备中,最后向Prometheus返回已经完成警报通知。
8.基于Raft协议的Alertmanager部署系统,其特征是包括部署模块和持久化模块,
部署模块接收Prometheus向Alertmanager中输入的警报信息,部署Alertmanager的两处持久化操作,
持久化模块先进行一处所述持久化操作,根据Alertmanager中配置的规则进行警报分组处理,形成警报通知方案并发送警报,
再进行另一处所述持久化操作,对当前警报通知信息进行静默规则的匹配,如果匹配成功,则对警报通知信息进行标记,中断所述警报通知信息的发送流程,其中通过中断所述警报通知信息的发送流程基于Raft完成主节点对其余Follower节点的警报发送。
9.基于Raft协议的Alertmanager部署装置,其特征是包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至7中任一项所述的基于Raft协议的Alertmanager部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111587850.2A CN114285724A (zh) | 2021-12-23 | 2021-12-23 | 基于Raft协议的Alertmanager部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111587850.2A CN114285724A (zh) | 2021-12-23 | 2021-12-23 | 基于Raft协议的Alertmanager部署方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114285724A true CN114285724A (zh) | 2022-04-05 |
Family
ID=80874396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111587850.2A Pending CN114285724A (zh) | 2021-12-23 | 2021-12-23 | 基于Raft协议的Alertmanager部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114285724A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190096223A1 (en) * | 2017-09-28 | 2019-03-28 | Rockwell Automation Technologies, Inc. | System and Method for Personalized Alarm Notifications in an Industrial Automation Environment |
CN112540966A (zh) * | 2019-09-23 | 2021-03-23 | 华为技术有限公司 | 一种文件同步的方法及装置 |
CN113377617A (zh) * | 2021-06-11 | 2021-09-10 | 重庆农村商业银行股份有限公司 | 一种监控系统 |
-
2021
- 2021-12-23 CN CN202111587850.2A patent/CN114285724A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190096223A1 (en) * | 2017-09-28 | 2019-03-28 | Rockwell Automation Technologies, Inc. | System and Method for Personalized Alarm Notifications in an Industrial Automation Environment |
CN112540966A (zh) * | 2019-09-23 | 2021-03-23 | 华为技术有限公司 | 一种文件同步的方法及装置 |
CN113377617A (zh) * | 2021-06-11 | 2021-09-10 | 重庆农村商业银行股份有限公司 | 一种监控系统 |
Non-Patent Citations (2)
Title |
---|
MOB604756F4EF89: "Prometheus监控神器-Alertmanager篇(四)", pages 2, Retrieved from the Internet <URL:https://blog.51cto.com/u_15127592/3277555> * |
爱可生云数据库: "大规模集群之告警系统系统实践", pages 1 - 3, Retrieved from the Internet <URL:https://segmentfault.com/a/1190000016107440> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3640187B2 (ja) | マルチプロセッサシステムの障害処理方法、マルチプロセッサシステム及びノード | |
US7093013B1 (en) | High availability system for network elements | |
CN102882704B (zh) | 一种issu的软重启升级过程中的链路保护方法和设备 | |
CN111800354B (zh) | 消息处理方法及装置、消息处理设备及存储介质 | |
CN113742031A (zh) | 节点状态信息获取方法、装置、电子设备及可读存储介质 | |
CN107391276A (zh) | 分布式监听方法、监听控制装置及系统 | |
CN111857998A (zh) | 一种可配置的定时任务调度方法及系统 | |
CN111385107A (zh) | 一种服务器的主备切换处理方法及装置 | |
CN102045204B (zh) | 一种故障处理系统及方法 | |
CN114422386B (zh) | 一种微服务网关的监测方法及装置 | |
CN113489149B (zh) | 基于实时状态感知的电网监控系统业务主节点选取方法 | |
CN102231126B (zh) | 一种实现多核处理器中核间备份的方法及系统 | |
CN112260902B (zh) | 网络设备监控方法、装置、设备及存储介质 | |
US9323629B2 (en) | Method for managing path failures of OSEK networks | |
CN114285724A (zh) | 基于Raft协议的Alertmanager部署方法 | |
CN114567536B (zh) | 异常数据处理方法、装置、电子设备和存储介质 | |
CN114816866A (zh) | 故障处理方法、装置、电子设备和存储介质 | |
CN112134951B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
US11954509B2 (en) | Service continuation system and service continuation method between active and standby virtual servers | |
JPH07319836A (ja) | 障害監視方式 | |
CN112328375B (zh) | 一种用于跟踪分布式系统的数据片段的关联方法和装置 | |
CN116800604B (zh) | 可配置的激光通信设备控制方法、装置、设备及介质 | |
CN117472553B (zh) | 一种工作流处理方法、装置、处理设备及可读存储介质 | |
KR20030058144A (ko) | 정보통신 시스템의 프로세스 장애 감시방법 및 복구방법 | |
CN110896407B (zh) | 一种nfvo组件配置管理、请求转发方法和请求处理装置 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221123 Address after: Room 305-22, Building 2, No. 1158 Zhangdong Road and No. 1059 Dangui Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, 200120 Applicant after: Shanghai Yunxi Technology Co.,Ltd. Address before: Building S02, 1036 Gaoxin Langchao Road, Jinan, Shandong 250100 Applicant before: Shandong Inspur Scientific Research Institute Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220405 |