8
0

从 0 到 1 部署一个云服务器运维 Agent

2026-06-15
2026-06-15

最近我在学习 AI Agent 应用开发,希望通过真实的云服务器场景,做一个可以部署、可以访问、可以持续迭代的小项目。

这篇文章记录我从 0 到 1 搭建 Server Ops Agent Demo 的过程。当前版本主要用于辅助检查 Docker、Nginx、内存、磁盘和端口状态,并基于简单规则生成初步的 Agent 分析建议。

项目效果

目前项目已经完成了三个部分:

  • 个人主页:https://xiaowenli.com

  • 在线 Demo:https://ai.xiaowenli.com

  • GitHub 源码:https://github.com/hui20030625/server-ops-agent

其中 Demo 已经开启访问保护,避免服务器运维信息直接暴露到公网。

为什么做这个项目

我想从事 AI Agent 相关方向,所以希望项目不是单纯停留在本地 Demo,而是能真正部署到服务器上。

运维场景很适合作为 Agent 的入门实践,因为它有明确的上下文、明确的工具调用对象,也有真实的判断需求。例如:

  • Docker 容器是否正常运行

  • Nginx 是否处于 active 状态

  • 磁盘空间是否充足

  • 关键端口是否正常监听

  • 当前状态是否需要给出告警或建议

这些都可以逐步演化成一个 Server Ops Agent。

技术架构

当前项目的访问链路如下:

用户浏览器
   ↓
https://ai.xiaowenli.com
   ↓
Nginx HTTPS / Basic Auth
   ↓
127.0.0.1:8888
   ↓
Python Server Ops Agent
   ↓
Linux / Docker / Nginx / Disk / Memory / Ports

技术栈包括:

  • Python

  • Linux

  • Nginx

  • Docker

  • systemd

  • Alibaba Cloud ECS

  • GitHub

当前功能

当前版本实现了以下功能:

  • 查看 Nginx 运行状态

  • 查看 Docker 容器状态

  • 查看服务器内存使用情况

  • 查看系统磁盘使用情况

  • 查看关键端口监听状态

  • 基于规则生成 Agent 分析建议

  • 使用 Nginx 反向代理到独立二级域名

  • 使用 Basic Auth 保护敏感运维信息

  • 使用 systemd 托管服务,支持开机自启

部署过程

项目部署在个人阿里云 ECS 上。

首先,我使用 Python 编写了一个简单的 Web 服务,用于读取服务器状态信息,并将结果展示为网页。

随后,我使用 systemd 将这个 Python 服务托管为后台服务,使它可以在服务器重启后自动恢复。

最后,我通过 Nginx 将 ai.xiaowenli.com 反向代理到本地的 127.0.0.1:8888,并开启 Basic Auth 访问保护。

这样可以避免 Python 服务直接暴露到公网,也能让 Demo 通过 HTTPS 二级域名访问。

遇到的问题

部署过程中遇到过一个端口占用问题。

一开始我使用 nohup python3 app.py 启动过服务,后来又改成 systemd 托管。结果旧的 Python 进程仍然占用了 8888端口,导致 systemd 启动时报错:

Address already in use

解决方式是先杀掉旧的 Python 进程,然后重新启动 systemd 服务。

这次问题也让我更清楚地理解了:正式部署时应该尽量统一使用 systemd 管理服务,避免多个启动方式混用。

后续计划

当前版本还只是一个规则型 Agent 原型。后续我计划继续增加:

  • 接入 LLM,对服务器状态进行自然语言分析

  • 增加异常检测规则,例如磁盘占用过高、服务异常停止

  • 增加一键生成运维报告功能

  • 支持定时检查与告警通知

  • 将运维知识沉淀为长期记忆,形成可迭代的 Server Ops Agent

这个项目会作为我学习 AI Agent 工程化落地的第一个实践项目,后续会继续迭代。

评论