上篇文章介绍了Prometheus Server自身的高可用方案,但除了Prometheus Server外,Alertmanager也是整个告警体系里面重要的组件。所有的告警都需要通过它来进行发送,当Alertmanager出现问题时,告警信息将无法送达用户。
本文我们将讲解关于Alertmanager的集群方案。
1、功能概述
Alertmanager
使用HashiCorp 公司的Memberlist
库来实现集群功能。Memberlist
使用Go语言开发,并基于Gossip
的协议来管理集群成员和成员故障检测。
Gossip
协议(Gossip protocol)是一种去中心化、容错并保证最终一致性的协议,被广泛应用于分布式系统中。Gossip的原理是由网络中的某个节点,通过一种随机的方式向集群中的N个节点同步信息,相关节点在收到消息后,又会重复相同的工作,最终达到整个集群所有节点的统一。
Gossip协议具有以下优点:
- 扩展性强,可以允许集群内节点任意增加或者减少。
- 协议操作简单,实现起来简单方便。
- 容错性强,节点之间是平等关系,任何节点出现问题都不影响集群。
- 最终一致性,可以在较短时间内快速将变化覆盖到全局节点。
2、Alertmanager配置
在本次配置中,