服务器钉钉机器人告警配置:从创建群机器人到脚本触发

服务器钉钉机器人告警的核心是利用钉钉群的自定义机器人 Webhook 地址,让服务器通过 HTTP 请求把告警文本推送到群里。
整个过程不依赖钉钉开放平台复杂应用,只需要一个群、一个机器人地址和一段能在服务器上执行的脚本。
下面按实际落地顺序说明。

创建钉钉群机器人并拿到 Webhook

打开钉钉,进入一个内部群(建议单独建一个运维告警群,避免打扰业务群)。
点击群设置,找到“群机器人”或“智能群助手”,选择“添加机器人”,类型选“自定义”。

给机器人起一个能识别的名字,比如“服务器告警”。
安全设置建议至少勾选一种:

  • 自定义关键词:消息里必须包含设定的词,例如“告警”,否则发送失败。
  • 加签:生成一个以 SEC 开头的密钥,脚本需要用这个密钥计算签名。
  • IP 地址段:只允许特定公网 IP 调用,适合服务器有固定出口 IP 的情况。

创建完成后,钉钉会显示一个 Webhook 地址,格式类似 https://oapi.dingtalk.com/robot/send?
access_token=xxxxxx
。
这个地址就是服务器要调用的接口。

用一条 curl 命令先验证通路

在正式写脚本前,先在服务器上手动发一条消息,确认网络和地址没问题。
如果安全设置选了“自定义关键词”,消息内容必须包含该词。

curl -X POST 'https://oapi.dingtalk.com/robot/send?access_token=你的token' \
  -H 'Content-Type: application/json' \
  -d '{"msgtype":"text","text":{"content":"服务器告警测试:如果你看到这条消息,说明Webhook可用"}}'

执行后如果钉钉群收到消息,说明基础链路通了。
如果返回 errcode 非 0,先检查 token 是否完整、关键词是否匹配、服务器能否访问外网。

编写可复用的告警脚本

实际使用中不会每次都手敲 curl。
可以在服务器上建一个脚本文件,例如 /usr/local/bin/dingtalk-alert.sh,内容如下:

#!/bin/bash
WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=你的token"
MESSAGE="$1"

curl -s -X POST "$WEBHOOK" \
  -H 'Content-Type: application/json' \
  -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"服务器告警:${MESSAGE}\"}}"

保存后赋予执行权限:

chmod +x /usr/local/bin/dingtalk-alert.sh

之后任何需要告警的地方都可以调用:

/usr/local/bin/dingtalk-alert.sh "磁盘使用率超过90%"

如果机器人开启了加签,Webhook 请求需要额外带时间戳和签名参数。
签名计算方式为:把 timestamp\n密钥 用 HMAC-SHA256 计算,再 Base64 编码,最后对结果做 URL 编码。
脚本中可以用 openssl 实现,但建议先确保无加签模式下能发送成功,再叠加签名逻辑。

接入系统监控触发条件

告警脚本本身只是发送工具,真正要解决的是“什么时候发”。
常见做法是结合 crontab 定时检查,或接入现有监控系统。

以磁盘检查为例,写一个判断脚本:

#!/bin/bash
THRESHOLD=90
USAGE=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ "$USAGE" -ge "$THRESHOLD" ]; then
  /usr/local/bin/dingtalk-alert.sh "根分区磁盘使用率 ${USAGE}%,请及时清理"
fi

然后通过 crontab 每 10 分钟执行一次:

crontab -e
# 添加一行
*/10 * * * * /usr/local/bin/check-disk.sh

同样的思路可以扩展到内存、服务进程存活、端口连通性等场景。
关键是先定义清楚告警条件,再调用发送脚本,避免把所有检查逻辑堆在一个文件里。

常见发送失败与排查方向

返回 310000 或提示关键词不匹配:如果机器人安全设置选了“自定义关键词”,消息内容必须包含该词。
检查脚本里拼接的文本是否真的带了关键词。

返回 300001 或无效 token:Webhook 地址被复制不完整,或机器人已被删除。
重新在群设置里确认机器人是否还在,复制完整地址。

服务器上 curl 无响应或超时:先确认服务器能访问外网,可以试 curl -I https://oapi.dingtalk.com。
如果服务器在受限内网,需要配置代理或换用其他告警通道。

消息发送成功但没人看到:检查机器人是否被移出群,或群消息免打扰设置过强。
建议单独建告警群并让相关人开启提醒。

验证与后续维护

配置完成后,不要只做一次测试就结束。
建议手动触发一次真实条件,比如临时把磁盘阈值调低,确认从检查到收到消息的完整链路都正常。
同时把 Webhook 地址和加签密钥当作敏感信息管理,不要提交到公开代码仓库。
如果机器人密钥泄漏,及时在钉钉群设置里重置。

钉钉机器人告警适合中小规模服务器的基础通知需求,搭建成本低,但本身不负责告警聚合、抑制和升级。
如果服务器数量变多,可以先用脚本跑通,再考虑接入更完整的监控平台。

分享到:
上一篇
服务器Grafana监控大屏搭建:从Node Exporter到Dashboard实操
下一篇
服务器企业微信告警搭建:从零配置到收到第一条消息
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意