高可用性

Alertmanager 的高可用性已在许多公司的生产环境中使用,并且默认启用。

重要提示:alertmanager 0.15 及更高版本需要 UDPTCP 才能使集群正常工作。

  • 如果您使用防火墙,请确保将两种协议的集群端口列入白名单。
  • 如果您在容器中运行,请确保公开两种协议的集群端口。

要创建 Alertmanager 的高可用性集群,需要将实例配置为相互通信。这是使用 –cluster.*标志配置的。

--cluster.listen-address字符串:集群侦听地址(默认“0.0.0.0:9094”;空字符串禁用 HA 模式)
--cluster.advertise-address字符串:集群通告地址
--cluster.peer值:初始对等点(每个附加对等点的重复标志)
--cluster.peer-timeoutvalue:对端超时时间(默认“15s”)
--cluster.gossip-interval值:集群消息传播速度(默认“200ms”)
--cluster.pushpull-interval值:较低的值将以牺牲带宽为代价提高收敛速度(默认“1m0s”)
--cluster.settle-timeout值:在评估通知之前等待集群连接稳定的最长时间。
--cluster.tcp-timeoutvaluetcp 连接、读写的超时值(默认“10s”)
--cluster.probe-timeout值:在标记节点不健康之前等待确认的时间(默认“500ms”)
--cluster.probe-interval值:随机节点探测之间的间隔(默认“1s”)
--cluster.reconnect-interval值:尝试重新连接到丢失的对等点之间的间隔(默认为“10s”)
--cluster.reconnect-timeout值:尝试重新连接到丢失的对等点的时间长度(默认值:“6h0m0s”)

标志中选择的端口cluster.listen-address是需要在cluster.peer其他对等点的标志中指定的端口。

cluster.advertise-address如果实例不具有作为RFC 6890的一部分 且具有默认路由的IP 地址,则需要该标志。

要在您的本地计算机上启动一个由三个对等点组成的集群goreman,请使用此存储库中的 Procfile。

goreman start

要将 Prometheus 1.4 或更高版本的实例指向多个 Alertmanager,请在prometheus.yml配置文件中配置它们,例如:

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - alertmanager1:9093
      - alertmanager2:9093
      - alertmanager3:9093

重要:不要在 Prometheus 和它的 Alertmanagers 之间负载均衡流量,而是将 Prometheus 指向所有 Alertmanagers 的列表。Alertmanager 实现期望将所有警报发送到所有 Alertmanager 以确保高可用性。

关闭高可用性

如果不需要在高可用性模式下运行 Alertmanager,则设置--cluster.listen-address= 会阻止 Alertmanager 侦听传入的对等请求。

作者:Jeebiz  创建时间:2023-02-19 20:59
最后编辑:Jeebiz  更新时间:2024-01-24 21:48