Docker中部署Alertmanager

在 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: 'alertmanager@example.com'
route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 5m
  repeat_interval: 3h
  receiver: 'email-notifications'
receivers:
- name: 'email-notifications'
  email_configs:
  - to: 'team@example.com'

三、创建 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

相关推荐
Leinwin10 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_8653825010 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇10 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.75910 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣11 小时前
智能体选型实战指南
运维·人工智能
yy552711 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ12 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔13 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密13 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi201513 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑