🎯 做完你会得到
服务器出问题第一时间收到 Telegram 告警,包含具体指标和建议处理步骤,不再靠运气发现故障。
👤 适合谁
- 服务器健康监控告警
⚡ 效果预览
输入需求后,AI 会围绕「服务器健康监控告警」生成可执行方案、关键步骤和提醒。
⚠️ 待验证案例:本案例基于 OpenClaw shell 执行能力和 cron 功能的真实描述,需要 OpenClaw 运行在被监控的服务器上(或通过 SSH 连接)。如果你跑通了,欢迎联系站长提交验证记录。
🔧 Step 0:先配置消息接收渠道
⚠️ 本案例需要发送通知到你的手机,先配置消息渠道 👉 去配置 Telegram/飞书/微信接入 →
解决什么问题
服务器宕机、磁盘爆满、进程崩溃,往往是用户先报障才知道。这个场景让 OpenClaw 充当你的值班运维:
- 谁会用到:有服务器需要维护的独立开发者、小团队运维、VPS 用户
- 省了什么:不用盯着监控面板,异常自动通知
- 效果是什么:每30分钟静默检查,正常不打扰,异常立刻告警
监控项:
- CPU 使用率 > 85%
- 内存使用率 > 90%
- 磁盘使用率 > 80%
- 关键进程(如 nginx、docker、你的 App)是否在运行
- 服务端口是否响应
前置条件
- OpenClaw 运行在需要监控的服务器上(Linux/macOS)
- 或 OpenClaw 已配置 SSH 访问目标服务器
- Telegram 已连接到 OpenClaw
- Claude Max 账号,或 Anthropic API Key(轻量判断,用量极少)
如果 OpenClaw 和被监控服务器在同一台机器,直接读取本地系统信息即可,无需 SSH。
用到的工具
| 工具 | 用途 | 获取方式 |
|---|---|---|
| exec(内置) | 执行系统命令获取指标 | OpenClaw 内置 |
| anthropic/claude-haiku | 判断是否异常、生成告警内容 | Claude Max 账号,或 API Key |
| cron(内置) | 每30分钟定时检查 | OpenClaw 内置 |
| Telegram(内置) | 发送告警消息 | OpenClaw 已连接 Telegram |
预期结果
正常时:静默,不发任何消息。
异常时,收到类似这样的 Telegram 告警:
🚨 服务器告警 · 2026-03-12 07:45
主机:my-server (192.168.1.100)
⚠️ 磁盘告警
/dev/sda1:已用 87%(剩余 13GB)
建议:清理 /var/log 或扩容
⚠️ 进程离线
nginx 进程未检测到
建议:执行 sudo systemctl restart nginx
✅ CPU:34% | 内存:62% | 正常
最简上手:直接发这句话
复制以下内容发给你的 OpenClaw:
帮我设置服务器健康监控,每30分钟检查一次:
监控项:
1. CPU 使用率(超过 85% 告警)
2. 内存使用率(超过 90% 告警)
3. 磁盘使用率(超过 80% 告警)
4. 进程检查:nginx、docker
检查方式:直接执行 shell 命令读取本机指标。
规则:
- 所有指标正常 → 不发消息
- 有任何异常 → 立刻发 Telegram 告警,说明异常原因和建议处理步骤
设置 cron:每30分钟执行一次(0,30 * * * *)
监控脚本(可让 OpenClaw 帮你生成)
让 OpenClaw 生成一个完整的检查脚本:
帮我写一个 bash 脚本 /opt/health-check.sh,检查以下内容并输出 JSON 格式结果:
- CPU 使用率(用 top 或 /proc/stat)
- 内存使用率(free -m)
- 各磁盘使用率(df -h)
- nginx 进程是否存在(pgrep nginx)
- 80 端口是否响应(nc -zv localhost 80)
脚本输出格式:
{
"cpu_pct": 34,
"mem_pct": 62,
"disks": [{"mount": "/", "pct": 87}],
"processes": {"nginx": true, "docker": false},
"ports": {"80": true}
}
有了脚本之后,让 OpenClaw 在 cron 里调用这个脚本,解析输出,判断是否需要告警。
cron 配置命令
# 每30分钟检查一次
openclaw cron add \
--name "服务器健康监控" \
--cron "*/30 * * * *" \
--tz "Asia/Shanghai" \
--session isolated \
--message "执行服务器健康检查:运行 /opt/health-check.sh,解析结果,如果有任何指标超过阈值(CPU>85%、内存>90%、磁盘>80%、进程离线)立刻发 Telegram 告警,告警内容包含具体数值和建议处理步骤;所有正常则不发消息。"
# 查看 cron 列表
openclaw cron list
# 临时暂停(深夜维护时)
openclaw cron pause <job-id>
# 恢复
openclaw cron resume <job-id>
多台服务器监控
如果要监控多台机器,可以配置 SSH 访问后批量检查:
帮我设置多台服务器监控,每小时检查一次:
- server-1: 192.168.1.101(已配置 SSH 密钥)
- server-2: 192.168.1.102(已配置 SSH 密钥)
对每台服务器执行相同的健康检查,任何一台异常都发告警,告警里注明是哪台服务器。
怎么验证成功了
- 设置完 cron 后,让 OpenClaw现在手动执行一次健康检查
- 正常情况下应该不发消息(或发全部正常确认消息)
- 验证告警:临时改低阈值,如CPU > 1% 就告警,触发一次告警后再改回来
踩坑记录
执行 shell 命令权限不足
症状:df、free、top 等命令报权限错误。
解法:确认 OpenClaw 进程的运行用户有读取系统信息的权限。大多数 Linux 系统普通用户就能执行这些命令。如果需要检查需要 root 的项目(如某些 docker 命令),用 sudo 并配置 sudoers 免密。
收到太多告警消息(告警轰炸)
症状:某个指标持续异常,每30分钟都收到一条告警,手机被刷屏。
解法:让 OpenClaw 实现冷却期逻辑:同一问题3小时内只告警一次。可以用工作区文件记录上次告警时间来实现:
修改健康监控逻辑:每个告警类型有3小时冷却期,冷却期内同类告警不重复发送。用 /tmp/health-alert-state.json 记录各项上次告警时间。
OpenClaw 不在被监控服务器上
症状:OpenClaw 在本地 Mac,需要监控远程 VPS。
解法:配置 SSH 连接,让 OpenClaw 通过 SSH 执行远程命令:
我的服务器 SSH 地址是 user@your-server.com,密钥在 ~/.ssh/id_rsa。
帮我修改健康检查,通过 SSH 连接到这台服务器执行检查命令。
不满意怎么调
- 想调整检查频率 → 修改 cron 表达式,如改为每10分钟:
*/10 * * * * - 想增加监控项 → 告诉 OpenClaw 追加,如同时监控 MySQL 连接数
- 想接入 PagerDuty/钉钉 → OpenClaw 支持 Webhook,配置后推到任意平台
- 想看历史记录 → 让 OpenClaw 把每次检查结果追加写入日志文件
/var/log/health.log - 想监控网站可访问性 → 加上 HTTP 探测:
curl -o /dev/null -s -w "%{http_code}" https://你的网站
🦞 跑完这个副本了?
加入虾农微信群,跟 300+ 玩家交流踩坑经验、分享配置技巧
二维码过期?添加微信 深夜开发者LND 备注「虾农」拉你入群
AI 生物指标空气质量管理:WHOOP/Apple Watch 联动空气净化器
根据 WHOOP、Apple Watch 等健康数据,AI 自动调节空气净化器和新风系统,始终保持更适合睡眠、恢复和专注的居家呼吸环境。
AI Android 专注模式助手:工作时少打扰,紧急消息不漏掉
用 OpenClaw 配合 Android 通知与专注时段,自动折叠低优先级消息,只保留真正重要的提醒,在工作、学习和睡眠时减少干扰。
AI Android 通知路由助手:消息分级、静音时段、紧急升级
用 OpenClaw 管理 Android 通知流,把工作消息、家庭通知、营销推送和系统告警自动分级,在静音时段只保留真正重要的提醒。
AI 自动 TTS 最新播报助手:文本一到就转语音,不用手动触发
用 OpenClaw 的 `/tts latest` 和自动 TTS 能力,把最新消息、日报、提醒或摘要自动转成语音播报。