美文网首页
AlertManager集群搭建

AlertManager集群搭建

作者: huan1993 | 来源:发表于2021-03-10 14:42 被阅读0次

    一、AlertManager集群搭建

    1、背景

    单节点的告警管理器,如果宕机了,那么所有的告警信息都发送不出去,还是比较危险的,因此我们需要搭建一个高可用的告警管理器。

    此处,记录一下搭建3个节点的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) 集群服务监听的地址
    • --cluster.advertise-address string: cluster advertise address
    • --cluster.peer value: initial peers (repeat flag for each additional peer) 初始化时关联其它实例的集群机器地址
    • --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、查看集群状态

    alertmanager集群状态

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

    7、注意事项

    1、如果实例没有使用默认路由的 RFC 6890一部分的IP地址,则需要cluster.advertise-address标志。

    2、如果我们的告警管理器是在0.15及以上的版本,则TCP和UDP端口都需要可以访问。

    3、不要在Prometheus和AlertManager之间进行负载均衡,应该将所有的AlertManager地址都告诉Prometheus。

    4、集群中节点的通讯是通过Gossip协议来实现的。

    8、告警管理器的高可用架构图

    告警管理器的高可用架构图

    二、参考链接

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

    相关文章

      网友评论

          本文标题:AlertManager集群搭建

          本文链接:https://www.haomeiwen.com/subject/iuywqltx.html