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

如何配置Prometheus Alertmanager在Slack告警中显示正确集群名

告警添加集群标识配置方法

两种实现方案,按需选择即可:

方案1:模板硬编码集群名(配置最简单,适合集群规模小的场景)

直接修改每个集群对应的alertmanager-config.yaml中Slack通知的标题和正文模板,写入当前集群的固定名称,修改后的核心配置片段如下:

alertmanager:
  config:
    global:
      resolve_timeout: 5m
    route:
      group_wait: 20s
      group_interval: 4m
      repeat_interval: 4h
      receiver: 'null'
      routes:
      - receiver: 'slack-k8s-admin'
    receivers:
      - name: 'null'
      - name: 'slack-k8s-admin'
        slack_configs:
         - api_url: 'https://hooks.slack.com/services/...'
           channel: '#k8s-monitoring'
           send_resolved: true
           icon_url: https://avatars3.githubusercontent.com/u/3380462
           # 将<当前集群名称>替换为实际值,例如prod-shanghai-01、test-shenzhen-02
           title: '[<当前集群名称>] [{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] Monitoring Event Notification'
           text: >-
             {{ range .Alerts }}
               *Source Cluster:* `<当前集群名称>`
               *Alert:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
               *Description:* {{ .Annotations.description }}
               *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:> *Runbook:* <{{ .Annotations.runbook }}|:spiral_note_pad:>
               *Details:*
               {{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
               {{ end }}
             {{ end }}

配置修改完成后执行更新命令生效:

helm upgrade prometheus prometheus-community/kube-prometheus-stack -n monitoring -f alertmanager-config.yaml

方案2:全局注入集群标签(更易维护,适合多集群长期管理场景)

通过Prometheus的外部标签能力,给当前集群所有告警统一注入cluster标签,后续所有通知渠道都可以直接引用该标签,不需要在每个通知模板里重复硬编码。
首先在alertmanager-config.yaml中增加Prometheus全局外部标签配置:

prometheus:
  prometheusSpec:
    externalLabels:
      # 替换为当前集群的唯一标识
      cluster: <当前集群名称>

再修改Slack通知模板,直接引用注入的集群标签,不需要硬编码名称:

# 其余配置保持不变,仅修改title和text字段
title: '[{{ .CommonLabels.cluster }}] [{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] Monitoring Event Notification'
text: >-
  {{ range .Alerts }}
    *Source Cluster:* `{{ .Labels.cluster }}`
    *Alert:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
    *Description:* {{ .Annotations.description }}
    *Graph:* <{{ .GeneratorURL }}|:chart_with_upwards_trend:> *Runbook:* <{{ .Annotations.runbook }}|:spiral_note_pad:>
    *Details:*
    {{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
    {{ end }}
  {{ end }}

同样执行上述helm upgrade命令让配置生效即可。

注意:每个集群的配置文件中,集群名称字段必须设置为当前集群独有的值,禁止多集群复用相同名称,否则无法区分告警来源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:01:11