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

Prometheus Alertmanager 配置Slack通知无法@提及用户如何解决

问题根因

Slack API 默认不会自动解析消息文本中的@提及内容,需要同时调整标签格式和Alertmanager的Slack接收器配置才能正常触发提及提醒。


解决方案步骤

第一步:调整Prometheus公共标签格式

不要直接写@用户ID或@用户名,必须使用Slack官方要求的提及语法,用尖括号包裹用户ID,修改Prometheus配置的external_labels部分:

global:
  external_labels:
    env: prod
    client: client
    cluster: project-prod-eks
    # 替换原来的@xxx格式,用<@用户ID>格式,必须用U开头的Slack用户ID,不要用显示名john、jim这类
    opsteam: "<@U0325FRAD> <@U01GN7KJHU>"

第二步:修改Alertmanager的Slack接收器配置

在你的Alertmanager配置对应的Slack receiver段,添加以下参数,开启提及解析和markdown支持:

receivers:
- name: 'slack-receiver' # 替换成你自己的接收器名称
  slack_configs:
  - api_url: '你的Slack webhook地址'
    channel: '#你的告警频道' # 如果要发DM就填用户ID
    # 新增以下三个配置
    link_names: true # 开启用户提及解析
    mrkdwn_in: ['text'] # 开启text字段的markdown格式解析
    parse: 'full' # 启用全量解析规则
    # 其他原有配置保持不变,比如title、text模板引用

第三步:验证模板配置

你当前的通知模板里{{ .CommonLabels.opsteam }}的引用逻辑无需修改,调整完以上配置后,重启Prometheus和Alertmanager生效即可。


补充注意事项

  • 必须使用Slack用户的唯一ID(U开头的字符串),不要用用户自定义的显示名,显示名存在重名、改名的情况,会导致解析失败
  • 如果需要@用户组,格式为<!subteam^Sxxxxxx>,其中Sxxxxxx为用户组的ID
  • 如果是直接给用户发DM通知,可以直接把Slack配置的channel字段设置为对应用户的ID,无需在消息内容里@

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:36:05