在 Docker 中部署 Alertmanager(通常与 Prometheus 告警系统配合使用)的步骤如下:
一、拉取镜像prom/alertmanager
csharp
docker pull prom/alertmanager
二、 创建 Alertmanager 配置文件
首先准备Alertmanager的配置文件 alertmanager.yml(如存放在 ./alertmanager/ 目录下):
csharp
# ./alertmanager/alertmanager.yml
global:
resolve_timeout: 5m
smtp_smarthost: 'smtp.example.com:25'
smtp_from: '[email protected]'
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 5m
repeat_interval: 3h
receiver: 'email-notifications'
receivers:
- name: 'email-notifications'
email_configs:
- to: '[email protected]'
三、创建 Docker 运行命令
使用以下命令启动 Alertmanager 容器:
csharp
docker run -d \
--name alertmanager \
--network prometheus-net \ # 可选:与 Prometheus 同一网络
-p 9093:9093 \ # 暴露 Alertmanager 默认端口
-v $(pwd)/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml \
-v $(pwd)/alertmanager/data:/alertmanager \ # 持久化数据(如静默规则)
prom/alertmanager:latest \
--config.file=/etc/alertmanager/alertmanager.yml \
--storage.path=/alertmanager/data
参数说明:
--network:如果与 Prometheus 容器互通,建议使用同一 Docker 网络。
-v:挂载配置文件和数据目录(确保本地目录存在)。
--config.file:指定配置文件路径(容器内路径)。
--storage.path:持久化数据存储路径。
四、验证部署
检查容器状态:
csharp
docker ps | grep alertmanager
访问 Web 界面:
打开浏览器访问 http://<服务器IP>:9093,应看到 Alertmanager 的 Web UI。
五、集成 Prometheus
在 Prometheus 的配置文件 prometheus.yml 中添加 Alertmanager 的地址:
csharp
alerting:
alertmanagers:
- static_configs:
- targets: ["alertmanager:9093"] # 若在同一 Docker 网络,可直接用容器名
重启 Prometheus 容器使配置生效。
六、使用 Docker Compose
创建 docker-compose.yml 文件简化管理:
csharp
version: '3'
services:
alertmanager:
image: prom/alertmanager:latest
container_name: alertmanager
ports:
- "9093:9093"
volumes:
- ./alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml
- ./alertmanager/data:/alertmanager
command:
- '--config.file=/etc/alertmanager/alertmanager.yml'
- '--storage.path=/alertmanager/data'
restart: unless-stopped
启动服务:
csharp
docker-compose up -d
通过以上步骤,Alertmanager 即可在 Docker 中运行并接收 Prometheus 的告警通知。根据实际需求调整配置文件中的路由规则和接收器(如 Webhook、Slack 等)。
常见问题
1)配置文件错误:
使用 --log.level=debug 参数启动容器,查看日志排查配置错误:
csharp
docker logs alertmanager
2)持久化数据:
确保 data 目录挂载正确,否则重启后静默规则等数据会丢失。
3)网络互通:
若 Prometheus 无法连接 Alertmanager,检查两者是否在同一 Docker 网络
PS:需要笔记资料可以联系老师获取
VX:chuansinfo_sz