【2023】Prometheus-Alertmanager高可用集群

本次实验准备了三个节点,分别为laert-01~03

0.什么是Alertmanager

Prometheus中的Alertmanager是一个独立的服务,用于处理来自Prometheus服务器的报警信息并根据预定义的规则对其进行聚合和路由。

Alertmanager可以将报警转发给不同的接收者,例如电子邮件地址、Slack频道、PagerDuty、微信、钉钉等,并支持对报警通知进行重复发送和静音设置。

Alertmanager还提供了一个Web界面,用于查看和管理报警规则和接收者配置。

简而言之,Alertmanager是一个非常重要的组件,它确保了Prometheus监控的稳定性和可靠性。

使用alertmanager有以下好处:

  • 集中控制:alertmanager可以集中管理和控制各种警报,并统一向团队发送警报,而不是让每个系统独立地处理它们。

  • 可扩展性:alertmanager可扩展到数千个警报规则,以适应大型团队和系统的警报需求。

  • 灵活性:alertmanager通过多维度的筛选,可以为每个团队或系统定制警报规则,并仅在需要时发送警报。

  • 集成性:alertmanager可以与多种监控系统集成,如Prometheus、InfluxDB、Nagios等。

  • 可靠性:alertmanager提供了高可用性配置和故障转移支持,保证了警报系统的稳定性和可靠性。

1.安装Alertmanager

这部分内容在三个节点上都要执行

  • 下载安装包,将安装包解压至/data目录下
wget https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz
mkdir /data
tar -xf alertmanager-0.25.0.linux-amd64.tar.gz -C /data
ln -s /data/alertmanager-0.25.0.linux-amd64/ /data/alertmanager

2.配置启动文件

  • alert-01配置:

        vi /usr/lib/systemd/system/alertmanager.service 
    
[Unit]
Description=Prometheus Alertmanager Service daemon
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/data/alertmanager/alertmanager\
          --config.file=/data/alertmanager/alertmanager.yml\
          --storage.path=/data/alertmanager/data/\
          --data.retention=120h\
          --web.external-url=http://192.168.10.3:9093\
          --web.listen-address=:9093 \
          --cluster.listen-address=192.168.10.3:9094 \
          --cluster.advertise-address=192.168.10.3:9094
          
Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload 
systemctl start alertmanager.service 
systemctl enable alertmanager.service 
systemctl status alertmanager.service 
  • alert-02配置

      vi /usr/lib/systemd/system/alertmanager.service 
    
[Unit]
Description=Prometheus Alertmanager Service daemon
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/data/alertmanager/alertmanager\
          --config.file=/data/alertmanager/alertmanager.yml\
          --storage.path=/data/alertmanager/data/\
          --data.retention=120h\
          --web.external-url=http://192.168.10.4:9093\
          --web.listen-address=:9093 \
          --cluster.listen-address=192.168.10.4:9094 \
          --cluster.peer=192.168.10.3:9094 \
          --cluster.advertise-address=192.168.10.4:9094

Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload 
systemctl start alertmanager.service 
systemctl enable alertmanager.service 
systemctl status alertmanager.service 
  • alert-03配置

      vi /usr/lib/systemd/system/alertmanager.service
    
[Unit]
Description=Prometheus Alertmanager Service daemon
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/data/alertmanager/alertmanager\
          --config.file=/data/alertmanager/alertmanager.yml\
          --storage.path=/data/alertmanager/data/\
          --data.retention=120h\
          --web.external-url=http://192.168.10.5:9093\
          --web.listen-address=:9093 \
          --cluster.listen-address=192.168.10.5:9094 \
          --cluster.peer=192.168.10.3:9094 \
          --cluster.advertise-address=192.168.10.5:9094

Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload 
systemctl start alertmanager.service 
systemctl enable alertmanager.service 
systemctl status alertmanager.service 

3.验证集群

  • 集群任意节点IP通过浏览器访问查看集群状态

在这里插入图片描述

  • 当某节点挂了,还由其他节点可使用
    在这里插入图片描述

4.关于集群的配置项

# 当前实例集群服务监听地址,为空则禁用高可用功能
--cluster.listen-address="0.0.0.0:9094"
# 表示集群节点对其他节点发布的地址,其他节点可以用这个地址与该地址通信
--cluster.advertise-address=CLUSTER.ADVERTISE-ADDRESS
# 用来设置该 Alertmanager 节点的集群对等体,将告警数据同步其他节点
--cluster.peer=CLUSTER.PEER
# 对等超时时间,默认15秒
--cluster.peer-timeout=15s
# 集群消息传播时间,默认200ms
--cluster.gossip-interval=200ms
# 定义了多个 Alertmanager 实例之间的信息同步频率
--cluster.pushpull-interval=10ms
# 评估通知之前等待集群连接建立的最长时间
--cluster.tcp-timeout=10s
# 在标记节点不正常之前等待确认的时间
--cluster.probe-timeout=500ms
# 随机节点探测之间的间隔
--cluster.probe-interval=1s
# 用来设置集群状态稳定的超时时间的参数
--cluster.settle-timeout=10ms
# 尝试重新连接到丢失的对等设备之间的间隔时间
--cluster.reconnect-interval=10s
# 尝试重新连接到丢失的对等设备的间隔时间
--cluster.reconnect-timeout=6h0m0s
# 用于在 Alertmanager 集群模式中配置 TLS 证书
--cluster.tls-config=""
# 允许节点发送不加密的广播请求,从而允许其他节点发现它的地址。
# 这条最好不用
--cluster.allow-insecure-public-advertise-address-discovery
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶重明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值