alertmanager集群如何同步数据

在这里插入图片描述

alertmanager告警数据处理流程

在这里插入图片描述

Gossip协议

在这里插入图片描述

alertmanager如何使用gossip协议

alertmanager收到告警后的处理流程如下:

在这里插入图片描述
在这里插入图片描述

每个阶段的解析:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

需要涉及到gossip的地方:

在这里插入图片描述

cluster模块使用gossip协议实现数据同步

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

细节一:如何保证alertmanager之间不会重复发送

alertmanger在处理告警时有一个延迟等待时间,以避免多个实例争抢处理告警的,导致重复

等待原则如下:
在这里插入图片描述

细节二:如何保证一定收敛和收敛的时间

如何保证一定收敛:

gossip传播协议是依靠互相传播来保证最终一致性的,如果集群有节点数据跟其他节点不一致,那么传播就不会停止,会一直传播,直到最终一致。

如何保证收敛的时间:

这个是个需要综合衡量的。如果每个节点都全量pull其他节点数据,同时push自己的全量数据给所有节点,也就是节点之间以full mesh的形式传播,那收敛最快,但是也最费带宽。如果每个节点每次只pull一个其他节点数据,同时push自己的全量数据给一个其他的节点,那这样最节省带宽,但是也收敛最慢。

因此收敛时间其实是可配置的,需要取根据收敛时间和带宽占用这两个指标的重要程度,做出合理的调整

细节三:每次alertmanger都向集群所有节点广播数据吗

alertmanger每次gossip传播的时候会从集群中随机挑选k个节点来传播,而非全量传播
在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐