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

如何使用curl在Alertmanager创建测试告警以验证第三方集成?

无需修改Prometheus规则模拟告警测试Alertmanager集成的方法

以下几种方案都能绕过Prometheus规则,直接向Alertmanager推送模拟告警,完全满足测试第三方集成的需求:

1. 直接调用Alertmanager API发送告警

Alertmanager本身提供了接收告警的API接口,直接通过HTTP POST请求就能推送模拟告警,不需要经过Prometheus。

用curl执行示例:

curl -X POST -H "Content-Type: application/json" -d '[
  {
    "labels": {
      "alertname": "TestAlert",
      "severity": "critical",
      "instance": "test-instance-01"
    },
    "annotations": {
      "summary": "测试告警",
      "description": "这是用于验证Alertmanager第三方集成的模拟告警"
    },
    "startsAt": "2024-05-20T12:00:00Z",
    "endsAt": "2024-05-20T12:10:00Z"
  }
]' http://<你的Alertmanager地址>:<端口>/api/v2/alerts
  • 替换<你的Alertmanager地址>:<端口>为实际地址,比如localhost:9093
  • labels里的alertname是必填项,其他标签可以根据你的路由规则自定义
  • startsAt和endsAt采用ISO8601时间格式,若留空,Alertmanager会自动填充当前时间

如果要测试告警恢复,要么发送endsAt早于当前时间的告警,要么调用删除接口:

curl -X POST -H "Content-Type: application/json" -d '[
  {
    "labels": {
      "alertname": "TestAlert",
      "severity": "critical",
      "instance": "test-instance-01"
    }
  }
]' http://<你的Alertmanager地址>:<端口>/api/v2/alerts/delete

2. 使用Alertmanager官方CLI工具amtool

amtool是Alertmanager自带的命令行工具,操作更简洁,适合快速测试。

发送模拟告警

amtool alert add alertname=TestAlert severity=critical instance=test-instance-01 summary="测试告警" description="模拟测试告警"

如果Alertmanager不在本地默认端口,需要指定地址:

amtool alert add --alertmanager.url=http://<你的Alertmanager地址>:<端口> alertname=TestAlert severity=critical

查看告警状态

amtool alert query

删除告警(测试恢复流程)

amtool alert delete alertname=TestAlert severity=critical instance=test-instance-01

这两种方法都能让Alertmanager像处理Prometheus触发的告警一样,将模拟告警路由到你配置的第三方集成(邮件、Slack、PagerDuty等),完全不需要修改任何Prometheus规则文件。

内容的提问来源于stack exchange,提问作者Henrique Capozzi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 05:27:26