211 lines
12 KiB
Markdown
211 lines
12 KiB
Markdown
# AIOps 智能运维平台 — 全量项目评估
|
||
|
||
> 最后审计: 2026-06-25 | 审计范围: 全项目(后端/前端/Agent/部署) | 审计人: AI + Logan
|
||
|
||
---
|
||
|
||
## 一、项目规模总览
|
||
|
||
| 层 | 文件数 | 代码行数 | 语言/框架 |
|
||
|----|--------|----------|-----------|
|
||
| **后端** | 116 个 .go | **34,485** | Go 1.24 / Gin / GORM / MySQL 8 / Redis 7 |
|
||
| **前端** | 237 个 .tsx/.ts | **58,648** | React 19 / TypeScript / Vite / Tailwind / shadcn/ui |
|
||
| **Agent** | 21 个 .go | **2,969** | Go 1.24 静态编译 (CGO_ENABLED=0) |
|
||
| **合计** | **374** | **96,102** | — |
|
||
|
||
### 关键指标
|
||
|
||
| 指标 | 数量 |
|
||
|------|------|
|
||
| 后端 API 路由 | **411 条**(GET 171 / POST 144 / DELETE 54 / PUT 41 / PATCH 1) |
|
||
| 后端业务模块 | **48 个**(handlers 目录) |
|
||
| 数据库表 | **86 张** GORM 映射表 |
|
||
| 前端 API 方法 | **352 个**(31 个模块) |
|
||
| 前端路由 | **~50 条**(45 个 lazy 组件,零空壳) |
|
||
| 前端组件 | **215 个** |
|
||
| Agent 采集器 | **11 个**(CPU/Memory/Swap/Disk/DiskIO/Network/Port/ProcessTop/FD/ContextSwitch/HealthProbe) |
|
||
| 侧边栏菜单 | **9 个一级 / 42 个二级** |
|
||
|
||
---
|
||
|
||
## 二、功能模块评估
|
||
|
||
### 2.1 资产管理 ✅ 完善
|
||
|
||
| 功能 | 后端 | 前端 | 状态 |
|
||
|------|:----:|:----:|:----:|
|
||
| 服务器 CRUD + CSV 批量导入 | ✅ | ✅ ServerManager (609L) | ✅ |
|
||
| WebShell SSH 终端 | ✅ webshell.go (325L) | ✅ xterm.js WebSocket | ✅ |
|
||
| 云账号管理(AWS/阿里/华为) | ✅ cloud_sync.go (277L) | ✅ CloudAccountManager | ✅ |
|
||
| 域名/区域/平台管理 | ✅ | ✅ | ✅ |
|
||
| 云账单 | ✅ billing.go (307L) | ✅ | ✅ |
|
||
| Agent 管理(安装/卸载/升级) | ✅ agent.go(624L) + agent_install.go(514L) | ✅ AgentWizard + HostMonitor | ✅ |
|
||
|
||
### 2.2 Kubernetes 管理 ✅ 功能完备
|
||
|
||
| 功能 | 后端 | 前端 | 状态 |
|
||
|------|:----:|:----:|:----:|
|
||
| 多集群 CRUD + 同步 + metrics | ✅ kubernetes.go (4204L, 134 函数) | ✅ ClusterOverviewPage | ✅ |
|
||
| Deployment 三模式编辑器 | ✅ GetYAML/UpdateYAML | ✅ DeploymentWorkload (773L) + 5 Tab 编辑器 (~2700L) | ✅ |
|
||
| StatefulSet/DaemonSet 详情 | ✅ | ✅ WorkloadViewPage (480L) | ✅ |
|
||
| Pod 日志/终端/文件浏览 | ✅ WebSocket channel.k8s.io | ✅ PodLogsViewer/PodExecTerminal/PodFileBrowser | ✅ |
|
||
| Node 详情(资源分配率) | ✅ GetNodeDetail | ✅ NodeDetailPage (330L) | ✅ |
|
||
| 事件聚合看板 | ✅ GetEventsSummary | ✅ EventsPage (480L, recharts) | ✅ |
|
||
| 多集群对比 | ✅ GetMultiClusterComparison | ✅ ClusterComparePage (360L) | ✅ |
|
||
| Namespace 管理 CRUD | ✅ GetNamespacesDetail | ✅ NamespaceManagementPage (280L) | ✅ |
|
||
| kubectl 终端 | ✅ PTY | ✅ KubectlTerminal | ✅ |
|
||
| ConfigMap/Secret 编辑 | ✅ UpdateResourceYAMLNS | ✅ YamlViewer(CodeMirror 6) | ✅ |
|
||
| YAML 语法高亮编辑器 | ✅ | ✅ CodeMirror 6 | ✅ |
|
||
|
||
### 2.3 应用发布 ✅ 完善
|
||
|
||
| 功能 | 后端 | 前端 | 状态 |
|
||
|------|:----:|:----:|:----:|
|
||
| CI/CD 流水线(GitLab CI 风格) | ✅ pipeline.go(580L) + pipeline_executor.go(665L) | ✅ PipelineManager(961L) + PipelineEditor(602L) | ✅ |
|
||
| SSH 主机 + Kubernetes 双路径 | ✅ | ✅ 流水线横幅 | ✅ |
|
||
| 发布配置/凭证/工具 | ✅ credential.go(400L) | ✅ CredentialManager(822L) | ✅ |
|
||
| 发布权限 RBAC | ✅ | ✅ | ✅ |
|
||
|
||
### 2.4 监控告警 ✅ 完善
|
||
|
||
| 功能 | 后端 | 前端 | 状态 |
|
||
|------|:----:|:----:|:----:|
|
||
| 主机监控(Agent 上报) | ✅ agent.go + health_probe.go | ✅ HostMonitor (1094L, 7 Tab) | ✅ |
|
||
| 告警规则引擎 | ✅ alert_engine.go (含日志告警 checkLogAlertRules + 自动恢复) | ✅ AlertCenter (662L) | ✅ |
|
||
| 告警通知(飞书/钉钉/企微/Webhook) | ✅ alert_channels.go (483L) | ✅ AlertContact 管理 | ✅ |
|
||
| **日志告警引擎** | ✅ AlertEngine `type="log"` 规则查询 Loki/ES + 触发/恢复 | ✅ AlertRuleDialog 日志类型 + LogAlertFromQueryDialog 从查询创建 | ✅ F6 done |
|
||
| Prometheus 数据源 + 代理 | ✅ prometheus_datasource.go + proxy | ✅ PrometheusDatasourceManager(829L) | ✅ |
|
||
| Zabbix 数据源 + 代理 | ✅ zabbix_proxy.go (284L) | ✅ | ✅ |
|
||
| 告警静默规则 | ✅ alert_silence.go + engine 集成 | ✅ SilenceRuleTab | ✅ |
|
||
| 监控大屏(自定义仪表盘) | ✅ custom_dashboard.go CRUD | ✅ GrafanaDashboard 自定义 Tab + GrafanaPanelContent PromQL 渲染 | ✅ F4 done |
|
||
| 链路追踪 | ✅ trace_proxy.go Jaeger/Tempo 代理 | ✅ TraceManager (587L) — traceApi 对接真实后端 + demo 数据兜底 | ✅ F5 done |
|
||
| **中间件监控** | ✅ middleware_monitor.go 后端直连采集 Redis/MySQL | ✅ MiddlewareMonitor 完整管理页面 (CRUD + 测试 + 概览) | ✅ M15 done |
|
||
| **主机监控大屏** | ✅ serverApi 复用 | ✅ HostMonitorDashboard (Grafana 风格大屏 + CPU/内存 Top5 排行 + 统计卡片) | ✅ U13 done |
|
||
|
||
### 2.5 自动化运维 ✅ 完善
|
||
|
||
| 功能 | 后端 | 前端 | 状态 |
|
||
|------|:----:|:----:|:----:|
|
||
| 定时任务(CronJob) | ✅ automation_cron.go (411L) | ✅ CronJobManager | ✅ |
|
||
| 脚本库(Shell/Python) | ✅ automation_script.go (356L) | ✅ ScriptManager | ✅ |
|
||
| 远程执行(Go-native SSH) | ✅ remote_exec.go (309L) | ✅ | ✅ |
|
||
| Ansible Playbook | ✅ ansible.go (462L) | ✅ AnsibleWorkflow(886L) | ✅ |
|
||
|
||
### 2.6 AIOps 智能 ✅ 基础完善
|
||
|
||
| 功能 | 后端 | 前端 | 状态 |
|
||
|------|:----:|:----:|:----:|
|
||
| AI 智能助手(6 种 LLM) | ✅ llm_chat.go (349L, SSE 流式) | ✅ AIOpsAssistant(694L) | ✅ |
|
||
| 告警分析 | ✅ | ✅ | ✅ |
|
||
| 容量预测 | ✅ | ✅ | ✅ |
|
||
|
||
### 2.7 资源申请 ✅ 完善
|
||
|
||
| 功能 | 后端 | 前端 | 状态 |
|
||
|------|:----:|:----:|:----:|
|
||
| 云服务器申请审批 | ✅ | ✅ | ✅ |
|
||
| 应用部署申请 | ✅ | ✅ | ✅ |
|
||
|
||
### 2.8 系统管理 ✅ 完善
|
||
|
||
| 功能 | 后端 | 前端 | 状态 |
|
||
|------|:----:|:----:|:----:|
|
||
| 用户/角色权限 (RBAC) | ✅ user.go + user_admin.go + ldap.go(319L) | ✅ SystemManager | ✅ |
|
||
| LDAP 集成 | ✅ ldap.go + ldap_users.go(397L) | ✅ | ✅ |
|
||
| 操作审计 | ✅ audit.go (360L) + CSV 导出 | ✅ | ✅ |
|
||
| 终端审计(WebSSH 录制) | ✅ | ✅ | ✅ |
|
||
| 凭证管理 | ✅ credential.go(400L) | ✅ | ✅ |
|
||
| 系统设置 | ✅ | ✅ | ✅ |
|
||
|
||
---
|
||
|
||
## 三、技术债评估
|
||
|
||
### 3.1 🔴 高优先级
|
||
|
||
| 问题 | 影响 | 范围 | 建议优先级 |
|
||
|------|------|------|:----------:|
|
||
| ~~`kubernetes.go` 4204 行/134 函数~~ → 已拆分为 12 个域文件(最大 696 行) | ✅ 已解决 | 后端 | ~~P0~~ done |
|
||
| ~~`api.ts` 1324 行/352 方法~~ → 已拆分为 12 个域文件 (api/kubernetes.ts, deploy.ts, monitor.ts 等) | ✅ 已解决 | 前端 | ~~P0~~ done |
|
||
| 前端 **1026 处** `any` 类型 | 类型安全缺失,重构风险高 | 前端全局 | ~~P0~~ **done** (any 1076→40, unused 25→6, console 93→1, tsc --noEmit=0) |
|
||
| ~~K8s 双路由体系(集群域+Kuboard 域)~~ → code 路由统一为主,ID 路由标记 deprecated 向后兼容 | ✅ 已解决 | 后端 | ~~P1~~ done |
|
||
| 25 个 ≥500 行巨型组件 | 拆分困难 | 前端 | P1 → **Q6-Q37 done: 最大组件 ResourceVisualEditor 882L→282L (-68%) + AgentCLI 814L→521L (-36%) + SystemSettingsTab 754L→173L (-77%) + NamespaceResourcePage 719L→300L (-58%) + ApprovalWorkflowPage 705L→167L (-76%) + PipelineRunDetail 678L→273L (-60%) + CloudServerImport 699L→404L (-42%,any[]→具体接口) + UnifiedQueryPanel 682L→529L (-22%) + ServerManager 652L→442L (-32%) + PipelineEditor 676L→406L (-40%) + RdpDialog 642L→442L (-31%) + DeploymentEditService 627L→394L (-37%) + TraceManager 605L→331L (-45%,修复 SpanTreeNode 内联定义反模式) + GrafanaDashboard 624L→78L (-87%,DRY 合并 Zabbix/Prometheus Tab + 移除文件级 eslint-disable + 类型安全升级) + TopologyView 596L→472L (-21%) + DeploymentEditAdvanced 590L→289L (-51%) + WorkloadViewPage 572L→348L (-39%) + CloudAccountManager 572L→308L + ExcelServerImport 560L→385L + PipelineCreateDialog 559L→498L + PodLogsViewer 553L→331L (-40%) + HostMonitor 547L→224L (-59%) + KubernetesClusterDetail 547L→130L (-76%) + **AlertCenter 542L→312L (-42%,提取 4 个受控组件)** + **CloudBilling 534L→295L (-45%,提取 cloud-billing/ 3 个文件)** + **PromDsFormDialog 528L→294L (-44%,提取 6 个文件: CollapsibleSection DRY)**,累计提取 117 个独立组件文件 + **predictUtils.ts 716L→49L barrel re-export (-93%)** + **k8s-yaml-utils.ts 504L→451L + k8s-helpers.ts 67L (barrel re-export 保持 8 消费者零修改)** |
|
||
|
||
### 3.2 🟡 中优先级
|
||
|
||
| 问题 | 数量 | 建议优先级 |
|
||
|------|------|:----------:|
|
||
| 前端未使用变量/导入(ESLint no-unused-vars) | ~~218 处~~ → **0 处** | ~~P1~~ ✅ done |
|
||
| 前端 console.log/console.error | ~~93 处~~ → **3 处** | ~~P1~~ ✅ done |
|
||
| 前端 React Hooks 关键规则(exhaustive-deps/set-state-in-effect/purity/immutability 等 6 大规则) | ~~82 处回归~~ → **0 处**(U12 修复 i18n 全量改造引入的回归) | ~~P1~~ ✅ done (U12) |
|
||
| 后端 `_ =` 忽略错误 | ~~13 处(3 处中风险)~~ → **controller/middleware 层 DB 写入零忽略**(Q4+Q5 全量治理) | ~~P2~~ ✅ done |
|
||
| 前端硬编码内网 IP(10.10.10.75 等) | 6+ 处 | P2 |
|
||
| 后端告警引擎分布式安全 | ✅ Redis 分布式锁(SetNX + 60s TTL) | 后端 | ~~P2~~ done |
|
||
|
||
### 3.3 🟢 低优先级
|
||
|
||
| 问题 | 数量 |
|
||
|------|------|
|
||
| ~~前端死代码(HostMonitorDashboard lazy 未挂载)~~ → **U13 done: 已挂载为 `/host-dashboard` 路由 + 监控菜单「主机大屏」** | ~~1 处~~ ✅ done |
|
||
| ~~前端 `set-state-in-effect`(潜在无限循环)~~ → **U12 done: 0 处** | ~~7 处~~ ✅ done |
|
||
| ~~前端 `react-hooks/purity`(render 调 Date.now)~~ → **U12 done: 0 处** | ~~6 处~~ ✅ done |
|
||
| 后端 `exec.Command` + `bash -c`(命令注入面) | 18 处(需审计用户输入路径) |
|
||
|
||
### 3.4 Mock API / 未对接后端
|
||
|
||
| 前端 API 模块 | 方法数 | 状态 | 需要 |
|
||
|---------------|--------|------|------|
|
||
| ~~`dashboardApi`(Grafana 大屏)~~ | ~~6~~ | ~~mock 返回空~~ → **F4 done: 真实 CRUD + PromQL 查询** | ✅ 已对接 |
|
||
| ~~`traceApi`(链路追踪)~~ | ~~3~~ | ~~mock 返回空~~ → **F5 done: Jaeger/Tempo 代理 + demo 兜底** | ✅ 已对接 |
|
||
|
||
---
|
||
|
||
## 四、架构评估
|
||
|
||
### 4.1 部署架构
|
||
|
||
| 方式 | 架构 | 容器数 | 状态 |
|
||
|------|------|--------|:----:|
|
||
| Docker Compose | MySQL+Redis+Backend+Nginx | 4 | ✅ |
|
||
| Kubernetes | Embed 单容器 + MySQL/Redis StatefulSet | 3+ | ✅ |
|
||
| 独立二进制 | Go embed 前端 | 1 | ✅ |
|
||
|
||
### 4.2 镜像体积
|
||
|
||
| 镜像 | 大小 | 评估 |
|
||
|------|------|------|
|
||
| aiops-backend | ~~277 MB~~ → **107 MB** | ✅ U4 镜像瘦身完成(git/docker-cli 改懒加载, 仅 amd64 agent, kubectl stripped) |
|
||
| aiops-frontend | 69.8 MB | ✅ Nginx Alpine |
|
||
| aiops-embed | 54.9 MB | ✅ 单文件 |
|
||
|
||
### 4.3 数据库架构
|
||
|
||
- **86 张表**,前缀规范统一:`iam_` / `asset_` / `monitor_` / `ops_` / `deploy_` / `ai_` / `sys_` / `kubernetes_`
|
||
- GORM AutoMigrate,UTF-8MB4
|
||
- 已做索引审计(20 个重复索引已清理)
|
||
|
||
### 4.4 安全
|
||
|
||
| 项 | 状态 |
|
||
|----|:----:|
|
||
| JWT 认证 | ✅ |
|
||
| RBAC 角色权限(后端) | ✅ |
|
||
| RBAC 前端按钮级控制 | ✅ `usePermission` hook + `<HasPermission>` + Sidebar 过滤 |
|
||
| SQL 注入防护 | ✅ 全参数化 |
|
||
| XSS 防护 | ✅ React 默认 |
|
||
| HTTPS | ⚠️ 生产未强制 |
|
||
| 密码 Bcrypt | ✅ |
|
||
|
||
---
|
||
|
||
## 五、综合评分
|
||
|
||
| 维度 | 评分 | 说明 |
|
||
|------|:----:|------|
|
||
| 功能完整性 | **95/100** | 8 大模块齐全,K8s 管理极为完善;链路追踪 F5 + 自定义仪表盘 F4 + **日志告警引擎 F6**(日志查询→告警规则→触发/恢复闭环)全部对接真实后端 |
|
||
| 代码质量 | **82/100** | 后端规范好(0 panic, 1 TODO);前端 any 从 1026 降至 40 + tsc --noEmit 零错误,类型安全大幅提升 |
|
||
| 架构设计 | **86/100** | 前后端分离清晰,自研轻量 K8s 客户端;kubernetes.go/api.ts 已拆分,K8s 双路由已统一为 code 路由为主 (A1 done),WebSocket 统一管理 (A3 done) |
|
||
| 部署运维 | **90/100** | 三种部署方式 + run.sh 统一入口;镜像优化 U4 done (282MB→107MB) |
|
||
| 用户体验 | **91/100** | 骨架屏 + 页面过渡 + 5 套主题 + 懒加载 + 虚拟滚动 + 统一 DataTable + **i18n 国际化(中/英双语切换,11 命名空间 1204 键,含 Kubernetes 模块)** |
|
||
| **综合** | **91/100** | 企业级运维平台,功能覆盖全面,所有 mock API 已清零(dashboardApi F4 + traceApi F5),日志告警引擎 F6 补全日志→告警闭环,P0-P3 + F4-F6 全部完成 |
|