- 新增 k8s 翻译命名空间: cluster/tab/column/empty/label/topology/resource/workload 8 子命名空间
- KubernetesClusterDetail.tsx: 7 Tab(概览/节点/Pod/Deployment/Service/Ingress/事件) 表头+空状态+趋势图标签全量国际化
- TopologyView.tsx: 标题/编辑模式/连线模式/节点编辑弹框/Toast/搜索栏全量国际化
- 新增 common.duration.minAgo 插值键
- 翻译键 1019→1204(+185), 11 命名空间, zh-CN/en-US 完全对齐
- tsc --noEmit=0, npm build✅(17.81s), 17/17 测试通过
10 KiB
10 KiB
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 |
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 函数 |
✅ 已解决 | 后端 | |
api.ts 1324 行/352 方法 |
✅ 已解决 | 前端 | |
前端 1026 处 any 类型 |
类型安全缺失,重构风险高 | 前端全局 | |
| ✅ 已解决 | 后端 | ||
| 25 个 ≥500 行巨型组件 | 拆分困难 | 前端 | P1 |
3.2 🟡 中优先级
| 问题 | 数量 | 建议优先级 |
|---|---|---|
| 前端未使用变量/导入(ESLint no-unused-vars) | ||
| 前端 console.log/console.error | ||
| 前端 React Hooks exhaustive-deps 缺失 | 38 处 | P1 |
后端 _ = 忽略错误 |
13 处(3 处中风险) | P2 |
| 前端硬编码内网 IP(10.10.10.75 等) | 6+ 处 | P2 |
| 后端告警引擎分布式安全 | ✅ Redis 分布式锁(SetNX + 60s TTL) | 后端 |
3.3 🟢 低优先级
| 问题 | 数量 |
|---|---|
前端 set-state-in-effect(潜在无限循环) |
7 处 |
前端 react-hooks/purity(render 调 Date.now) |
6 处 |
| 前端死代码(HostMonitorDashboard lazy 未挂载) | 1 处 |
后端 exec.Command + bash -c(命令注入面) |
18 处(需审计用户输入路径) |
3.4 Mock API / 未对接后端
| 前端 API 模块 | 方法数 | 状态 | 需要 |
|---|---|---|---|
dashboardApi(Grafana 大屏) |
✅ 已对接 | ||
traceApi(链路追踪) |
✅ 已对接 |
四、架构评估
4.1 部署架构
| 方式 | 架构 | 容器数 | 状态 |
|---|---|---|---|
| Docker Compose | MySQL+Redis+Backend+Nginx | 4 | ✅ |
| Kubernetes | Embed 单容器 + MySQL/Redis StatefulSet | 3+ | ✅ |
| 独立二进制 | Go embed 前端 | 1 | ✅ |
4.2 镜像体积
| 镜像 | 大小 | 评估 |
|---|---|---|
| aiops-backend | ✅ 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 全部完成 |