运维福音!用 QClaw 搭建 Linux 服务器监控系统,异常自动推送到微信

0 阅读9分钟

大家好,我是小悟。

告别半夜被电话叫醒,让 AI 助手帮你 7×24 小时守护服务器!


一、需求背景

1.1 痛点场景

作为运维人员,你是否经历过这些崩溃时刻:

  • 😱 凌晨 3 点,服务器 CPU 飙升到 100%,但没人发现,直到用户投诉
  • 😰 线上服务宕机 2 小时,因为没有人及时感知到进程退出
  • 😤 磁盘空间耗尽,数据库写入失败,造成数据丢失
  • 😭 内存泄漏 导致 OOM,服务被强制杀死

传统的监控方案如 Zabbix、Prometheus 虽然功能强大,但:

  • ❌ 配置复杂,学习成本高
  • ❌ 需要额外部署服务器
  • ❌ 维护负担重
  • ❌ 中小团队用不起商业版

1.2 我们需要什么

一个轻量、智能、零成本的监控方案:

需求说明
✅ 自动监测无需人工干预,7×24 小时运行
✅ 实时告警发现问题立即通知,支持多渠道
✅ 微信推送运维人员最常用的沟通工具
✅ 灵活配置可自定义监测指标和告警阈值
✅ 简单易用无需专业知识,开箱即用
✅ 零成本不需要额外购买服务器或服务

1.3 为什么选择 QClaw

QClaw 是腾讯推出的 AI 个人助手平台,天然具备以下优势:

特性优势
🤖 AI 智能可以理解自然语言,智能分析异常
🔌 Skill 体系模块化扩展,按需安装功能
⏰ 定时任务内置 Cron 调度,自动执行检查
🔒 安全可靠本地运行,数据不外泄
💰 完全免费无需购买额外服务

二、方案架构

2.1 整体流程

┌─────────────┐      SSH/API       ┌──────────────┐
│ Linux 服务器 │ ←──────────────→ │   QClaw      │
│             │                    │  (本地/云端)  │
│ - CPU/内存  │                    │              │
│ - 磁盘/网络 │                    │ - 定时检查    │
│ - 进程状态  │                    │ - 规则判断    │
│ - 应用日志  │                    │ - 异常检测    │
└─────────────┘                    └──────┬───────┘
                                          │
                                          │ 发现异常
                                          ↓
                                   ┌──────────────┐
                                   │  企业微信    │
                                   │  机器人      │
                                   │              │
                                   │ 🚨 告警消息  │
                                   └──────────────┘
                                          │
                                          ↓
                                   ┌──────────────┐
                                   │  运维人员    │
                                   │  微信收到    │
                                   └──────────────┘

2.2 核心组件

组件作用说明
QClaw监控中心运行在你的电脑或服务器上
SSH 连接数据采集通过 SSH 远程执行命令获取数据
定时任务调度引擎使用 OpenClaw Cron 定时触发检查
企业微信机器人消息推送接收告警并推送到微信群

三、详细步骤

步骤 1:准备 Linux 服务器访问权限

1.1 确保可以通过 SSH 访问

# 测试 SSH 连接
ssh username@your-server-ip

# 如果使用密钥认证(推荐)
ssh -i ~/.ssh/your-key.pem username@your-server-ip

1.2 配置 SSH 密钥免密登录(可选但推荐)

# 生成密钥对(如果还没有)
ssh-keygen -t rsa -b 4096

# 将公钥复制到服务器
ssh-copy-id username@your-server-ip

# 测试免密登录
ssh username@your-server-ip 'echo "连接成功"'

1.3 记录服务器信息

请记录以下信息,后续配置需要使用:

服务器 IP:192.168.1.100(示例)
SSH 端口:22
用户名:root
认证方式:密钥 / 密码

步骤 2:创建企业微信机器人

2.1 在企业微信群中添加机器人

  1. 打开企业微信群聊
  2. 点击右上角 ...群机器人添加机器人
  3. 给机器人命名,如"服务器监控告警"
  4. 复制 Webhook 地址
Webhook 格式:
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

2.2 测试机器人

curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的key' \
   -H 'Content-Type: application/json' \
   -d '
   {
     "msgtype": "text",
     "text": {
       "content": "测试消息:QClaw 监控已启动!"
     }
   }'

看到群内收到消息,说明配置成功。


步骤 3:配置 QClaw 监测任务

3.1 告诉 QClaw 你的需求

在 QClaw 中发送:

请帮我监测 Linux 服务器(IP: xxx.xxx.xxx.xxx,用户: xxx),检查以下指标:
1. CPU 使用率(超过 80% 告警)
2. 内存使用率(超过 85% 告警)
3. 磁盘使用率(超过 90% 告警)
4. 系统负载(Load Average > 4 告警)
5. Nginx 进程状态(如果退出则告警)
6. MySQL 进程状态(如果退出则告警)

每 5 分钟检查一次,发现问题发送到企业微信机器人。

3.2 提供企业微信 Webhook

企业微信 Webhook 地址:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx

3.3 QClaw 会自动帮你完成

QClaw 会自动:

  1. ✅ 创建 SSH 连接配置
  2. ✅ 编写监测脚本(检查各项指标)
  3. ✅ 设置告警规则和阈值
  4. ✅ 配置定时任务(Cron)
  5. ✅ 集成企业微信推送
  6. ✅ 开始第一次监测

步骤 4:监测脚本示例

QClaw 会生成类似以下的监测脚本:

#!/bin/bash
# QClaw 服务器监控脚本

# 服务器信息
SERVER_IP="192.168.1.100"
SERVER_USER="root"
WEBHOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx"

# 告警消息
ALERT_MSG=""

# 检查 CPU 使用率
CPU_USAGE=$(ssh $SERVER_USER@$SERVER_IP "top -bn1 | grep 'Cpu(s)' | awk '{print \$2}' | cut -d'%' -f1")
if (( $(echo "$CPU_USAGE > 80" | bc -l) )); then
  ALERT_MSG+="⚠️ CPU 使用率过高: ${CPU_USAGE}%\n"
fi

# 检查内存使用率
MEM_USAGE=$(ssh $SERVER_USER@$SERVER_IP "free | grep Mem | awk '{print (\$3/\$2) * 100.0}'")
if (( $(echo "$MEM_USAGE > 85" | bc -l) )); then
  ALERT_MSG+="⚠️ 内存使用率过高: ${MEM_USAGE}%\n"
fi

# 检查磁盘使用率
DISK_USAGE=$(ssh $SERVER_USER@$SERVER_IP "df -h / | tail -1 | awk '{print \$5}' | cut -d'%' -f1")
if [ "$DISK_USAGE" -gt 90 ]; then
  ALERT_MSG+="⚠️ 磁盘使用率过高: ${DISK_USAGE}%\n"
fi

# 检查 Nginx 进程
NGINX_STATUS=$(ssh $SERVER_USER@$SERVER_IP "pgrep nginx | wc -l")
if [ "$NGINX_STATUS" -eq 0 ]; then
  ALERT_MSG+="🚨 Nginx 进程已退出\n"
fi

# 检查 MySQL 进程
MYSQL_STATUS=$(ssh $SERVER_USER@$SERVER_IP "pgrep mysql | wc -l")
if [ "$MYSQL_STATUS" -eq 0 ]; then
  ALERT_MSG+="🚨 MySQL 进程已退出\n"
fi

# 发送告警
if [ -n "$ALERT_MSG" ]; then
  CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S')
  curl "$WEBHOOK_URL" \
    -H 'Content-Type: application/json' \
    -d "{
      \"msgtype\": \"markdown\",
      \"markdown\": {
        \"content\": \"🚨 **服务器告警**\n\n**服务器**: $SERVER_IP\n**时间**: $CURRENT_TIME\n\n$ALERT_MSG\n请及时处理!\"
      }
    }"
fi

步骤 5:配置定时任务

5.1 让 QClaw 设置 Cron 任务

告诉 QClaw:

请帮我创建一个定时任务,每 5 分钟执行一次服务器检查

QClaw 会使用内置的 Cron 工具自动配置:

# QClaw 会执行类似以下命令
openclaw cron add \
  --name "server-health-check" \
  --schedule "every 5 minutes" \
  --task "检查服务器状态并发送告警"

5.2 验证定时任务

# 查看已配置的定时任务
openclaw cron list

# 手动触发一次检查(测试)
openclaw cron run server-health-check

步骤 6:测试告警流程

6.1 模拟异常场景

# 在服务器上临时占用 CPU(测试 CPU 告警)
dd if=/dev/zero of=/dev/null &

# 在服务器上临时占用内存(测试内存告警)
dd if=/dev/zero of=/tmp/testfile bs=1M count=8000

6.2 验证微信收到告警

等待 5 分钟(或手动触发检查),你应该在企业微信群收到类似消息:

🚨 服务器告警

服务器:192.168.1.100
时间:2026-04-10 16:45:00

⚠️ CPU 使用率过高: 92.3%
⚠️ 内存使用率过高: 88.7%

请及时处理!

6.3 清理测试数据

# 停止 CPU 占用进程
killall dd

# 清理测试文件
rm /tmp/testfile

步骤 7:进阶配置

7.1 添加自定义监测项

告诉 QClaw:

请帮我添加以下监测:
1. 检查 /var/log/app/error.log 中是否有 ERROR 关键字
2. 检查 API 接口 https://api.example.com/health 是否返回 200
3. 检查 Redis 进程是否存活
4. 检查服务器连接数是否超过 1000

7.2 配置静默时段

夜间 0:00-6:00 只发送严重告警(进程退出),忽略 CPU/内存告警

7.3 多服务器监控

请帮我添加第二台服务器(IP: 192.168.1.101)的监控,监控项目和第一台一样

四、监控效果

4.1 正常情况

QClaw 每 5 分钟静默检查,无异常时不发送消息,不打扰运维人员。

4.2 异常告警

当发现问题时,立即推送到企业微信:

🚨 服务器告警

服务器:192.168.1.100
时间:2026-04-10 16:45:00

⚠️ CPU 使用率过高: 92.3%
⚠️ 内存使用率过高: 88.7%
🚨 Nginx 进程已退出

请及时处理!

4.3 多维度监控

监控项告警阈值检查频率
CPU 使用率> 80%5 分钟
内存使用率> 85%5 分钟
磁盘使用率> 90%5 分钟
系统负载> 45 分钟
Nginx 进程退出5 分钟
MySQL 进程退出5 分钟
应用健康检查非 2005 分钟
错误日志出现 ERROR5 分钟

五、常见问题

Q1: SSH 连接失败怎么办?

A: 检查以下几点:

  1. 服务器 IP 和端口是否正确
  2. 用户名是否正确
  3. 密钥文件权限是否正确(chmod 600 ~/.ssh/key.pem
  4. 服务器是否允许 SSH 连接(防火墙规则)

Q2: 企业微信收不到消息?

A: 检查以下几点:

  1. Webhook 地址是否正确
  2. 机器人是否被移除出群
  3. 消息格式是否符合企业微信规范
  4. 网络是否能访问 qyapi.weixin.qq.com

Q3: 如何修改告警阈值?

A: 直接告诉 QClaw:

请把 CPU 告警阈值改为 90%,内存告警阈值改为 95%

Q4: 如何临时关闭监控?

A:

请暂停服务器监控定时任务

Q5: 如何查看历史告警记录?

A:

请显示最近 24 小时的告警记录

六、方案优势总结

6.1 相比传统监控方案

对比项传统方案 (Zabbix/Prometheus)QClaw 方案
部署复杂度需要独立服务器,安装配置复杂零部署,开箱即用
学习成本需要学习专业知识自然语言配置
维护成本需要专人维护自动化,零维护
告警渠道需要配置原生支持微信
智能程度规则告警AI 智能分析

6.2 核心优势

  1. 🚀 零门槛
    • 无需专业知识
    • 自然语言配置
    • 开箱即用
  2. 💰 低成本
    • 无需购买服务器
    • 无需购买监控服务
  3. 🤖 AI 智能
    • 自动生成监测脚本
    • 智能分析异常
    • 自然语言交互
  4. 📱 即时告警
    • 微信实时推送
    • 多维度监控
    • 精准告警
  5. 🔧 灵活扩展
    • 自定义监测项
    • 自定义告警规则
    • 支持多服务器

七、总结

通过 QClaw,我们用最简单的方式实现了企业级的 Linux 服务器监控:

5 分钟 → 完成配置
0 成本 → 永久免费
微信告警 → 即时触达
AI 智能 → 自动分析

适合人群:

  • ✅ 中小团队运维
  • ✅ 个人开发者
  • ✅ 创业公司
  • ✅ 学生项目

不适合场景:

  • ❌ 大规模集群监控(100+ 服务器)
  • ❌ 需要专业监控报表
  • ❌ 复杂的告警路由规则

八、立即开始

你只需要:

  1. 一台能访问 Linux 服务器的电脑
  2. 一个企业微信账号
  3. 5 分钟时间

然后告诉 QClaw:

"请帮我监测 Linux 服务器..."

剩下的,交给 AI 就好!🎉


#腾讯云OpenClaw玩虾大赛#

运维福音!用 QClaw 搭建 Linux 服务器监控系统,异常自动推送到微信.png

谢谢你看我的文章,既然看到这里了,如果觉得不错,随手点个赞、转发、在看三连吧,感谢感谢。那我们,下次再见。

您的一键三连,是我更新的最大动力,谢谢

山水有相逢,来日皆可期,谢谢阅读,我们再会

我手中的金箍棒,上能通天,下能探海