研究 AIOps 已有数月,目前手里有不少可落地的方案了,接下来会把这些方案全部整理到我的公众号里。欢迎大家关注,可以把你遇到的场景在评论区留言。我会在能力范围内给你提供思路和建议。
上周有给大家提供一篇:AIOps 探索:OpenClaw 直接安装 Ansible Skill:批量管理 Linux 主机如此简单,今天继续分享一个超实用的场景——自动化巡检。
一、为什么需要自动化巡检?
说实话,手动巡检这事儿,干过运维的都懂:
每天都要登录一堆服务器检查状态
重复性的命令敲到手软
一不小心还容易漏掉关键指标
出了问题才发现,为时已晚
这不,我就手痒了,想着能不能让 AI 助手帮我自动干这事儿。
具体过程我就不展示了,直接来看下我用 OpenClaw 实现的自动化巡检方案。
二、前置条件
OpenClaw 已安装并配置好
目标服务器的 SSH 访问权限
基础的 Linux 命令知识
详细的安装配置过程我就不展开了,之前文章都写过。
三、核心步骤
步骤 1:创建巡检技能
首先,我需要告诉 OpenClaw 要检查什么。我的第一个提示词:
你是一个运维巡检助手,需要检查以下项目:1. CPU 使用率(超过 80% 告警)2. 内存使用率(超过 85% 告警)3. 磁盘空间(超过 90% 告警)4. 关键服务状态(nginx, mysql, redis)5. 系统负载(超过 CPU 核数告警)6. 最近 1 小时的错误日志请以结构化格式输出检查结果,正常项打✅,异常项打❌并说明详情。
看看它的回复,还挺专业的,直接把巡检项都列清楚了。
步骤 2:编写巡检脚本
我让 OpenClaw 帮我生成了一个巡检脚本:
#!/bin/bash# 自动化巡检脚本echo "=== 系统巡检报告 ==="echo "时间:$(date '+%Y-%m-%d %H:%M:%S')"echo "主机:$(hostname)"echo ""# CPU 使用率CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)echo "CPU 使用率:${CPU_USAGE}%"# 内存使用率MEM_USAGE=$(free | grep Mem | awk '{printf("%.2f", $3/$2 * 100.0)}')echo "内存使用率:${MEM_USAGE}%"# 磁盘使用率DISK_USAGE=$(df -h / | tail -1 | awk '{print $5}' | cut -d'%' -f1)echo "磁盘使用率:${DISK_USAGE}%"# 系统负载LOAD=$(uptime | awk -F'load average:' '{print $2}' | cut -d',' -f1 | tr -d ' ')echo "系统负载:${LOAD}"# 服务状态检查for service in nginx mysql redis; do if systemctl is-active --quiet $service; then echo "$service 服务:✅ 运行中" else echo "$service 服务:❌ 未运行" fidone
步骤 3:配置定时任务
我让 OpenClaw 帮我设置了一个定时任务,每小时自动巡检一次:
# 添加到 crontab0 * * * * /path/to/inspection.sh >> /var/log/inspection.log 2>&1
步骤 4:集成告警通知
这一步挺关键的,我配置了当发现异常时,自动通过飞书机器人发送告警消息:
# 告警函数send_alert() { local message="$1" curl -X POST "https://open.feishu.cn/open-apis/bot/v2/hook/YOUR_WEBHOOK" \ -H "Content-Type: application/json" \ -d "{\"msg_type\":\"text\",\"content\":{\"text\":\"⚠️ 巡检告警:$message\"}}"}# 检查并告警if [ $(echo "$CPU_USAGE > 80" | bc) -eq 1 ]; then send_alert "CPU 使用率过高:${CPU_USAGE}%"fi
四、效果演示
来看下实际运行效果:
正常巡检输出:
=== 系统巡检报告 ===时间:2026-04-07 10:30:00主机:prod-server-01CPU 使用率:45.2%内存使用率:62.8%磁盘使用率:58%系统负载:1.25nginx 服务:✅ 运行中mysql 服务:✅ 运行中redis 服务:✅ 运行中✅ 所有检查项正常
异常告警输出:
=== 系统巡检报告 ===时间:2026-04-07 10:30:00主机:prod-server-01CPU 使用率:92.5% ❌内存使用率:88.3% ❌磁盘使用率:58%系统负载:4.85 ❌nginx 服务:✅ 运行中mysql 服务:❌ 未运行redis 服务:✅ 运行中❌ 发现 4 项异常,已发送告警通知
看看这个效果,是不是还挺直观的?
五、总结
最关键的步骤是:
明确巡检项 - 不要贪多,先覆盖核心指标
脚本要健壮 - 异常处理要做好,别脚本自己先挂了
告警要精准 - 避免狼来了,阈值要合理
持续优化 - 根据实际运行情况调整巡检策略
这个方案目前已经在我的几台服务器上跑了一个月,还真挺稳定的。
六、延伸思考
希望大家能看明白这个思路。其实自动化巡检只是 AIOps 的一个小场景,类似的还有:
自动化故障处理
日志智能分析
容量预测
异常检测
这些我都会在后续文章里一一分享。
最后介绍下我的公众号:研究 AIOps 已有数月,目前手里有不少可落地的方案了,接下来会把这些方案全部整理到我的公众号里。如果你觉得这篇文章有帮助,欢迎关注,分享给更多运维伙伴。
夜雨聆风