AlertManager集群搭建

一、AlertManager集群搭建

1、背景

單節(jié)點的告警管理器,如果宕機了,那么所有的告警信息都發(fā)送不出去,還是比較危險的,因此我們需要搭建一個高可用的告警管理器。

此處,記錄一下搭建3個節(jié)點的alertmanager集群。

2、機器

機器 集群端口 web頁面端口
127.0.0.1 9083 9082
127.0.0.1 9085 9084
127.0.0.1 9087 9086

3、集群可用配置

To create a highly available cluster of the Alertmanager the instances need to be configured to communicate with each other. This is configured using the --cluster.* flags.

  • --cluster.listen-address string: cluster listen address (default "0.0.0.0:9094"; empty string disables HA mode) 集群服務(wù)監(jiān)聽的地址
  • --cluster.advertise-address string: cluster advertise address
  • --cluster.peer value: initial peers (repeat flag for each additional peer) 初始化時關(guān)聯(lián)其它實例的集群機器地址
  • --cluster.peer-timeout value: peer timeout period (default "15s")
  • --cluster.gossip-interval value: cluster message propagation speed (default "200ms")
  • --cluster.pushpull-interval value: lower values will increase convergence speeds at expense of bandwidth (default "1m0s")
  • --cluster.settle-timeout value: maximum time to wait for cluster connections to settle before evaluating notifications.
  • --cluster.tcp-timeout value: timeout value for tcp connections, reads and writes (default "10s")
  • --cluster.probe-timeout value: time to wait for ack before marking node unhealthy (default "500ms")
  • --cluster.probe-interval value: interval between random node probes (default "1s")
  • --cluster.reconnect-interval value: interval between attempting to reconnect to lost peers (default "10s")
  • --cluster.reconnect-timeout value: length of time to attempt to reconnect to a lost peer (default: "6h0m0s")

The chosen port in the cluster.listen-address flag is the port that needs to be specified in the cluster.peer flag of the other peers.

The cluster.advertise-address flag is required if the instance doesn't have an IP address that is part of RFC 6890 with a default route.

上方配置,來自 alertmanagergithub上的配置。地址:https://github.com/prometheus/alertmanager

4、alertmanager啟動腳本

1、127.0.0.1:9083 機器啟動腳本

nohup /Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager \
--config.file="/Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager.yml" \
--web.listen-address="0.0.0.0:9082" \
--data.retention=48h \
--storage.path="/Users/huan/soft/prometheus/alertmanager-0.21.0/data" \
--cluster.listen-address="0.0.0.0:9083" \
--log.level=debug \
> logs/alertmanager.out 2>&1 &

2、127.0.0.1:9085 機器啟動腳本

nohup /Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager \
--config.file="/Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager.yml" \
--web.listen-address="0.0.0.0:9084" \
--data.retention=48h \
--storage.path="/Users/huan/soft/prometheus/alertmanager-0.21.0/data" \
--cluster.listen-address="0.0.0.0:9085" \
--cluster.peer="127.0.0.1:9083" \
--log.level=debug \
> logs/alertmanager.out 2>&1 &

3、127.0.0.1:9087 機器啟動腳本

nohup /Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager \
--config.file="/Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager.yml" \
--web.listen-address="0.0.0.0:9086" \
--data.retention=48h \
--storage.path="/Users/huan/soft/prometheus/alertmanager-0.21.0/data9087" \
--cluster.listen-address="0.0.0.0:9087" \
--cluster.peer="127.0.0.1:9083" \
--log.level=debug \
> logs/alertmanager-9087.out 2>&1 &

5、修改prometheus配置

prometheus.yml 配置修改

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - 127.0.0.1:9082
      - 127.0.0.1:9084
      - 127.0.0.1:9086

6、查看集群狀態(tài)

alertmanager集群狀態(tài)

到此,alertmanager 的一個集群就搭建完成了。

7、注意事項

1、如果實例沒有使用默認路由的 RFC 6890一部分的IP地址,則需要cluster.advertise-address標志。

2、如果我們的告警管理器是在0.15及以上的版本,則TCP和UDP端口都需要可以訪問。

3、不要在Prometheus和AlertManager之間進行負載均衡,應該將所有的AlertManager地址都告訴Prometheus。

4、集群中節(jié)點的通訊是通過Gossip協(xié)議來實現(xiàn)的。

8、告警管理器的高可用架構(gòu)圖

告警管理器的高可用架構(gòu)圖

二、參考鏈接

1、RFC 6890
2、alertmanager集群搭建
3、https://www.bookstack.cn/read/prometheus-book/ha-alertmanager-high-availability.md

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容