You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Docker部署的Alertmanager能否脱离Prometheus发送邮件告警?

可行,两种常用实现方式

完全可以复用Alertmanager的邮件配置,在Prometheus之外发送自定义告警通知。Alertmanager本身提供了API接口和官方CLI工具,能直接触发告警流程,无需依赖Prometheus的监控数据。

方法1:调用Alertmanager的/api/v2/alerts接口

Alertmanager的REST API支持接收自定义告警数据,只要构造符合格式的请求,就能触发已配置的邮件通知流程。

操作步骤:

  1. 确定Alertmanager的API访问地址:如果是Docker部署,假设端口映射为9093,地址为http://<alertmanager容器IP或域名>:9093/api/v2/alerts(容器内部调用可直接用容器名,比如http://alertmanager:9093)
  2. 构造告警JSON数据(保存为alert.json):
[
  {
    "labels": {
      "alertname": "定时任务执行异常",
      "severity": "critical"
    },
    "annotations": {
      "summary": "数据库备份任务失败",
      "description": "2024-05-20 02:00执行的每日备份任务出错,错误原因:存储磁盘空间不足"
    },
    "startsAt": "2024-05-20T02:00:00Z"
  }
]
  1. 用curl发送请求:
curl -X POST -H "Content-Type: application/json" -d @alert.json http://alertmanager:9093/api/v2/alerts

关键注意事项:

  • 自定义告警的labels必须匹配Alertmanager已配置的路由规则,否则告警会被忽略或者路由到错误的接收器
  • startsAt字段需遵循RFC3339时间格式(如YYYY-MM-DDTHH:MM:SSZ)

方法2:使用官方CLI工具amtool

Alertmanager提供了amtool命令行工具,可简化自定义告警的发送流程,无需手动构造JSON。

操作步骤:

  1. 运行amtool:如果是Docker部署,可直接进入Alertmanager容器执行;宿主机使用则需先安装amtool
  2. 发送告警命令示例:
# 容器内执行
amtool alert add \
  alertname="定时任务执行成功" \
  severity="info" \
  summary="备份任务完成" \
  description="2024-05-20 02:05完成数据库备份,文件大小12GB"

# 宿主机执行需指定Alertmanager地址
amtool --alertmanager.url=http://127.0.0.1:9093 alert add \
  alertname="定时任务执行成功" \
  severity="info" \
  summary="备份任务完成" \
  description="2024-05-20 02:05完成数据库备份,文件大小12GB"

关键注意事项:

  • 同样需要确保alertname、severity等labels匹配已有的路由配置,才能触发邮件通知

内容的提问来源于stack exchange,提问作者Astin Gengo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 13:07:13