prom/alertmanager是Prometheus生态的告警管理组件,用于处理来自Prometheus服务器等客户端的告警,提供去重、分组、路由至邮件/PagerDuty等接收器的功能,并支持告警静默和抑制,确保告警高效分发与管理。
收藏数: 247
下载次数: 480227154
类型:
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。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务