当前位置:首页>Linux>Linux 下载、安装 Alertmanager,Prometheus 官方告警管理与通知路由工具(附安装包alertmanager-0.33.1.-amd64.tar.gz)

Linux 下载、安装 Alertmanager,Prometheus 官方告警管理与通知路由工具(附安装包alertmanager-0.33.1.-amd64.tar.gz)

  • 2026-10-11 06:54:51
Linux 下载、安装 Alertmanager,Prometheus 官方告警管理与通知路由工具(附安装包alertmanager-0.33.1.-amd64.tar.gz)

文章目录

    • 1. Alertmanager 简介
    • 2. v0.33.1 版本亮点
      • 2.1 缺陷修复
    • 3. 获取安装包
    • 4. 安装
      • 4.1 生产环境配置(systemd 服务化)
    • 5. 使用
      • 5.1 配置邮件告警(alertmanager.yml)
      • 5.2 静默与抑制
      • 5.3 amtool 常用命令
      • 5.4 与 Prometheus 对接
      • 5.5 Web 界面与 REST API

1. Alertmanager 简介

Alertmanager 是 Prometheus 生态中的告警管理与通知路由组件,负责接收来自 Prometheus 服务器等客户端发送的告警,并完成去重、分组与通知投递。它诞生于 Prometheus 项目——Prometheus 2012 年起源于 SoundCloud,用 Go 语言编写,2016 年加入云原生计算基金会(CNCF),是 Kubernetes 之外最核心的云原生可观测性组件之一,而 Alertmanager 正是这套体系里处理"告警"这一环的官方组件。如今 Alertmanager 在 GitHub 上拥有约 8.5 千颗星标、2400 余个分支(fork),累计 360 余位贡献者,采用 Apache 2.0 开源许可。

Alertmanager 要解决的,是"告警风暴"与"通知错乱"的问题:当监控系统发现大量问题时,如果每条告警都直接推送,运维会被刷屏、重复打扰。Alertmanager 在中间做一层缓冲与编排——对相同告警去重,把相关告警按标签分组后合并成一次通知,再按路由规则投递到正确的接收方,并支持按需静默与抑制,从而把原始告警变成"可操作、有上下文"的通知。

Alertmanager 的核心特点:

  • 告警去重
    :同一告警在成功发送后,按时间间隔抑制重复通知
  • 分组
    :按标签把相关告警合并成一次通知,避免刷屏
  • 灵活路由
    :基于标签匹配的多级路由树,可按服务、严重级别等维度分发
  • 多接收器集成
    :邮件、PagerDuty、OpsGenie、Slack、微信、Webhook 等
  • 静默
    :临时屏蔽特定告警(如维护窗口期间)
  • 抑制
    :更高优先级告警触发时,抑制低优先级告警
  • 高可用
    :多实例 gossip 集群,生产环境默认可用
  • amtool
    :配套的命令行管理工具

2. v0.33.1 版本亮点

该版本汇集了 2 位贡献者 的 3 条 贡献。

v0.33.1 发布于 2026 年 7 月 4 日,是一个缺陷修复补丁版本,共修复 3 处问题:

2.1 缺陷修复

  • 文档
    :补充 webhook 文档中缺失的 notification_reason 字段说明
  • 静默快照兼容性
    :修复静默快照缺少旧版 matchers(匹配器)字段的问题,该缺陷曾导致旧版 Alertmanager 无法读取新版快照
  • API 响应
    :无 matchers 的静默在 API 响应中现在返回空数组,而非 null

3. 获取安装包

如果访问 GitHub 不便,安装包及中文文档:https://hanshuixin.org/go/225Q(内含 alertmanager-0.33.1.linux-amd64.tar.gz、README 中英对照、发布说明中英对照和 LICENSE)。

适用于 Linux x86_64(amd64)。

Alertmanager 其他版本:https://hanshuixin.org/resource/software_integrated_package/Linux/Alertmanager

Linux安装alertmanager-v0.33.1(alertmanager-0.33.1.linux-amd64).zip├── alertmanager-0.33.1.linux-amd64.tar.gz   ← 解压后运行├── Linux安装alertmanager-v0.33.1(alertmanager-0.33.1.linux-amd64).pdf├── README/│   ├── README.md│   └── README-中文版.md├── 发布说明/│   ├── RELEASE-NOTES.md│   └── RELEASE-NOTES-中文版.md└── LICENSE

4. 安装

alertmanager-0.33.1.linux-amd64.tar.gz 是 Alertmanager 官方发布的 Linux x86_64 预编译二进制包,不绑定特定发行版,解压即可运行:

# 解压二进制包tar -xzf alertmanager-0.33.1.linux-amd64.tar.gz# 进入解压目录(内含 alertmanager 与 amtool 两个可执行文件)cd alertmanager-0.33.1.linux-amd64# 启动 Alertmanager(使用自带的默认配置)./alertmanager --config.file=alertmanager.yml

启动后访问 http://localhost:9093 即可打开 Alertmanager 的 Web 界面。

4.1 生产环境配置(systemd 服务化)

实际生产部署中,建议将二进制部署到统一目录,创建无登录权限的专用运行用户,并以 systemd 服务托管,便于开机自启、崩溃自动拉起与统一管理:

# 将二进制部署到统一目录sudo mkdir -p /opt/alertmanagersudo cp alertmanager amtool /opt/alertmanager/# 创建专用用户(无登录权限)并授权sudo useradd --system --no-create-home --shell /sbin/nologin alertmanagersudo chown -R alertmanager:alertmanager /opt/alertmanager

创建服务文件 /etc/systemd/system/alertmanager.service:

[Unit]Description=AlertmanagerDocumentation=https://prometheus.io/docs/alerting/latest/alertmanager/After=network.target[Service]Type=simpleUser=alertmanagerGroup=alertmanagerWorkingDirectory=/opt/alertmanagerExecStart=/opt/alertmanager/alertmanager \  --config.file=/opt/alertmanager/alertmanager.yml \  --storage.path=/opt/alertmanager/data \  --web.listen-address=0.0.0.0:9093Restart=on-failureRestartSec=5[Install]WantedBy=multi-user.target

配置要点说明:

  • --config.file
    :配置文件路径,默认读取 /etc/alertmanager/alertmanager.yml
  • --storage.path
    :告警与静默数据的存储路径,默认 data/ 目录
  • --web.listen-address
    :Web 界面与 API 的监听地址,默认 :9093
  • User
    :以无登录权限的专用用户运行,符合最小权限原则
# 开机自启并启动sudo systemctl enable alertmanagersudo systemctl start alertmanager# 查看状态sudo systemctl status alertmanager

5. 使用

5.1 配置邮件告警(alertmanager.yml)

Alertmanager 的行为全部由 alertmanager.yml 配置文件驱动,最常用的场景是"故障时发邮件通知"。一个完整的邮件告警配置由三部分组成:global 配置 SMTP 发信参数,route 定义分组与发送节奏,receivers 定义收件人:

global:  # SMTP 邮件服务器地址,格式:主机:端口  smtp_smarthost: 'smtp.example.com:465'  # 发件人邮箱(收件人看到的发件人)  smtp_from: 'alert@example.com'  # SMTP 认证用户名,一般就是邮箱账号  smtp_auth_username: 'alert@example.com'  # SMTP 认证密码  # 注意:这里通常不是邮箱登录密码,而是邮箱后台生成的"客户端授权码"  smtp_auth_password: 'your_auth_code'  # 是否要求 TLS 加密(465 端口 = SSL/TLS 直连,无需 STARTTLS 命令)  smtp_require_tls: falseroute:  # 默认接收器,所有告警最终都会发到它  receiver: email  # 告警分组维度:相同 alertname + instance 的告警合并为一个告警组  group_by: ['alertname', 'instance']  # 首次发现告警后等待多久再发送,用于聚合同一时段出现的多个告警  group_wait: 5m  # 同一告警组新增告警后,多久再次发送  group_interval: 15m  # 告警持续存在时的重复提醒间隔  repeat_interval: 1hreceivers:  # 接收器名称,route.receiver=email 即引用这里  - name: email    email_configs:      # 收件人邮箱      - to: 'ops@example.com'        # 告警恢复时是否发送邮件:true 额外发恢复通知,false 只发故障邮件        send_resolved: true

配置要点说明:

  • SMTP 授权码
    :smtp_auth_password 通常是邮箱服务商(126、QQ、163 等)后台生成的「客户端授权码」,而非登录密码,用登录密码会认证失败
  • 端口与加密
    :465 端口是 SSL/TLS 直连,配合 smtp_require_tls: false;若用 587 端口则需 STARTTLS,应改为 smtp_require_tls: true
  • 分组节奏
    :group_wait 聚合首波告警、group_interval 控制同组增量发送、repeat_interval 控制重复提醒,三者配合避免刷屏
  • 恢复通知
    :send_resolved: true 时,故障恢复后还会补发一封"已恢复"邮件

如需按严重级别分派到不同渠道,可在 route 下加子路由(routes),按标签匹配后投递到对应接收器(如值班邮箱、PagerDuty、Webhook 等)。

修改配置后先用 amtool 校验语法,再热加载:

# 校验配置语法amtool check-config alertmanager.yml# 重新加载配置systemctl reload alertmanager

5.2 静默与抑制

  • 静默(silencing)
    :在维护窗口或已知故障期间临时屏蔽告警,可在 Web 界面"静默"页或通过 amtool 创建,指定匹配标签与生效时间段。
  • 抑制(inhibition)
    :通过 inhibit_rules 配置,当更高优先级的告警触发时抑制低优先级告警,避免同一故障引发一屏冗余通知:
inhibit_rules:- source_matchers:    - severity="critical"  target_matchers:    - severity="warning"  equal: ['alertname']

5.3 amtool 常用命令

amtool 是随包提供的命令行工具,用于查询告警、管理静默:

# 查看当前正在触发的告警amtool alert# 查看当前静默amtool silence query# 添加一个静默(静默 alertname=Test_Alert 的告警)amtool silence add alertname=Test_Alert# 使某个静默失效amtool silence expire <静默ID>

5.4 与 Prometheus 对接

Alertmanager 本身不产生告警,需要 Prometheus 把告警推送过来。在 Prometheus 的 prometheus.yml 中配置:

alerting:  alertmanagers:  - static_configs:    - targets:      - alertmanager1:9093      - alertmanager2:9093

注意:不要在 Prometheus 与其 Alertmanager 之间做负载均衡,而应让 Prometheus 指向所有 Alertmanager 的列表——Alertmanager 期望所有告警都发送到所有实例,以确保高可用。

若需多实例高可用,可配合 --cluster.* 标志(--cluster.listen-address、--cluster.peer 等)组建 gossip 集群,各实例自动同步告警状态。

5.5 Web 界面与 REST API

启动后访问 http://localhost:9093,Web 界面提供告警列表、静默管理、状态查看等功能。同时提供版本 2 的 REST API,以 /api/v2 为前缀,例如查询所有告警:

GET /api/v2/alertsGET /api/v2/silencesGET /api/v2/status

配合 amtool 或任意 HTTP 客户端即可完成告警的查询、静默的增删改等操作,也便于接入自建的通知与运维自动化系统。

最新文章

随机文章