Featured image of post VPS + AI 自动化运维:用 LLM Agent 监控、诊断和修复你的服务器

VPS + AI 自动化运维:用 LLM Agent 监控、诊断和修复你的服务器

手把手教程:利用大语言模型 Agent 自动监控 VPS 运行状态、智能诊断故障、执行修复操作,打造 24/7 自动化运维体系。

现代 VPS 运维面临一个核心矛盾:服务越来越多,但运维人手(往往只有你一个人)没变。CPU 飙高、磁盘写满、服务宕机——这些问题不会挑时间,而你不可能 24 小时盯着仪表盘。

好消息是:大语言模型(LLM)Agent 的成熟,让AI 自动化运维从概念变成了现实。本文会带你搭建一套完整的 AI 运维体系,让 LLM Agent 替你 24/7 监控服务器、智能诊断问题,甚至自主执行修复操作。

为什么需要 AI 运维?

传统 VPS 运维通常依赖这样一套组合:

  • 监控工具:Prometheus + Grafana、Netdata、Nagios
  • 告警渠道:邮件、Slack、Telegram Bot
  • 人工介入:收到告警 → 登录服务器 → 排查 → 修复

这套流程的瓶颈很明显:从告警到修复,完全依赖人的响应速度和经验。深夜 3 点收到磁盘告警、出差在外无法登录、刚接触 Linux 不知道从何查起——这些场景太常见了。

AI Agent 运维的核心思路是:

  1. 持续感知:Agent 周期性检查服务器关键指标
  2. 智能诊断:根据异常指标,结合上下文进行根因分析
  3. 自主修复:执行预设的修复脚本或生成修复命令
  4. 人工兜底:复杂问题自动上报,附带完整诊断报告
AI 运维工作流程

AI Agent 运维的感知-诊断-修复-上报循环

方案选型

要实现 AI 运维,你有几个成熟的开源方案可选:

方案LLM 集成方式优势适合场景
Hermes Agent内置 AI Agent 框架全自主决策、可自定义工作流追求自动化程度高的用户
Open-interpreter自然语言 → Shell灵活、交互式需要人机协作诊断
AutoGPT + 自定义工具自定义 Agent高度可定制有开发能力的团队

本文以 Hermes Agent 为例(因为它就是为这种定时任务场景设计的),配合 Netdata 做指标采集。

第一步:部署监控层(Netdata)

AI Agent 需要数据输入。Netdata 是最适合的单机实时监控方案,一条命令即可部署:

# 安装 Netdata
bash <(curl -Ss https://my-netdata.io/kickstart.sh)

# 验证运行状态
systemctl status netdata
# 访问 http://你的VPS_IP:19999

Netdata 会实时采集以下关键指标:

  • CPU:使用率、负载、温度
  • 内存:使用量、Swap 使用率
  • 磁盘:使用率、IOPS、读写延迟
  • 网络:带宽、连接数、错误包
  • 进程:Top 进程资源占用

第二步:搭建 AI Agent 引擎

安装 Hermes Agent(或其他 Agent 框架):

# 安装 Hermes Agent
curl -fsSL https://hermes-agent.sh/install | sh

# 初始化配置
hermes init --provider openai --model gpt-4o

⚠️ 安全提示:让 AI 直接操作服务器存在风险。建议先用 --readonly 模式运行一段时间,确认诊断逻辑准确后再开启自动修复。

Agent 工作流配置

创建一个运维专用的工作流定义文件 ops-workflow.yaml

name: "vps-auto-ops"
interval: "*/15 * * * *"  # 每 15 分钟执行
steps:
  - name: "check_system_health"
    action: |
      执行以下检查并将结果汇总:
      1. `df -h` — 磁盘使用率
      2. `free -h` — 内存使用
      3. `uptime` — 系统负载
      4. `top -bn1 | head -5` — CPU 占用 Top 进程
      5. `ss -tuln` — 监听端口
    on_complete: "analyze_issues"

  - name: "analyze_issues"
    action: |
      基于上述检查结果,执行根因分析:
      - 是否有异常指标(磁盘 > 85%、内存 > 90%、负载 > CPU 核数)?
      - 最近是否有服务变更?
      - 是否存在已知的关联故障模式?
    on_complete: "execute_fix"

  - name: "execute_fix"
    action: |
      对于可自动修复的问题,执行修复操作:
      - 磁盘清理:清理日志、临时文件、Docker 残留
      - 进程重启:重启异常服务
      - 内存回收:清理缓存
      每次操作前必须输出将要执行的命令,请求确认(或自动执行)。

第三步:构建诊断 Prompt(最关键部分)

AI 运维 Agent 的质量,90% 取决于你给它的诊断 Prompt。以下是经过实战验证的高效诊断模板:

系统健康检查 Prompt

你是一位资深 Linux 系统管理员,负责 24/7 运维一台 VPS。
当前服务器信息:
- 主机名:{hostname}
- 操作系统:{os_info}
- 运行时间:{uptime}
- 服务列表:{services}

请基于以下实时指标进行健康评估:

【CPU 信息】
{top_output}

【内存信息】
{memory_info}

【磁盘信息】
{disk_info}

【网络信息】
{network_info}

【最近日志】
{journalctl_output}

诊断要求:
1. 用简明中文描述当前系统状态
2. 列出所有异常指标及其严重程度(严重/警告/正常)
3. 如存在异常,给出根因分析
4. 建议修复步骤,标注可自动执行的部分
5. 评估是否需要人工介入

自愈脚本示例

一些常见的自动修复脚本可以预编写:

#!/bin/bash
# auto-cleanup.sh — 安全清理脚本

# 1. 清理 Docker 残留
docker system prune -f --volumes 2>/dev/null

# 2. 清理系统日志(保留最近 3 天)
journalctl --vacuum-time=3d

# 3. 清理 apt 缓存
apt-get clean -y

# 4. 清理临时文件
find /tmp -type f -atime +7 -delete 2>/dev/null

# 5. 回收内存缓存
sync && echo 3 > /proc/sys/vm/drop_caches

echo "✅ 清理完成"
df -h /

第四步:深度集成 — 对接告警与动作

为了让 AI Agent 真正有用,你需要把它接入你的运维工作流:

1. 告警输入

配置 Netdata 健康告警,通过 Webhook 推送给 AI Agent:

# /etc/netdata/health_alarm_notify.conf
# 添加 Webhook 通知
SEND_WEBHOOK="YES"
DEFAULT_RECIPIENT_WEBHOOK="http://localhost:8080/alert"

2. 诊断输出

AI Agent 的诊断结果通过以下渠道输出:

  • Telegram Bot:实时推送诊断摘要
  • Slack Webhook:团队共享
  • 本地日志/var/log/ai-ops/,用于事后复盘

3. 动作执行(安全措施)

⚠️ 自动修复风险:AI 执行的 Shell 命令可能有意外副作用。务必做好以下防护:

  • 每个修复步骤设置明确的预检条件
  • 使用 dry-run 模式验证命令效果
  • 对涉及数据删除的操作设置人工确认闸门
  • 保留执行前的系统快照(磁盘快照或 etcd 备份)

实战案例:磁盘告警自动处理

来看一个真实场景——当 AI Agent 检测到磁盘使用率超过 85% 时:

阶段 1:感知

Agent 检测到 /data 分区使用率 87%,触发诊断流程

阶段 2:诊断

# Agent 自动执行排查
du -sh /data/* | sort -rh | head -10  # 找出大文件
docker ps -a --size | sort -k5 -rh | head -5  # Docker 容器大小
find /data -name "*.log" -size +100M  # 大日志文件
journalctl --disk-usage  # Journal 日志占用

阶段 3:决策

Agent 分析结论:
- 根因:Nginx access log 积累至 2.3GB
- 影响:无立即服务中断风险
- 建议:日志轮转 + 压缩旧日志
- 风险等级:低(可自动执行)

阶段 4:执行

# Agent 自动执行修复
logrotate -f /etc/logrotate.d/nginx
find /var/log/nginx -name "*.log.*.gz" -mtime +30 -delete

阶段 5:验证

# Agent 确认效果
df -h /data  # 确认使用率降至 62%
echo "✅ 磁盘清理完成" | telegram-send

进阶场景

AI 运维的能力远不止磁盘清理:

异常流量检测

Agent 通过分析 ssnethogsiftop 数据,发现异常出站流量,自动添加 iptables 规则阻断。

SSL 证书续期

检查证书过期时间,自动执行 certbot renew,验证续期结果并通知。

数据库自动优化

分析慢查询日志(slow query log),建议索引优化方案,在低峰期自动执行。

安全补丁管理

Agent 定期检查安全更新公告,生成补丁计划,在维护窗口自动执行。

注意事项与最佳实践

✅ 要做的

  • 从小范围开始:先监控诊断,再逐步开放自动修复
  • 设置执行沙箱:用 systemd-nspawn 或 Docker 隔离危险操作
  • 保留审计日志:所有 AI 执行的命令和结果都记录存档
  • 设置熔断机制:同一问题重试 3 次后自动上报人工
  • 定期复盘:每周检查 AI 的诊断准确率和修复成功率

❌ 不要做的

  • 不要给 root 权限执行任意 Shell:限定 Agent 可用的命令白名单
  • 不要依赖 AI 处理所有场景:复杂问题(内核 panic、硬件故障)仍需人工
  • 不要忽视告警疲劳:为 AI Agent 设置合理的告警阈值,避免过度干预
  • 不要在生产环境直接上自动修复:先在测试 VPS 上跑两周验证

总结

AI 自动化运维不是要取代运维工程师,而是把运维从"消防员"变成"架构师"。LLM Agent 擅长的是:

  • 🟢 7×24 不间断监控,从不疲劳
  • 🟢 快速执行标准化的诊断流程
  • 🟢 处理 80% 的常见问题(磁盘满、进程挂、内存泄漏)
  • 🟢 生成详细诊断报告,辅助人工决策

而人类运维的价值在于:

  • 🔵 架构设计和技术选型
  • 🔵 复杂故障的根因追溯
  • 🔵 安全策略和容灾规划
  • 🔵 AI Agent 的训练和迭代

最有效的 AI 运维策略 = AI Agent 负责日常巡检和常见故障处理 + 人工工程师负责架构优化和复杂故障应急。

现在就动手:在你的 VPS 上先部署监控层(Netdata),再搭一个只读模式的 AI Agent,让它跑几天帮你发现潜在问题——你会发现,那些你一直没注意到的隐患,AI 早就替你盯上了。


注:本文使用的 Hermes Agent 是一个开源 AI Agent 框架,支持自定义工作流和定时任务。你也可用其他 Agent 框架(如 AutoGPT、Open-interpreter)实现类似功能。

📺 看视频版教程 → DuckDB Lab YouTube

Subscribe for more DuckDB & AI automation tutorials