首批通过分布式安全可靠测评,为关键业务系统打造
将告警对接到钉钉群
更新时间:2026-04-14 15:15:54
您可使用钉钉群接收告警消息,通过机器人发送消息到钉钉群,所有群成员都可以看到告警消息。
应用场景
OCP 的告警消息会推送给钉钉群里的机器人,由机器人将告警消息发送到群里。对接钉钉机器人只需提供钉钉机器人的 Webhook 地址即可。
部分增强功能如下:
- @某个群成员:需配置被@成员的手机号码,按照钉钉的使用说明,被@时会有提示,即使群消息设置为免打扰。
- 机器人安全设置支持加签:一种更安全的通知方式,OCP 会通过提供的秘钥对发送的消息加签名,防止恶意发送消息。
- 定义消息 markdown 格式,可以对告警名加粗,告警信息按列表展示。
- 设置代理:如果内网与公网不通,需要设置网络代理,告警消息先发送到代理,代理再转发到钉钉群。
前提条件
已完成钉钉群机器人的创建及设置。钉钉标准版接口累计可调用次数为 1 万次/月。每个机器人每分钟最多发送 20 条消息到群里,如果超过 20 条,会限流 10 分钟。
钉钉机器人接入,请参见,钉钉机器人官方文档。
已获得机器人的 Webhook。设置完钉钉机器人后,您会得到机器人的 Webhook,此为配置 OCP 钉钉告警通道的必填项,为了保证告警消息的安全,请确保此 Webhook 不被泄露。
获取到钉钉机器人 Webhook 后请确保网络畅通,可以用以下命令来发送一条测试消息:
curl 'https://oapi.dingtalk.com/robot/send?access_token=替换为您的webhook-token' \ -H 'Content-Type: application/json' \ -d '{"msgtype": "text","text": {"content":"钉钉机器人测试消息"}}'
注意事项
通过上述的测试例子可以看出,告警消息是通过请求钉钉 API 将告警消息投递过去,API 中的 access_token 是钉钉群机器人的唯一标识,需妥善保管。如果 access_token 泄露,攻击者可以通过请求该 API 来恶意发送消息,如广告、违规内容等。钉钉机器人提供了 3 种安全设置,必须选择其中一项设置。安全设置包括:
- 自定义关键词:告警消息中需包含该关键词,只要满足关键词,则告警消息会发送到群里。此安全方式并不安全,如果 Webhook 泄露,存在恶意发送告警的风险。
- IP 地址(段):只有来自特定 IP 的告警消息才允许发送,这种方式存在运维风险,如果后期 OCP 的地方发生变更,需要同步更改钉钉机器人配置。
- 加签:发送的消息通过秘钥设置签名,钉钉会校验签名是否正确,防止恶意发送消息风险。推荐使用这种安全设置。
操作步骤
在左侧导航栏中,单击 监控告警 > 告警。
在告警详情页中,单击 告警通道。

然后在告警通道页签下,单击 新建通道。
配置钉钉告警通道。
基本配置。

选择项 是否必选 描述 通道类型 是 下拉选择钉钉。 通道名 是 自定义通道名称,方便后续识别。 Webhook 地址 是 钉钉机器人的访问地址,获取方式请参见,钉钉机器人官方文档。 签名秘钥 否 钉钉机器人提供了 3 种安全设置,选择加签设置后可以获取到签名秘钥。 @指定用户 否 输入的手机号应为用户在钉钉的登录手机号,当出现告警时机器人会@该成员,支持输入多个成员手机号,以半角逗号分隔。 代理 否 设置网络代理,OB Cloud 4.2.0 之前的版本需设置格式为 http:ip:port,4.2.0 及之后的版本设置为http://ip:port。注意
http 代理如果不支持 https,则钉钉 Webhook 中的 https 需改为 http。
消息配置。

消息结构可以更改,设置 消息格式 为
markdown,可通过输入${}引入变量。```shell ### OCP 告警通知 ${alarm_name} - 级别:${alarm_level} - 告警对象:${alarm_target} - 概述:${alarm_summary} - 生成时间:${alarm_active_at} - 详情:${alarm_description} - OCP 链接:${alarm_url} ```其他功能。
告警消息聚合:可以开启通道聚合功能,避免一段时间内一条告警发送多次。OCP 告警默认 3 分钟(从 4.1.0 版本开始)产生一次告警,开启告警通道聚合之后,相同告警默认 600 秒仅发送一次。
单击 提交,完成配置。
常见问题
消息限流
Q:如何处理被限流导致消息发送失败,关键字如:{"status":1111,"wait":5,"source":"x5","punish":"deny","uuid":"xxx","errcode": 130101,"errmsg": "send too fast, exceed 20 times per minute"}。
A:钉钉标准版接口累计可调用次数为 1 万次/月,每个机器人每分钟最多发送 20 条消息到群里,如果超过 20 条,会限流 10 分钟。限流后所有发往钉钉的消息都会失败,存在一定的隐患,解决方法:
- 告警通道开启聚合功能,同类告警、相同告警在聚合周期内只发送一次告警。
- 推送限流,OCP 推送设置中提供了限流策略,支持按天、小时来限流(限流维度是推送配置+告警通道)。
- 黑屏调整
ocp.alarm.event.resend-interval-seconds系统配置,默认 3 分钟产生一次告警事件。
以上步骤可以有效减少告警消息数量,降低告警被限流的可能性;但是瞬时产生大量不同告警可能会被限流(1 分钟内发送超过 20 条消息)。
网络不通
Q:如何处理用户环境不能直接访问钉钉 API 的问题?
A:首先通过 curl 测试是否能发送测试消息,如果网络不通,则需要在 新建通道 > 基本配置 > 代理 中配置网络代理。
升级迁移
Q:升级或者迁移后,如何更新告警推送?
A:OCP 4.0.1 之前的版本是通过 HTTP 通道或脚本通道发送钉钉告警消息,4.0.1 及之后的版本推荐增加内置的钉钉通道。为避免出现校验发送结果失败的情况,请参考如下说明:
如果您使用的通道类型为 HTTP 或脚本通道,并且告警是发往钉钉群,推荐您使用内置的钉钉通道,参考本文配置。
如果是发往客户的告警平台,客户告警平台再发往钉钉群,则无需更改为内置的钉钉通道,还使用原来的告警通道类型。
Response 校验信息失败
Q:如何解决 Response 校验信息失败?
A:设置 Response 校验信息失败是为了防止脚本编写不规范导致用户收不到告警、漏发告警等问题。要求告警脚本里输出有且仅有一次有效信息(可以是 API 响应码,也可以是 API 响应体),OCP 来校验信息是否匹配,支持正则匹配、json 键值对匹配。钉钉机器人 API 返回的为 json 内容,故应使用 json 键值对匹配。钉钉群消息通道的 Response 校验信息应设置为:{"errcode":0,"errmsg":"ok"},脚本通道中不应输出除 Response 外的其他内容(如 curl 命令应加上 -s 参数防止输出进度信息)。