如何通过API获取Prometheus Alertmanager告警?
可以通过GET API获取Prometheus Alertmanager告警
当然可以,Alertmanager提供了官方REST API,支持用GET请求直接获取告警数据,完全不需要依赖webhook。以下是核心用法:
获取当前活跃告警
调用端点/api/v2/alerts,返回所有处于活跃状态的告警(未被解决或未被抑制的):curl -X GET http://<alertmanager地址>:<端口>/api/v2/alerts返回结果为JSON格式数组,每个告警对象包含
labels(告警标签)、annotations(注释)、status(告警状态)、startsAt(告警触发时间)等关键字段。按标签过滤告警
可通过filter参数筛选特定标签的告警,比如只获取alertname为HighMemoryUsage的告警:curl -X GET "http://<alertmanager地址>:<端口>/api/v2/alerts?filter=alertname%3D%22HighMemoryUsage%22"注意参数需做URL编码,比如
=转义为%3D,"转义为%22。按分组获取告警
如果需要按Alertmanager配置的分组规则查看聚合后的告警,调用端点/api/v2/alerts/groups:curl -X GET http://<alertmanager地址>:<端口>/api/v2/alerts/groups该端点返回分组后的告警集合,适合查看同组关联的告警。
额外说明
- 这些API默认无需额外配置,只要Alertmanager正常运行即可访问;若需权限验证,可通过Alertmanager的
--web.config.file配置基本认证或TLS加密。 - 若要获取历史告警(已解决的),需确保Alertmanager启用了本地存储(通过
--storage.path指定存储目录),此时/api/v2/alerts会返回近期已解决的告警(保留时长由存储配置决定)。
内容的提问来源于stack exchange,提问作者ryarali
相关产品推荐
相关产品推荐

