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

Grafana Alerts:单个查询监控多Linux服务并获取异常服务明细

告警内容展示服务运行状态列表的实现方法

调整告警规则配置

你不需要修改原有触发告警的count逻辑,只需在当前告警规则中新增一条辅助查询,用来拉取所有待监控服务的运行状态即可:

  • 新增辅助查询PromQL:
node_systemd_unit_state{name=~"A.service|B.service|C.service", job="job1", state="active"}

这条查询会返回所有A、B、C三个服务的active状态值,值为1代表服务正常运行,值为0代表服务未正常运行,返回结果的name标签对应服务名称。

修改告警通知模板

Grafana告警支持通过模板变量读取所有查询的返回结果,你只需要在邮件通知的内容模板中加入对应逻辑,就能分别输出正常、异常的服务列表:

  • 输出未正常运行的服务列表,插入如下片段(注意将片段中的B替换为你新增的辅助查询对应的查询ID,Grafana默认按查询顺序分配A、B、C作为查询ID):
> 异常服务列表:
{{ range .Values.B }}
{{ if eq .Value 0 }}- {{ .Labels.name }}
{{ end }}
{{ end }}
  • 如需输出正常运行的服务列表,插入如下片段即可:
> 正常服务列表:
{{ range .Values.B }}
{{ if eq .Value 1 }}- {{ .Labels.name }}
{{ end }}
{{ end }}

可选:简化告警触发逻辑

如果不需要按总运行数量阈值告警,只要有服务异常就触发告警,可以直接把告警查询改为:

node_systemd_unit_state{name=~"A.service|B.service|C.service", job="job1", state="active"} != 1

此时每个异常服务对应一个告警实例,直接遍历.Alerts.Firing就能拿到所有异常服务的名称,无需额外配置辅助查询:

> 异常服务列表:
{{ range .Alerts.Firing }}- {{ .Labels.name }}
{{ end }}

内容的提问来源于stack exchange,提问作者API Guy 21

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:06:04