夜莺监控 v8.0 新版通知规则实操 | 对接钉钉、飞书、企微通知

手把手演示夜莺 v8 新版通知规则对接钉钉、飞书和企业微信的配置流程,覆盖机器人创建、通知规则、消息模板、domain 设置、钉钉 at 人和通知测试。

作者 Product Team @快猫星云

夜莺监控 v8.0.0-beta7 开始引入新版通知规则。通知规则的逻辑讲解可以参考《夜莺监控巨大革新:抽象出通知规则,增强告警通知的灵活性》。

本文聚焦实操:如何使用新版通知规则对接钉钉、飞书、企业微信通知。演示版本为 v8.0.0-beta8。如果你的版本低于这个版本,建议先升级。v8.0.0-beta7 的通知规则已经有基本逻辑,但 beta8 做了一些优化,尤其是钉钉 at 人相关能力。

核心要点

  • 三种渠道的共同逻辑是:先创建机器人,再在夜莺通知规则中添加对应通知媒介,最后修改消息模板里的 domain
  • domain 必须改成自己的夜莺访问地址,否则告警消息里的“事件详情”“屏蔽 1 小时”“查询曲线”等按钮无法正确跳转。
  • 钉钉 at 人推荐使用 Phone 联系方式和 beta8 内置模板函数,不建议把手机号写死在模板里。
  • 飞书推荐优先使用卡片消息,告警和恢复状态更容易区分。
  • 配置完成后,优先使用通知规则里的“通知测试”验证,再用真实告警验证完整链路。

钉钉通知

1. 创建钉钉机器人

钉钉机器人必须启用安全设置。这里勾选“自定义关键词”,然后填 20

这样配置的原因是:告警消息中通常会有时间,例如 2025-03-12 10:52:07,时间字符串里包含 20,可以通过关键字校验。

创建机器人后,把 Webhook 中的 access_token 拷贝出来,后面配置夜莺通知规则时会用到。

2. 配置夜莺通知规则

创建一个通知规则,这里姑且取名为“通知规则A”。在通知规则中添加一个 DingTalk 通知媒介:

  • Access Token:填写刚才从钉钉机器人 Webhook 中复制出来的 Token。
  • Bot Name:随便填写,主要用于帮助记忆机器人。
  • 适用级别:演示时全部勾选;生产环境建议按告警分级策略选择。
  • 其他过滤条件:适用时段、使用标签、适用属性都可以先留空,表示所有告警都会通过这个通知规则发送到钉钉。

稍等片刻,就可以在钉钉里收到告警。

钉钉告警

如果消息中的三个按钮点击后无法正确跳转到夜莺页面,通常是 Dingtalk 消息模板中的 domain 字段没有正确配置。把它改成你的夜莺访问地址即可,例如:

{{$domain := "http://10.211.55.3:17000" }}

3. 配置钉钉 at 人

钉钉 at 人逻辑可以参考专门文章:夜莺监控 v8.0 新版通知规则 | 对接钉钉告警,如何配置 at 人

在 beta8 版本中,只需要修改 DingTalk 通知媒介,在联系方式里选择 Phone,就可以支持 at 人。

DingTalk 通知媒介最下面的 HTTP request body 中,v8.0.0-beta8 已经填充了合适的模板内容:

{"msgtype": "markdown", "markdown": {"title": "{{$tpl.title}}", "text": "{{$tpl.content}}\n{{batchContactsAts $sendtos}}"}, "at": {"atMobiles": {{batchContactsJsonMarshal $sendtos}} }}

然后在通知规则里选择需要 at 的联系人即可:

这个模板的关键点是:钉钉 markdown 消息需要在正文中出现 @手机号,同时还需要在 atMobiles 中放入手机号数组。batchContactsAtsbatchContactsJsonMarshal 分别负责生成这两部分内容。

飞书通知

飞书支持卡片和普通文本两种类型。告警通知一般建议使用卡片类型,因为展示更清楚,告警和恢复状态更容易区分。

先创建一个飞书机器人:

然后在通知规则中增加一个飞书卡片通知媒介,把刚才机器人的 Token 填上:

最后修改 FeishuCard 消息模板,把 domain 改成你的夜莺访问地址:

{{$domain := "http://10.211.55.3:17000" }}

这样就配置完成了。

如果想快速看到效果,可以在通知规则的每个媒介下面点击“通知测试”按钮,然后选择一个历史告警,即可快速看到飞书消息效果。也可以手工修改告警规则中的查询条件,让它尽快触发一个测试告警。

企微通知

企业微信机器人和钉钉、飞书类似,先创建机器人并获取 Key:

企微机器人

然后在通知规则里增加一个企业微信通知媒介,把刚才机器人的 Key 填上:

最后修改 Wecom 消息模板,把 domain 改成你自己的夜莺访问地址。完成后即可使用企微群接收夜莺告警。

三种通知渠道配置对比

渠道 机器人凭证 推荐消息类型 必改配置 重点检查
钉钉 Access Token markdown Dingtalk 模板中的 domain,必要时配置 Phone 联系方式 关键字校验、按钮跳转、at 人是否生效
飞书 Token 飞书卡片 FeishuCard 模板中的 domain 告警/恢复卡片区分、按钮跳转
企业微信 Key 内置 Wecom 模板 Wecom 模板中的 domain Key 是否正确、按钮跳转

配置完成后怎么验证

建议按下面顺序验证:

  1. 在通知规则中点击“通知测试”,选择历史告警,确认机器人能收到消息。
  2. 检查消息里的事件详情、屏蔽 1 小时、查询曲线等按钮是否能跳转到夜莺页面。
  3. 对钉钉通知,检查需要 at 的联系人是否真的被 at。
  4. 临时调整一条测试告警规则,让它触发真实告警,验证“告警规则 -> 通知规则 -> 通知媒介 -> 群机器人”的完整链路。
  5. 恢复测试规则,避免测试告警持续打扰。

常见问题

Q1:三个渠道都要改 domain 吗? A:是的。钉钉、飞书、企微的消息模板中都会用 domain 拼接夜莺页面链接。它应该是值班人员可访问的夜莺地址。

Q2:为什么钉钉 at 人要选择 Phone A:钉钉 at 人依赖手机号。选择 Phone 后,夜莺可以根据通知规则中选中的联系人自动拿到手机号,再由模板函数生成钉钉需要的正文和 atMobiles 数组。

Q3:飞书 text 和飞书卡片应该选哪个? A:一般优先选飞书卡片。卡片消息在告警和恢复状态上的视觉区分更明显,也更适合承载结构化告警信息。

总结

夜莺 v8 新版通知规则对接钉钉、飞书、企微的思路是一致的:机器人提供凭证,通知规则负责分发,消息模板负责内容和跳转链接。实际落地时最容易漏的是 domain,最容易出细节问题的是钉钉 at 人。把这两个点检查清楚,再用通知测试和真实告警各验证一次,告警通知链路就基本闭环了。

延伸路径

继续看解决方案和产品对比

如果你正在做监控、可观测性或故障定位相关选型,建议从解决方案和产品对比继续往下看。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云