一、脱敏说明

本文记录 Grafana 告警接入企业微信群机器人的完整操作过程。

为避免敏感信息泄露,本文涉及的服务器 IP、Grafana 访问地址、企业微信机器人 Webhook、机器人 Key 等均已做脱敏处理。

说明:

192.0.2.76 为文档示例 IP,00000000-0000-0000-0000-000000000000 为脱敏后的示例 Key,实际操作时请替换为真实环境信息。

特别注意:

企业微信机器人 Webhook 地址等同于机器人密钥,不建议出现在公开文章、截图、代码仓库或聊天记录中。

二、背景说明

在数据库、时序库、服务器等运维场景中,Grafana 常用于监控指标展示和告警通知。

默认情况下,Grafana 告警可以通过邮件发送,但邮件通知存在查看不及时、响应链路较长的问题。

为了提高告警触达效率,本次将 Grafana 告警通知接入企业微信群机器人,实现告警触发后自动推送到企业微信群,便于运维人员第一时间发现并处理问题。

本文主要记录以下内容:

1. 企业微信群机器人创建
2. Grafana Contact point 配置
3. WeCom 通知集成配置
4. Grafana 页面 Test 测试
5. Grafana 服务器 curl 链路验证
6. 常见问题排查

三、实现目标

配置完成后,实现如下告警通知链路:

Grafana 告警触发
→ Notification policy 匹配通知策略
→ Contact point 通知点
→ Email 邮件通知
→ WeCom 企业微信群机器人通知

最终效果:

Grafana 告警信息同时推送到邮件和企业微信群

这样可以在保留原有邮件通知的基础上,新增企业微信群实时通知,提高告警响应效率。


四、环境说明

项目 说明
Grafana 地址 http://192.0.2.76:3000
Grafana 服务器 192.0.2.76
企业微信群 运维告警群
通知方式 Email + WeCom
Contact point TDengine_Alert_CP
企业微信接口 qyapi.weixin.qq.com:443

说明:

Grafana 如果要直接推送企业微信群机器人,Grafana 所在服务器需要能够访问企业微信外网接口。

也就是 Grafana 服务器至少需要能访问:

qyapi.weixin.qq.com:443

五、前置条件

配置前需要满足以下条件:

1. Grafana 已经可以正常访问
2. Grafana Alerting 功能已启用
3. 已存在告警规则或后续准备配置告警规则
4. 已有企业微信群
5. Grafana 服务器可以访问企业微信接口

本次操作中,Grafana 已经存在一个通知点:

TDengine_Alert_CP

并且该通知点已经被通知策略使用:

Used by 1 notification policy

因此本次不新建 Contact point,而是在原有 Contact point 上新增企业微信通知方式。

这样做的好处是:

1. 不影响原有邮件通知
2. 不需要重新调整 Notification policies
3. 降低生产环境配置变更风险

生产环境操作,核心原则就是:能追加就不重构,能保留就不破坏。


六、企业微信群机器人配置

1. 进入企业微信群

打开企业微信,进入需要接收告警的群聊,例如:

运维告警群

点击群聊右上角:

...

进入群设置页面。


2. 进入消息推送

在群设置页面中找到:

消息推送

点击进入。


3. 添加群机器人

在消息推送页面中添加机器人。

机器人名称建议使用:

时序库告警机器人

也可以根据实际业务命名,例如:

Grafana告警机器人
TDengine告警机器人
数据库告警机器人
运维告警机器人

建议机器人名称直接体现用途,方便后续维护和排查。


4. 获取 Webhook 地址

机器人创建完成后,会生成一个 Webhook 地址,格式如下:

https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=00000000-0000-0000-0000-000000000000

其中,key= 后面的字符串就是企业微信群机器人的 Key。

示例:

key=00000000-0000-0000-0000-000000000000

注意:

Webhook 地址相当于机器人密钥,不要公开到文章、截图、代码仓库或聊天记录中。

如果 Webhook 地址已经暴露,建议删除旧机器人或重新生成新的 Webhook,并回到 Grafana 中替换。


七、Grafana 配置 Contact point

1. 进入 Contact points 页面

登录 Grafana 后,依次进入:

Alerting
→ Contact points

找到已有通知点:

TDengine_Alert_CP

该通知点显示:

Used by 1 notification policy

说明当前通知点已经被通知策略引用。


2. 编辑已有 Contact point

点击 TDengine_Alert_CP 右侧的:

Edit

进入通知点编辑页面。

注意:

不要点击 Create contact point 新建通知点。

因为当前已有通知策略正在使用 TDengine_Alert_CP,直接编辑该通知点即可。


3. 保留原有 Email 通知

进入编辑页面后,可以看到原有 Integration 为:

Email

此处不需要修改,也不要删除。

原有 Email 通知继续保留,用于作为告警兜底通道。


4. 新增企业微信通知集成

点击页面下方:

+ Add contact point integration

新增一个通知集成。

在新出现的 Integration 下拉框中选择:

WeCom

说明:

WeCom 是 Grafana 中用于企业微信通知的集成方式。

如果下拉框中有 WeCom,优先选择 WeCom,不建议直接选择普通 Webhook。


5. 配置 WeCom Webhook

在 WeCom 配置中填写企业微信群机器人的 Webhook 地址:

Webhook URL: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=00000000-0000-0000-0000-000000000000

如果使用的是企业微信群机器人,只需要填写:

Webhook URL

以下字段可以留空:

Agent ID
Corp ID
Secret

这几个字段通常用于企业微信自建应用通知,不是普通群机器人必填项。


八、Grafana 页面测试通知

配置完成后,点击 WeCom 配置块右侧的:

Test

如果企业微信群收到 Grafana 测试消息,说明 Grafana 到企业微信群机器人的通知链路已经打通。

测试消息示例:

[FIRING:1] TestAlert Grafana

Firing
Value: [no value]

Labels:
- alertname = TestAlert
- instance = Grafana

Annotations:
- summary = Notification test

测试成功后,点击页面下方:

Save contact point

保存配置。


九、配置结果确认

保存后回到 Contact points 页面,确认 TDengine_Alert_CP 下已经同时存在两种通知方式:

Email
WeCom

并且仍然显示:

Used by 1 notification policy

说明当前通知点仍然被现有通知策略使用,不需要额外修改 Notification policies。

最终通知点结构如下:

TDengine_Alert_CP
├── Email 邮件通知
└── WeCom 企业微信通知

最终告警通知链路如下:

Grafana 告警触发
→ TDengine_Alert_CP
→ Email 邮件通知
→ WeCom 企业微信群通知

十、在 Grafana 服务器上使用 curl 测试

除了在 Grafana 页面点击 Test,也可以在 Grafana 所在服务器上使用 curl 测试企业微信机器人是否可用。

本示例 Grafana 服务器为:

192.0.2.76

通过 SSH 或 JumpServer 登录 Grafana 服务器:

ssh root@192.0.2.76

1. 测试是否能访问企业微信域名

执行:

curl -I https://qyapi.weixin.qq.com

返回示例:

HTTP/1.1 403 Forbidden
Date: Sun, 21 Jun 2026 02:42:39 GMT
Content-Type: text/html
Content-Length: 146
Connection: keep-alive
Server: nginx

这里返回 403 Forbidden 不代表网络不通。

原因是访问的是企业微信根地址,并且使用的是 HEAD 请求,企业微信接口可能会拒绝该请求。

只要能够返回 HTTP 响应,说明服务器已经可以访问到企业微信服务端。


2. 使用 Webhook 发送测试消息

在 Grafana 服务器上执行:

WEBHOOK='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=00000000-0000-0000-0000-000000000000'

curl -X POST "$WEBHOOK" \
-H 'Content-Type: application/json' \
-d '{
  "msgtype": "markdown",
  "markdown": {
    "content": "### Grafana告警测试\n> 来自 Grafana 服务器 192.0.2.76 的 curl 测试"
  }
}'

成功返回示例:

{"errcode":0,"errmsg":"ok"}

同时企业微信群会收到测试消息:

Grafana告警测试
来自 Grafana 服务器 192.0.2.76 的 curl 测试

说明以下链路正常:

Grafana服务器 192.0.2.76
→ qyapi.weixin.qq.com
→ 企业微信群机器人
→ 运维告警群

十一、常见报错及处理

1. invalid webhook url

如果 curl 返回:

{"errcode":93000,"errmsg":"invalid webhook url"}

一般表示 Webhook 地址不正确。

常见原因:

1. Key 写错
2. 使用了占位符,例如 key=你的key
3. Webhook 地址复制不完整
4. 企业微信机器人已删除或失效

错误示例:

curl -X POST 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的key'

这里的 你的key 是占位符,必须替换为真实 Key。

正确方式:

WEBHOOK='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=00000000-0000-0000-0000-000000000000'

2. Grafana Test 成功,但 curl 失败

这种情况一般需要检查 curl 命令中的 Webhook 是否和 Grafana 中配置的一致。

建议直接复制 Grafana 中配置的完整 Webhook 地址进行测试。


3. 企业微信群收不到消息

优先检查以下内容:

1. Webhook URL 是否正确
2. Grafana 服务器是否能访问 qyapi.weixin.qq.com:443
3. 企业微信机器人是否被删除
4. 企业微信机器人是否配置了 IP 白名单
5. 防火墙或代理是否限制外网访问

如果企业微信机器人开启了 IP 白名单,需要放行 Grafana 服务器的出口公网 IP。

注意:

出口公网 IP 不一定等于 Grafana 服务器内网 IP,需要以实际网络出口为准。

4. 找不到 WeCom 类型

如果 Grafana 的 Integration 下拉框中找不到 WeCom,可以考虑使用 Webhook。

但需要注意:

普通 Webhook 默认发送的数据格式不一定符合企业微信机器人要求。

如果普通 Webhook 测试失败,可以考虑以下方案:

1. 升级 Grafana 或启用 WeCom 集成
2. 使用 Grafana 自定义 Payload
3. 增加内网中转服务,将 Grafana Webhook 转换为企业微信机器人格式

生产环境优先推荐使用 Grafana 内置 WeCom 集成。


十二、网络要求说明

Grafana 如果直接推送企业微信机器人,Grafana 所在服务器需要能够访问外网。

至少需要放通:

目标地址:qyapi.weixin.qq.com
目标端口:443
协议:HTTPS

完整访问链路:

Grafana服务器
→ HTTPS 443
→ qyapi.weixin.qq.com
→ 企业微信群机器人
→ 企业微信群

如果生产服务器不能直接访问外网,可以采用以下方案:

方案 说明
放通指定外网访问 只允许 Grafana 访问 qyapi.weixin.qq.com:443
使用代理服务器 Grafana 通过公司代理访问企业微信接口
内网中转服务 Grafana 推送到内网接口,再由中转服务推送企业微信

生产环境推荐最小放通原则:

只放通 Grafana 服务器到 qyapi.weixin.qq.com:443,不开放无关外网访问。

十三、安全注意事项

1. Webhook 地址必须脱敏

Webhook 地址等同于机器人密钥。

文章、截图、文档中必须脱敏,例如:

https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx

不要直接暴露真实 Key。


2. Webhook 泄露后需要重新生成

如果 Webhook 已经出现在截图、聊天记录或公开文档中,建议执行以下操作:

1. 删除旧机器人或重新生成 Webhook
2. 在 Grafana 中替换新的 Webhook URL
3. 点击 Test 测试
4. 保存 Contact point

3. 保留邮件通知作为兜底

生产环境建议保留原有 Email 通知。

即使企业微信机器人异常,邮件仍然可以作为备用通知通道。


4. Test 成功后仍需关注真实告警

Grafana 页面 Test 成功,只能说明通知通道可用。

后续还需要观察一次真实告警触发,确认以下链路完整生效:

Alert rule
→ Notification policy
→ Contact point
→ WeCom
→ 企业微信群

十四、最终验证结果

本次配置完成后,验证结果如下:

验证项 结果
Grafana Contact point 新增 WeCom 成功
Grafana 页面 Test 成功
企业微信群收到测试告警 成功
Grafana 服务器 curl 测试 成功
Email 原通知方式 保留
Contact point 策略引用 正常

最终实现:

Grafana 告警同时通过邮件和企业微信群机器人推送。

十五、总结

本次完成 Grafana 告警接入企业微信群机器人,主要步骤如下:

1. 在企业微信群中添加告警机器人
2. 获取企业微信群机器人 Webhook
3. 登录 Grafana 编辑已有 Contact point
4. 保留原 Email 通知
5. 新增 WeCom 通知集成
6. 填写企业微信机器人 Webhook URL
7. 使用 Grafana Test 完成页面测试
8. 在 Grafana 服务器使用 curl 完成链路验证
9. 确认企业微信群成功收到告警消息

通过该方式,可以将 Grafana 告警实时推送到企业微信群,提高运维告警触达效率和故障响应速度。

对于生产环境,建议采用以下原则:

保留原有通知方式
新增企业微信通知
Webhook 地址严格脱敏
只放通必要外网访问
定期验证真实告警链路

至此,Grafana 告警接入企业微信群机器人推送配置完成。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐