AI Agent自动执行服务器巡检,生成巡检报告

如果你希望服务器巡检不再靠人工登录逐台敲命令,而是由 AI Agent 按计划自动采集指标、分析异常并输出报告,那么核心思路可以拆成三件事:用脚本采集原始数据,用 Agent 做分析和总结,用定时任务保证它自动跑。
本文面向零基础运维人员,带你从零搭出一套可落地的自动巡检流程,最终得到一份每天自动生成的巡检报告。

这套自动巡检适合什么场景

它最适合中小规模的 Linux 服务器环境,比如几台到几十台云主机、独立服务器或宝塔面板管理的机器。
典型用途包括:

  • 每天固定时间检查 CPU、内存、磁盘、负载和关键进程;
  • 发现磁盘快满、服务掉线、连接数异常时提前告警;
  • 把原始指标整理成人类可读的报告,减少人工写巡检记录的时间。

需要提前说清楚:AI Agent 负责的是“分析、归纳和生成报告”,原始数据仍要由巡检脚本或系统命令采集。
让 Agent 直接执行高危命令并不安全,建议让脚本只读采集,Agent 只处理文本结果。

准备条件

动手前先确认三件事:

  1. 一台能 SSH 登录的 Linux 服务器,建议用 Ubuntu 20.04+ 或 CentOS 7+;
  2. 已安装 Python 3.8 以上,可用 python3 --version 检查;
  3. 一个可调用的 AI 模型接口(本地模型或云端 API 均可),并能通过命令行或 Python 调用。

如果机器上没有 jq、curl 这类常用工具,先安装:

# Ubuntu/Debian
apt update && apt install -y curl jq
# CentOS/RHEL
yum install -y curl jq

第一步:写一个只读巡检采集脚本

在 /opt/check/ 下新建 collect.sh,让它只输出文本,不改动系统状态:

#!/bin/bash
OUT=/opt/check/raw_$(date +%F).txt
echo "===== 巡检时间 $(date) =====" > $OUT
echo "--- 主机名 ---" >> $OUT
hostname >> $OUT
echo "--- 负载 ---" >> $OUT
uptime >> $OUT
echo "--- 内存 ---" >> $OUT
free -m >> $OUT
echo "--- 磁盘 ---" >> $OUT
df -h >> $OUT
echo "--- 占用最高的进程 ---" >> $OUT
ps aux --sort=-%cpu | head -6 >> $OUT
echo "--- 监听端口 ---" >> $OUT
ss -tlnp >> $OUT

赋予执行权限后手动跑一次:

chmod +x /opt/check/collect.sh
/opt/check/collect.sh
cat /opt/check/raw_$(date +%F).txt

验证标准:能看到负载、内存、磁盘、进程和端口几个区块,说明采集正常。
脚本里不要加入 rm、reboot、systemctl restart 这类写操作。

第二步:让 AI Agent 读取数据并生成报告

写一个 Python 脚本 report.py,把采集结果交给 Agent 分析,并要求它按固定格式输出:

import datetime, requests

raw = open(f"/opt/check/raw_{datetime.date.today()}.txt").read()
prompt = f"""你是服务器巡检助手。请阅读下面的只读采集数据,
输出中文巡检报告,包含:1) 总体结论 2) 异常项 3) 建议处理动作。
数据:\n{raw}"""

resp = requests.post(
    "http://你的模型接口地址/v1/chat/completions",
    json={"model": "你的模型名", "messages": [{"role": "user", "content": prompt}]},
    timeout=60
)
report = resp.json()["choices"][0]["message"]["content"]
open(f"/opt/check/report_{datetime.date.today()}.md", "w").write(report)
print("报告已生成")

把接口地址和模型名替换成你实际使用的值。
运行 python3 /opt/check/report.py,如果提示“报告已生成”,再打开 /opt/check/report_日期.md 查看内容。判断标准:报告里应能明确指出磁盘使用率是否偏高、内存是否紧张等问题,而不是简单复述原始数据。

第三步:配置定时任务实现自动执行

用 crontab -e 添加一条计划任务,让脚本每天凌晨自动运行:

0 3 * * * /opt/check/collect.sh && /usr/bin/python3 /opt/check/report.py >> /opt/check/cron.log 2>&1

保存后查看是否写入成功:

crontab -l

结果验证:第二天检查 /opt/check/ 目录,应同时出现当天的 raw_日期.txt 和 report_日期.md;
如果没生成,先看 cron.log 里的报错。

避坑指南

  • 不要给 Agent 写权限:让模型只分析文本,不直接连服务器执行命令,避免误删或误重启。
  • cron 环境变量少:定时任务里建议写命令的绝对路径,例如 /usr/bin/python3,否则容易报“command not found”。
  • 接口超时要有兜底:脚本里加 timeout 参数,并在异常时记录日志,防止任务卡死。
  • 报告别无限堆积:定期清理旧文件,例如在脚本末尾加 find /opt/check -name 'raw_*.txt' -mtime +30 -delete。
  • 敏感信息脱敏:采集数据里如果含 IP、账号等,发给外部接口前先做替换处理。

怎么确认它真的在稳定工作

连续观察两到三天,重点看三处:cron.log 是否每次都有正常输出、报告文件是否按天生成、报告结论是否和手动执行 df -h、free -m 的结果一致。
只要这三点都稳定,就说明 AI Agent 自动执行服务器巡检、生成巡检报告的流程可以放心交给它了。

常见疑问

必须用云端大模型吗?
不一定,本地部署的模型同样可以通过接口调用,关键看你的机器性能和隐私要求。

一台 Agent 能管多台服务器吗?
可以。把每台机器的采集结果汇总到同一目录,再让 Agent 统一分析,就能生成一份多机汇总报告。

报告能自动发到邮箱或群机器人吗?
可以,在 Python 脚本末尾追加一段发送逻辑即可,建议先手动测试发送成功,再挂到定时任务里。

分享到:
上一篇
Linux服务器内核panic,系统崩溃日志解读
下一篇
AI批量改写网站文章,CMS内容批量生成
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 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意