prom/alertmanager是Prometheus生态的告警管理组件,用于处理来自Prometheus服务器等客户端的告警,提供去重、分组、路由至邮件/PagerDuty等接收器的功能,并支持告警静默和抑制,确保告警高效分发与管理。
收藏数: 244
下载次数: 479298231
状态: active
发布者: prom
类型: 镜像
prom/alertmanagerAlertmanager 是 Prometheus 生态系统中的核心组件,负责处理由客户端应用(如 Prometheus 服务器)发送的告警。它提供告警的 deduplication(去重)、grouping(分组)和 routing(路由)功能,可将告警分发至多种接收器(如电子邮件、PagerDuty、OpsGenie 等),同时支持告警的 silencing(静默)和 inhibition(抑制),是构建可靠监控告警系统的关键工具。
alertname、cluster)分组同类告警Alertmanager 镜像可从以下仓库获取:
使用以下命令启动 Alertmanager 容器进行测试:
bashdocker run --name alertmanager -d -p 127.0.0.1:9093:9093 quay.io/prometheus/alertmanager
容器启动后,可通过 http://localhost:9093/ 访问 Alertmanager Web 界面。
为持久化配置文件,建议挂载本地目录:
bashdocker run --name alertmanager -d \ -p 127.0.0.1:9093:9093 \ -v /path/to/alertmanager/config:/etc/alertmanager \ quay.io/prometheus/alertmanager \ --config.file=/etc/alertmanager/alertmanager.yml
yamlversion: '3' services: alertmanager: image: quay.io/prometheus/alertmanager container_name: alertmanager ports: - "9093:9093" volumes: - ./alertmanager/config:/etc/alertmanager command: - '--config.file=/etc/alertmanager/alertmanager.yml' restart: unless-stopped
Alertmanager 使用 YAML 格式配置文件,核心包括 global、route、inhibit_rules 和 receivers 四部分。
以下是涵盖主要配置项的示例(完整配置文档见 Prometheus 官方文档):
yamlglobal: # 邮件通知的 SMTP 服务器和发件人 smtp_smarthost: 'localhost:25' smtp_from: '***' # 告警入口路由规则 route: # 未匹配子路由的告警默认接收器 receiver: 'team-X-mails' # 告警分组标签(相同标签的告警将被合并) group_by: ['alertname', 'cluster'] # 新告警组首次通知等待时间 group_wait: 30s # 告警组内新告警再次通知等待时间 group_interval: 5m # 重复告警通知间隔 repeat_interval: 3h # 子路由规则 routes: # 匹配 service 为 foo1/foo2/baz 的告警 - matchers: - service=~"^(foo1|foo2|baz)$" receiver: 'team-X-mails' # 子路由:匹配 severity=critical 的告警 routes: - matchers: - severity="critical" receiver: 'team-X-pager' # 匹配 service=files 的告警 - matchers: - service="files" receiver: 'team-Y-mails' routes: - matchers: - severity="critical" receiver: 'team-Y-pager' # 告警抑制规则(当高优先级告警触发时抑制低优先级告警) inhibit_rules: - source_matchers: - severity="critical" # 源告警匹配规则 target_matchers: - severity="warning" # 目标告警匹配规则 equal: ['alertname'] # 告警名称相同才应用抑制 # 接收器定义 receivers: - name: 'team-X-mails' email_configs: - to: '***, ***' - name: 'team-X-pager' email_configs: - to: '***' pagerduty_configs: - routing_key: <team-X-key> # PagerDuty 路由密钥 - name: 'team-Y-mails' email_configs: - to: '***' - name: 'team-Y-pager' pagerduty_configs: - routing_key: <team-Y-key> - name: 'team-DB-pager' pagerduty_configs: - routing_key: <team-DB-key>
amtool 是 Alertmanager 配套的命令行工具,用于管理告警和静默规则。
通过 go install 安装:
bashgo install github.com/prometheus/alertmanager/cmd/amtool@latest
bash# 简单输出 amtool alert # 详细输出 amtool -o extended alert # 按标签查询 amtool -o extended alert query alertname="Test_Alert"
bash# 添加静默规则 amtool silence add alertname=Test_Alert # 查看静默规则 amtool silence query # 过期静默规则 amtool silence expire <silence-id>
bash# 测试告警标签匹配的接收器 amtool config routes test --config.file=alertmanager.yml service=database owner=team-X
Alertmanager 支持通过集群实现高可用,需配置 --cluster.* 系列参数(UDP 和 TCP 协议均需启用)。
bash# 节点 1 docker run --name alertmanager-1 -d \ -p 9093:9093 \ -p 9094:9094 \ quay.io/prometheus/alertmanager \ --cluster.listen-address=0.0.0.0:9094 \ --cluster.peer=alertmanager-2:9094 \ --cluster.peer=alertmanager-3:9094 # 节点 2(类似节点 1,调整 peer 为其他节点) # 节点 3(类似节点 1,调整 peer 为其他节点)
在 Prometheus 配置中指定所有 Alertmanager 实例:
yamlalerting: alertmanagers: - static_configs: - targets: - alertmanager-1:9093 - alertmanager-2:9093 - alertmanager-3:9093
注意:不要在 Prometheus 与 Alertmanager 之间使用负载均衡,需直接配置所有节点地址以确保告警高可用。
Apache License 2.0,详见 LICENSE。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务