【2023】Prometheus-Alertmanager高可用集群

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
可观测监控 Prometheus 版,每月50GB免费额度
简介: 【2023】Prometheus-Alertmanager高可用集群

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通过浏览器访问查看集群状态

8950c83215334ba39dd30502f2a80b0f.png

当某节点挂了,还由其他节点可使用

5443f831554e4ae6900f4f3d80d2e653.png

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


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
目录
相关文章
|
4月前
|
存储 Prometheus 监控
Prometheus 基本高可用架构
Prometheus 基本高可用架构
|
4月前
|
Prometheus 监控 Kubernetes
如何用 Prometheus Operator 监控 K8s 集群外服务?
如何用 Prometheus Operator 监控 K8s 集群外服务?
|
11月前
|
Prometheus Kubernetes 监控
prometheus operator监控k8s集群之外的haproxy组件
prometheus operator监控k8s集群之外的haproxy组件
|
存储 Prometheus 监控
高可用Prometheus集群
高可用Prometheus集群
482 0
|
4月前
|
Prometheus 监控 Kubernetes
Prometheus Operator 与 kube-prometheus 之二 - 如何监控 1.23+ kubeadm 集群
Prometheus Operator 与 kube-prometheus 之二 - 如何监控 1.23+ kubeadm 集群
|
8天前
|
Prometheus 监控 Cloud Native
prometheus监控ceph集群环境
文章介绍了如何使用Prometheus监控Ceph集群环境,包括启用Prometheus模块、验证模块启用成功、访问Ceph的exporter、修改Prometheus配置文件、热加载配置,以及Grafana采集数据的方法。同时,还涵盖了监控Ceph集群宿主机的步骤,如在所有节点安装node-exporter、修改Prometheus配置文件、热加载配置,以及Grafana采集数据。
26 6
|
7天前
|
Prometheus 监控 Cloud Native
Ceph Reef(18.2.X)的内置Prometheus监控集群
这篇文章是关于Ceph Reef(18.2.X)版本中内置Prometheus监控集群的使用方法,包括如何查看集群架构、访问Prometheus、Grafana、Node-Exporter和Alertmanager的Web界面,以及推荐阅读的自实现Prometheus监控资源链接。
31 2
|
1月前
|
Prometheus 监控 Cloud Native
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
|
22天前
|
Prometheus 监控 Cloud Native
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
|
4月前
|
Prometheus 监控 Cloud Native
Prometheus监控平台配置--监控集群资源信息
在scrape_configs 配置项下添加Linux 监控的job,其中 IP 修改为上面部署node_exporter机器的ip,端口号为9100,需要注意缩进。
232 6