AIOps 智能运维平台 — 项目评估报告
审计日期: 2026-06-21
审计方式: 全量代码扫描 + 模块逐项评估
当前版本: v0.2.0 (Phase 2 — AI 能力增强)
综合评分: 72 / 100
一、项目概况
| 项目 |
说明 |
| 名称 |
AIOps 智能运维平台 |
| 定位 |
企业级云原生智能运维解决方案 |
| 仓库 |
gitee.com/attacker/aiops (master 分支) |
| 开发机 |
10.10.10.75 (Ubuntu 24.04, Go 1.22.2) |
| 生产机 |
10.10.10.150 (docker-compose 部署) |
| 部署方式 |
3 种: embed 单容器 / 二进制 / K8s |
| 近 7 天提交 |
171 次 (极度活跃) |
三大核心能力
- 资产管理 — 服务器/云资源(云账号·域名·账单)/K8s 集群
- 监控告警 — Agent 指标采集 / 告警引擎 / 告警中心 / 日志 / 链路追踪 / 监控大屏
- 自动化运维 + AIOps — CronJob/Script/Ansible / 资源审批 / AI 告警分析·故障诊断·脚本生成
二、技术架构评估
技术栈
| 层 |
技术 |
版本 |
端口 |
| 后端 |
Go + Gin + GORM + SQLite(CGO) + JWT + Zap |
Go 1.24 |
8080 |
| 前端 |
React + TypeScript + Vite + Tailwind + shadcn/ui + Zustand + TanStack Query |
React 19 |
5173 |
| Agent |
Go (CGO_ENABLED=0 静态二进制, amd64+arm64) |
Go 1.24 |
— |
| 数据库 |
SQLite (CGO) |
— |
— |
| 缓存 |
Redis |
— |
6379 |
代码规模
| 模块 |
行数 |
文件数 |
说明 |
| 后端 Go |
28,633 |
60+ handler, 25 model |
含 K8s 2583 行 + client 1486 行 |
| 前端 TS/TSX |
50,287 |
15 组件目录 + 6 页面 |
K8s 组件 22 个 |
| Agent Go |
1,701 |
13 文件 |
双通道: 指标采集 + 远程任务 |
| 合计 |
~80,621 |
— |
中大型项目 |
架构亮点
- ✅ Agent 双通道设计 — 指标采集 (10s 上报
/proc) + 远程任务 (5s 轮询),解耦清晰
- ✅ 5 套主题 — CSS 变量驱动,暗色/亮色/紫色/绿色/玫红一键切换
- ✅ WebShell / PTY 终端 — WebSocket 实现,K8s exec + kubectl 双终端
- ✅ 3 种部署方式 — embed 单容器 / 二进制 / K8s,灵活适配
- ✅ RBAC + Item-Role — 细粒度数据级权限控制
- ✅ WebSocket 实时能力 — 终端 / 指标流 / Pipeline 日志 / K8s exec
架构风险
- ⚠️ SQLite + CGO — 单文件数据库,并发写入受限,不适合多实例横向扩展
- ⚠️ kubernetes.go 巨型文件 — 96KB / 2583 行 / 99 函数,严重违反单一职责
- ⚠️ Go module 名仍为
ezops — 与项目名 aiops 不一致 (历史遗留)
- ⚠️ 无消息队列 — 告警/任务全同步处理,高并发下可能阻塞
三、功能完成度评估
后端逐模块 (15 个功能模块)
| # |
模块 |
Handler 文件 |
路由数 |
完成度 |
状态 |
| 1 |
认证/用户/角色 (JWT+RBAC) |
user.go, user_admin.go, role.go, item_role.go |
~25 |
100% |
✅ 生产可用 |
| 2 |
LDAP 集成 |
ldap.go, ldap_ou.go, ldap_users.go |
~12 |
100% |
✅ 生产可用 |
| 3 |
仪表盘 |
dashboard.go |
~4 |
100% |
✅ |
| 4 |
服务器管理 |
server.go, server_batch.go, webshell.go |
~10 |
100% |
✅ 生产可用 |
| 5 |
云资源管理 |
cloud_accounts/domain/platform/region/billing/sync |
~25 |
100% |
✅ 生产可用 |
| 6 |
监控告警 |
prometheus/zabbix/snmp/site/alert* |
~40 |
95% |
✅ 告警渠道待完善 |
| 7 |
Kubernetes |
kubernetes.go (99 函数!) |
74 |
95% |
✅ 核心功能完备 |
| 8 |
CI/CD 部署 |
pipeline*.go, credential*.go, deploy*.go |
~30 |
90% |
✅ 执行器完备 |
| 9 |
自动化运维 |
automation_cron/script, ansible.go |
~20 |
100% |
✅ 15 个 Ansible 模板 |
| 10 |
资源审批 |
approval.go, approval_process.go |
~8 |
100% |
✅ 动态表单 |
| 11 |
AI/LLM |
llm*.go (chat/config/history) |
~10 |
90% |
✅ 多模型支持 |
| 12 |
操作审计 |
audit.go |
~5 |
90% |
⚠️ CSV 导出 TODO |
| 13 |
导航/菜单 |
navigation*.go |
~6 |
100% |
✅ |
| 14 |
Agent 管理 |
agent.go, agent_install.go, agent_task.go |
~15 |
100% |
✅ 含一键安装 |
| 15 |
监控数据源 |
prometheus/zabbix_datasource + proxy |
~15 |
100% |
✅ |
前端逐模块
| 模块 |
组件数 |
代表组件 |
完成度 |
| K8s 管理 |
22 |
DeploymentDetail (719行), TopologyView (586行), PodFileBrowser (552行) |
95% |
| CI/CD 部署 |
8 |
PipelineManager, PipelineEditor, CredentialManager |
90% |
| 监控告警 |
12 |
AlertCenter, GrafanaDashboard, TraceManager |
90% |
| 服务器管理 |
6 |
ServerManager, CloudServerImport, WebShell |
100% |
| 云资源 |
4 |
CloudAccountManager, CloudBilling, DomainManager |
100% |
| 自动化 |
3 |
AnsibleWorkflow (886行) |
100% |
| AI 助手 |
2 |
AIOpsAssistant (686行) |
90% |
| 系统管理 |
4 |
LdapManagementSection |
100% |
| 审批流程 |
3 |
ApprovalFlow, ApprovalCreateDialog |
100% |
| 布局/UI |
— |
sidebar (689行) + shadcn/ui 全家桶 |
100% |
Mock / TODO 清单
| 位置 |
类型 |
严重度 |
说明 |
audit.go:223 |
TODO |
低 |
CSV/Excel 导出未实现 |
scripts/mock.go |
种子数据 |
无 |
开发用 mock 数据生成器,非生产代码 |
scripts/seed*.go |
种子数据 |
无 |
K8s 资源种子数据 |
结论: 生产代码中 Mock 极少,仅 1 个 TODO。功能真实度高。
四、多维度评分
| 维度 |
权重 |
得分 |
加权 |
说明 |
| 功能完整度 |
25% |
90 |
22.5 |
15 模块全部可用,K8s 99 函数覆盖极广 |
| 前后端对接 |
20% |
85 |
17.0 |
367 路由全连通,WebSocket 实时通道完备 |
| 工程质量 |
20% |
30 |
6.0 |
⚠️ 零测试! 无 CI/CD,技术债集中在测试 |
| UI/UX |
15% |
85 |
12.75 |
5 主题,shadcn/ui,响应式,交互流畅 |
| 后端架构 |
20% |
70 |
14.0 |
模块清晰但 kubernetes.go 巨型,SQLite 限扩展 |
| 综合 |
100% |
— |
72.25 |
72 / 100 |
评分雷达图 (ASCII)
五、关键风险 (按严重度排序)
🔴 P0 — 必须立即处理
| # |
风险 |
影响 |
建议 |
| 1 |
零测试覆盖 |
任何改动无回归保护,171 次/周提交量下极其危险 |
立即建立后端单元测试,优先覆盖 K8s/CI-CD/认证模块 |
| 2 |
无 CI/CD 流水线 |
代码质量无门禁,构建/部署全手动 |
搭建 GitHub Actions/Gitea CI,PR 必须过测试+lint |
🟡 P1 — 本版本内处理
| # |
风险 |
影响 |
建议 |
| 3 |
SQLite 并发瓶颈 |
高并发写入锁竞争,无法多实例部署 |
评估迁移 MySQL/PostgreSQL (已有多数据库抽象层) |
| 4 |
kubernetes.go 巨型文件 |
96KB 维护困难,合并冲突高发 |
拆分为 cluster/deployment/pod/hpa/cronjob 等子文件 |
| 5 |
Go module 名 ezops |
与项目名不一致,导入路径混乱 |
全局重命名 ezops → aiops |
| 6 |
无 API 文档自动生成 |
367 路由无 Swagger/OpenAPI |
引入 swaggo 自动生成 API 文档 |
🟢 P2 — 下个版本规划
| # |
风险 |
影响 |
建议 |
| 7 |
无消息队列 |
告警/任务同步处理 |
引入 Redis Stream / NATS 异步化 |
| 8 |
前端无 E2E 测试 |
UI 回归靠人工 |
引入 Playwright 覆盖核心流程 |
| 9 |
审计日志 CSV 导出缺失 |
用户无法导出审计报表 |
实现 audit.go:223 TODO |
六、下一步行动 (优先级排序)
立即行动 (本周)
- 搭建测试框架 — 后端
testing + testify + httptest,前端 Vitest + React Testing Library
- 建立 CI 流水线 —
.gitea/workflows/ci.yml:lint → test → build → docker push
- 拆分 kubernetes.go — 按资源类型拆为 6-8 个文件
短期 (2-4 周)
- 编写核心模块测试 — K8s handler / Pipeline executor / Auth / Alert engine (覆盖率 > 50%)
- 引入 Swagger —
swag init 生成 API 文档,367 路由全覆盖
- module 重命名 —
ezops → aiops 全局替换
- 前端测试基建 — Vitest + Playwright E2E 冒烟测试
中期 (1-2 月)
- 数据库迁移评估 — SQLite → MySQL (利用现有 GORM 抽象层)
- 告警异步化 — 引入 Redis Stream 解耦告警引擎
- 可观测性 — 后端引入 Prometheus metrics + 结构化日志增强
七、总结
AIOps 平台在 功能广度 上已达到企业级水准 — 15 个功能模块、367 条路由、80K+ 行代码,K8s 管理能力尤其突出(99 个函数覆盖集群全生命周期)。前后端对接完整,UI/UX 打磨到位,部署方式灵活。
最大短板是工程质量(30/100): 零测试、无 CI、巨型文件。在 171 次/周的高频提交节奏下,缺乏测试保护是最高风险。当前阶段的战略重心应从"功能开发"转向"质量加固" — 建立 TDD 流程、搭建 CI/CD、拆分巨型文件,为后续的多云管理和智能化升级打下坚实工程基础。