Alertmanager 是 Prometheus 告警生态中专责接收、处理与分发告警的核心组件,需通过部署(Docker/二进制/systemd)、配置(global/route/receivers)及与 Prometheus 联动(配置 alertmanagers 和 rule_files)实现告警闭环。

Alertmanager 不是独立运行的监控工具,而是 Prometheus 告警生态中专责“接收、处理、分发”的核心组件。安装配置的关键不在于“能不能跑起来”,而在于能否与 Prometheus 顺畅对接、告警不漏不滥、通知及时准确。下面从部署、配置、联动三方面讲清楚怎么做。
选择合适的方式部署 Alertmanager
生产环境推荐 Docker,测试或轻量场景可用二进制包,系统级长期运行建议 systemd 管理:
- Docker 部署(推荐):隔离性好,版本切换方便,适合多数 Linux 服务器。只需创建配置目录、写好 alertmanager.yml,再用一条命令启动:
docker run -d \<br> --name alertmanager \<br> -p 9093:9093 \<br> -v /etc/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml \<br> -v /data/alertmanager/data:/alertmanager/data \<br> prom/alertmanager:latest
- 二进制部署(快速验证):下载官方 tar 包解压后直接运行,无需依赖。适合首次尝试或离线环境:
wget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gz<br>tar xvf alertmanager-0.26.0.linux-amd64.tar.gz<br>cd alertmanager-0.26.0.linux-amd64<br>./alertmanager --config.file=alertmanager.yml --storage.path=./data --web.listen-address=:9093
- systemd 服务(生产必备):确保开机自启、崩溃自动重启、日志统一管理。需编写 /etc/systemd/system/alertmanager.service 并启用服务。
配置告警路由与通知渠道
Alertmanager 的核心逻辑在 alertmanager.yml 中定义,重点是 global、route 和 receivers 三部分:
- 全局 SMTP 设置:用于邮件发送,QQ 邮箱示例(注意用授权码而非密码):
global:<br> resolve_timeout: 5m<br> smtp_smarthost: 'smtp.qq.com:465'<br> smtp_from: 'xxx@qq.com'<br> smtp_auth_username: 'xxx@qq.com'<br> smtp_auth_password: 'your_app_password'<br> smtp_require_tls: false
- 分组与抑制规则:避免告警风暴。比如按项目、环境、告警名分组;严重告警触发时,自动抑制对应 warning/info 级别告警:
route:<br> group_by: ['project', 'environment', 'alertname']<br> group_wait: 30s<br> group_interval: 5m<br> repeat_interval: 24h<br> receiver: 'default'<br>inhibit_rules:<br> - source_match:<br> severity: 'critical'<br> target_match:<br> severity: 'warning'<br> equal: ['alertname', 'instance']
- 多通道接收器:除邮件外,可同时配置钉钉 Webhook 或企业微信机器人。Webhook 地址填入 url: 字段即可,支持模板变量渲染告警内容。
与 Prometheus 完成告警闭环
Alertmanager 本身不产生告警,它只处理 Prometheus 推送过来的告警事件。因此必须完成两处关键配置:
-
Prometheus 主配置中声明 Alertmanager 地址:在 prometheus.yml 的
alerting段添加:
alerting:<br> alertmanagers:<br> - static_configs:<br> - targets: ['localhost:9093']
-
定义告警规则文件:在 prometheus.yml 中指定
rule_files,例如:
rule_files:<br> - "rules/*.yml"
- 编写具体规则(如 CPU 过载):
- alert: HighCpuUsage<br> expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85<br> for: 3m<br> labels:<br> severity: warning<br> annotations:<br> summary: "High CPU usage on {{ $labels.instance }}"
- 保存后重启 Prometheus,访问 http://localhost:9090/alerts 可查看当前激活的告警列表;触发条件满足后,Alertmanager 的 Web 页面 http://localhost:9093 会显示告警状态,并按配置推送通知。

















