服务器飞书告警配置:零基础对接自定义机器人

服务器飞书告警配置的核心思路是:在飞书群里加一个自定义机器人,拿到 Webhook 地址,再用 Shell 脚本检测服务器指标,发现异常就向这个地址发一条消息。
整套流程不需要在服务器装额外客户端,一台 Linux 机器加一个飞书群就能跑起来。

下面按“先拿到地址、再写脚本、后设定时、最后验证和排错”的顺序讲,命令都可以直接复制修改。

先拿到飞书群的 Webhook 地址

打开需要接收告警的飞书群,点右上角群设置,找到“群机器人”,选择“添加机器人”,然后选“自定义机器人”。

创建时填写名称,例如“服务器告警”,按需设置头像。
安全设置里推荐勾选“签名校验”,也可以先用“自定义关键词”降低接入门槛。

创建完成后,飞书会给出一个 Webhook 地址,形如:

https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

这个地址只显示一次,务必先复制保存。 建议把它写进服务器的环境变量或独立配置文件,不要直接硬编码在脚本里,方便以后更换。

在服务器准备监控脚本

以下示例适用于常见 Linux 发行版,需要服务器已安装 curl 和 awk。
先确认:

which curl awk

如果提示找不到,用系统包管理器安装即可,例如 yum install -y curl 或 apt install -y curl。

把 Webhook 地址写入配置文件:

echo 'FEISHU_WEBHOOK="你的Webhook地址"' > /etc/feishu-alert.conf
chmod 600 /etc/feishu-alert.conf

新建脚本 /usr/local/bin/feishu-alert.sh:

#!/bin/bash
source /etc/feishu-alert.conf

HOSTNAME=$(hostname)
IP=$(hostname -I | awk '{print $1}')
CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print int($2+$4)}')
MEM=$(free | awk '/Mem/{printf "%.0f", $3/$2*100}')
DISK=$(df / | awk 'NR==2{print int($5)}')

send_alert() {
  local msg="【服务器告警】$HOSTNAME ($IP)\n$1"
  curl -s -X POST -H "Content-Type: application/json" \
    -d "{\"msg_type\":\"text\",\"content\":{\"text\":\"$msg\"}}" \
    "$FEISHU_WEBHOOK"
}

[ "$CPU" -gt 90 ] && send_alert "CPU 使用率过高:${CPU}%"
[ "$MEM" -gt 90 ] && send_alert "内存使用率过高:${MEM}%"
[ "$DISK" -gt 85 ] && send_alert "磁盘使用率过高:${DISK}%"

赋权后先手动执行一次:

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

如果当前指标没超过阈值,飞书不会收到消息,这属于正常现象。
想验证通道是否通,可以临时把阈值改成 0 再跑一次,验证后改回。

用 crontab 定时检测

手动执行没问题后,加入定时任务,每 5 分钟检查一次:

crontab -e

追加一行:

*/5 * * * * /usr/local/bin/feishu-alert.sh >/dev/null 2>&1

保存退出即可。
crontab 是最轻量的定时方案,适合单机告警;
如果机器数量多,建议改用 Prometheus Alertmanager 或 Zabbix 统一管理。

避坑与常见失败处理

收不到消息,优先检查三处:Webhook 地址是否完整、飞书群机器人是否被移除、安全设置是否匹配。
如果开了签名校验,上面的脚本没有带签名,会直接被拒。
要么关闭签名,要么按飞书文档在脚本里加时间戳和签名计算。

脚本手动能跑、定时不跑,通常是环境变量问题。
crontab 的环境和登录 Shell 不同,脚本里已经用 source 加载配置,基本能规避;
如果仍失败,把命令改成绝对路径,并在脚本开头补上 PATH=/usr/bin:/bin。

告警刷屏,说明阈值设得太低或波动大。
建议给同一指标加冷却时间,例如用临时文件记录上次告警时间,10 分钟内不重复推送。

curl 返回非 200,把 -s 去掉重新执行,查看返回体里的 code 和 msg,常见是 JSON 格式错误或 Webhook 失效。

脚本改动后没生效,检查是否有语法错误:bash -n /usr/local/bin/feishu-alert.sh,没有输出说明语法正确。

验证配置是否真正生效

完成以上步骤后,做一次完整验证:把磁盘阈值临时改成一个当前就会触发的值,例如 DISK 判断改成 -gt 1,手动执行脚本,确认飞书群收到带主机名和 IP 的消息,再改回原阈值。

之后等待一个 crontab 周期,用 crontab -l 确认任务存在,用 tail -f /var/log/cron 观察是否按时触发。
看到通知到达,说明服务器飞书告警配置已经打通。

需要提醒的是,这套方案基于文本消息,适合快速落地;
如果要分级别、@值班人、发卡片消息,需要在机器人安全设置和请求体上做更多配置。
单机场景够用,多机场景建议上专业监控平台。

分享到:
上一篇
服务器企业微信告警搭建:从零配置到收到第一条消息
下一篇
服务器电话告警配置:用脚本实现拨号通知
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 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意