Alertmanager 是 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: 'alertmanager@example.org' # 告警入口路由规则 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: 'team-X+alerts@example.org, team-Y+alerts@example.org' - name: 'team-X-pager' email_configs: - to: 'team-X+alerts-critical@example.org' pagerduty_configs: - routing_key: <team-X-key> # PagerDuty 路由密钥 - name: 'team-Y-mails' email_configs: - to: 'team-Y+alerts@example.org' - 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,详见 https://github.com/prometheus/alertmanager/blob/main/LICENSE%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务