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

Prometheus AlertManager关联Kubernetes节点标签的查询与模板配置

解决方案

1. 正确关联两个指标的PromQL写法

你之前报错的原因是group_left语法使用错误,它是向量匹配的修饰符,需要放在运算符右侧、匹配规则之后。两个指标通过公共标签node进行关联,正确的查询语句如下:

kube_node_status_condition{condition="Ready", status=~"unknown|false"} == 1 * on(node) group_left() kube_node_labels

规则说明:

  • * on(node):指定两个指标通过node标签作为匹配键进行值运算,由于两个指标的取值恒为1,运算后不影响条件判断结果
  • group_left():声明多对一匹配模式,将右侧kube_node_labels指标的所有额外标签全部注入到查询结果中,自然包含所有label_前缀的节点自定义标签

修改后的完整告警规则如下:

- alert: InstanceNotReady
  expr: kube_node_status_condition{condition="Ready", status=~"unknown|false"} == 1 * on(node) group_left() kube_node_labels
  for: 1m
  labels:
    severity: critical
  annotations:
    summary: "Kubernetes node {{ $labels.node }} is in NotReady state"
    description: |
      Node entered NotReady unresponsive state, node labels:
      {{ range $k, $v := $labels }}
      {{ if hasPrefix $k "label_" }}- {{ $k }}: {{ $v }}
      {{ end }}
      {{ end }}

2. Slack通知模板修改

如果使用全局AlertManager Slack通知模板,可以在模板中遍历所有label_前缀的标签进行展示,示例模板片段如下:

{{ define "slack.node.notification" }}
{
  "attachments": [
    {
      "title": "节点NotReady告警",
      "text": "{{ .CommonAnnotations.summary }}",
      "fields": [
        {{ range .Alerts }}
        {
          "title": "节点名称",
          "value": "{{ .Labels.node }}",
          "short": true
        },
        {{ range .Labels.SortedPairs }}
        {{ if hasPrefix .Name "label_" }}
        {
          "title": "{{ .Name }}",
          "value": "{{ .Value }}",
          "short": true
        },
        {{ end }}
        {{ end }}
        {{ end }}
        {
          "title": "故障描述",
          "value": "{{ .CommonAnnotations.description }}",
          "short": false
        }
      ],
      "color": "danger"
    }
  ]
}
{{ end }}

规则说明:

  • 用range .Labels.SortedPairs遍历告警的所有标签
  • 用内置函数hasPrefix .Name "label_"过滤出前缀匹配的节点自定义标签
  • 可以通过short: true配置让标签字段并排展示,优化Slack通知的显示效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:27:03