返回
Featured image of post Local AI Ops:先把运维资料收回来,再谈 AI

Local AI Ops:先把运维资料收回来,再谈 AI

Local AI Ops 的开发思路与数据链路:用 React、FastAPI、PostgreSQL、Redis、Celery 和阿里云 OpenAPI 搭建本地优先的运维工作台。

我做 Local AI Ops,不是为了让 AI 替我重启服务器,而是因为自己的域名、ECS、轻量服务器、OSS、续费信息和 SSH 记录散在太多地方。真正出问题时,常常先花十分钟找“这台机器到底在哪”,排故反而只用了五分钟。

Local AI Ops 本地空数据实例

截图使用的是本地空数据实例,所以能看到真实页面结构,但没有云账号、IP、域名、AccessKey 或监控结果。

先把确定的数据链跑通

这个项目是我围绕自己的运维需求立项和开发的,不是给某个现成面板换皮。FastAPI、React、Celery 这些开源框架负责基础能力,阿里云官方 SDK 负责读取云端资源;我主要做的是资产模型、检查流程、告警状态和本地安全边界。

整体数据流没有刻意做复杂,人工请求、定时巡检和诊断各走自己的路径。

用户明确触发资产同步后,FastAPI 会在当前请求中通过 RAM AccessKey 调用阿里云 OpenAPI,把 ECS、轻量应用服务器、OSS、域名和 DNS 转成统一的本地资产。PostgreSQL 保存资产、手工补充的运维资料、检查结果、告警和诊断;Redis、Celery Beat 与 Worker 只负责每分钟筛选并执行已经启用且到期的检查,不承担手动资产同步和诊断。

一次健康检查大致会这样走:Celery Beat 判断哪些检查到期,Worker 执行 HTTP、TCP、SSH、CloudMonitor 或云助手只读命令,把结果写回数据库,再根据连续失败次数更新告警。这里的关键是先拿到可重复验证的事实,而不是先问模型“服务器为什么挂了”。

AI 只放在最后一层

用户针对某条告警发起诊断时,系统会整理当前资产、告警内容和最近几次检查结果,先脱敏,再交给 OpenAI-compatible 接口生成摘要、可能原因和排查步骤。如果没有配置模型,或者接口调用失败,就回退到本地规则建议。

我刻意保留了几条边界:

  • 模型只能给建议,不能自动执行修复。
  • 模型建议只展示、不自动执行;真正进入 SSH 或云助手执行器的命令才受严格的只读白名单限制。
  • 发送给模型前要去掉 AccessKey、密码、私钥和其他敏感字段。
  • AI 不是监控数据的事实来源,HTTP 状态、端口和云指标才是。

这样做没有“全自动 AI 运维”听起来厉害,却更适合个人环境。一条看似正确的重启命令,如果落到错误实例上,损失会比少点几下控制台大得多。

为什么坚持本地优先

默认部署用 Docker Compose 拉起 React、FastAPI、PostgreSQL、Redis 和 Celery。数据库与 Redis 不需要直接暴露到公网,管理入口也定位在可信局域网。AccessKey、SSH 密码、私钥、面板密码和模型 Key 会以 AES-GCM 加密保存,但这不等于“绝对安全”——主密钥仍然要由部署者自己妥善保管。

Local AI Ops 也不打算替代阿里云控制台。云厂商控制台负责完整配置能力,这个工作台更像我的运维索引:哪些资源属于哪个项目、什么时候到期、最近是否可达、出问题时先看什么,都能在一个地方接起来。

AI 也参与开发,但不参与拍脑袋

开发时我会用 AI 编程工具辅助拆需求、补样板代码、梳理接口和测试边界。不过资产结构、安全规则、告警流程和真实云账号验证必须由我自己确定。涉及凭据和自动化时,我更相信“代码里能看到的限制”,而不是一句提示词承诺。

目前它仍是个人和小团队可用的 MVP,不是公网多租户 SaaS。v0.3.0 已经补上资产关系图、续费中心和纯本地数据库知识库;下一步更重要的是把手动同步、检查和诊断真正移入 Worker,并完善备份恢复、定时资产同步和操作审计。

项目入口

评论区 正在连接 GitHub Discussions…
使用 Hugo 构建
主题 Stack 由 Jimmy 设计