Files
aiops/docs/BACKEND_SUMMARY.md
T
attacker 7d6674bddd init: EZOps AIOps 智能运维平台
- 前端: React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui
- 后端: Go + Gin + GORM + JWT (golang-jwt/jwt/v5)
- 功能: 服务器管理、K8s集群、监控告警、CI/CD、自动化运维、审批流程、审计日志
- 文档: 设计文档(ROADMAP/PDD/架构/模块)
2026-06-13 23:09:47 +08:00

9.9 KiB
Raw Blame History

EZOps 后端项目总结

项目概述

EZOps 后端是一个基于 Go + Gin 框架开发的专业 AIOps 智能运维平台 API 服务。

项目结构

backend/
├── cmd/
│   └── main.go                    # 应用入口
├── internal/
│   ├── api/
│   │   ├── handlers/              # HTTP 处理器
│   │   │   ├── user.go           # 用户管理
│   │   │   ├── server.go         # 服务器管理
│   │   │   ├── dashboard.go      # 仪表盘
│   │   │   ├── k8s.go            # K8s 管理
│   │   │   ├── alert.go          # 监控告警
│   │   │   ├── pipeline.go       # 流水线/发布
│   │   │   ├── automation.go     # 自动化运维
│   │   │   ├── approval.go       # 审批流程
│   │   │   ├── navigation.go     # 站内导航
│   │   │   └── audit.go          # 审计日志
│   │   ├── middleware/           # 中间件
│   │   │   └── auth.go           # JWT 认证、管理员权限
│   │   └── routes/               # 路由注册
│   │       └── routes.go
│   ├── config/                   # 配置管理
│   │   └── config.go
│   └── models/                   # 数据模型
│       ├── user.go               # 用户、角色、权限
│       ├── server.go             # 服务器、云账号、域名
│       ├── k8s.go                # K8s 相关模型
│       ├── alert.go              # 告警相关模型
│       ├── cicd.go               # CI/CD 相关模型
│       ├── automation.go         # 自动化运维模型
│       ├── approval.go           # 审批流程模型
│       ├── navigation.go         # 导航模型
│       ├── audit.go              # 审计日志模型
│       └── common.go             # 通用响应模型
├── pkg/
│   ├── database/                 # 数据库连接
│   │   └── database.go
│   └── logger/                   # 日志工具
│       └── logger.go
├── scripts/                      # 脚本文件
│   ├── init.sql                  # 数据库初始化脚本
│   └── mock.go                   # Mock 数据生成
├── config.yaml.example           # 配置文件示例
├── docker-compose.yml            # Docker Compose 配置
├── Dockerfile                    # Docker 构建文件
├── Makefile                      # 构建脚本
├── nginx.conf                    # Nginx 配置
├── go.mod                        # Go 模块定义
├── go.sum                        # Go 模块校验
├── .gitignore                    # Git 忽略文件
└── README.md                     # 项目说明

功能模块

1. 用户管理

  • 用户注册、登录、登出
  • JWT Token 认证
  • 用户信息管理
  • 角色权限管理

2. 资产管理

  • 服务器资产 CRUD
  • 批量导入(云主机、Excel)
  • 云账号管理(阿里云、腾讯云、AWS、华为云)
  • 域名管理(SSL 证书到期提醒)
  • 区域管理

3. Kubernetes 管理

  • 集群管理
  • 节点管理
  • Pod 管理
  • Deployment 详情
  • Service 详情
  • Ingress 详情

4. 监控告警

  • 告警规则管理
  • 告警事件处理
  • 通知渠道配置
  • 仪表盘指标展示

5. 应用发布

  • CI/CD 流水线管理
  • 发布审批流程
  • 发布记录追踪
  • 回滚功能

6. 自动化运维

  • 定时任务(CronJob)
  • 脚本库管理
  • 任务执行记录
  • Playbook 编排

7. 审批流程

  • 审批模板管理
  • 审批流程创建
  • 审批/驳回操作

8. 站内导航

  • 导航分组管理
  • 导航链接管理
  • 收藏功能

9. 审计日志

  • 操作日志记录
  • 日志查询、筛选
  • 日志导出
  • 日志统计
  • 日志清理

API 路由列表

认证相关

  • POST /api/v1/auth/login - 登录
  • POST /api/v1/auth/register - 注册
  • GET /api/v1/user/profile - 获取用户信息
  • PUT /api/v1/user/profile - 更新用户信息
  • PUT /api/v1/user/password - 修改密码

用户管理(管理员)

  • GET /api/v1/admin/users - 用户列表
  • GET /api/v1/admin/users/:id - 用户详情
  • POST /api/v1/admin/users - 创建用户
  • PUT /api/v1/admin/users/:id - 更新用户
  • DELETE /api/v1/admin/users/:id - 删除用户

仪表盘

  • GET /api/v1/dashboard/stats - 统计数据
  • GET /api/v1/dashboard/recent-alerts - 最近告警
  • GET /api/v1/dashboard/recent-releases - 最近发布
  • GET /api/v1/dashboard/metrics - 指标数据

服务器管理

  • GET /api/v1/servers - 服务器列表
  • GET /api/v1/servers/stats - 服务器统计
  • GET /api/v1/servers/:id - 服务器详情
  • POST /api/v1/servers - 创建服务器
  • PUT /api/v1/servers/:id - 更新服务器
  • DELETE /api/v1/servers/:id - 删除服务器
  • POST /api/v1/servers/batch-delete - 批量删除

云账号管理

  • GET /api/v1/cloud-accounts - 云账号列表
  • POST /api/v1/cloud-accounts - 创建云账号
  • DELETE /api/v1/cloud-accounts/:id - 删除云账号

域名管理

  • GET /api/v1/domains - 域名列表
  • POST /api/v1/domains - 创建域名
  • DELETE /api/v1/domains/:id - 删除域名

Kubernetes 管理

  • GET /api/v1/k8s-clusters - 集群列表
  • GET /api/v1/k8s-clusters/:id - 集群详情
  • POST /api/v1/k8s-clusters - 创建集群
  • PUT /api/v1/k8s-clusters/:id - 更新集群
  • DELETE /api/v1/k8s-clusters/:id - 删除集群
  • GET /api/v1/k8s-clusters/:id/nodes - 节点列表
  • GET /api/v1/k8s-clusters/:id/pods - Pod 列表
  • GET /api/v1/k8s-clusters/:id/deployments - Deployment 列表
  • GET /api/v1/k8s-clusters/:id/services - Service 列表
  • GET /api/v1/k8s-clusters/:id/ingresses - Ingress 列表

监控告警

  • GET /api/v1/alerts - 告警事件列表
  • GET /api/v1/alerts/rules - 告警规则列表
  • POST /api/v1/alerts/rules - 创建告警规则
  • PUT /api/v1/alerts/rules/:id - 更新告警规则
  • DELETE /api/v1/alerts/rules/:id - 删除告警规则
  • POST /api/v1/alerts/rules/:id/toggle - 启用/禁用规则
  • POST /api/v1/alerts/:id/ack - 确认告警

应用发布

  • GET /api/v1/pipelines - 流水线列表
  • POST /api/v1/pipelines - 创建流水线
  • GET /api/v1/pipelines/:id - 流水线详情
  • PUT /api/v1/pipelines/:id - 更新流水线
  • DELETE /api/v1/pipelines/:id - 删除流水线
  • POST /api/v1/pipelines/:id/trigger - 触发流水线
  • GET /api/v1/pipelines/:id/runs - 运行记录
  • GET /api/v1/releases - 发布列表
  • POST /api/v1/releases - 创建发布
  • POST /api/v1/releases/:id/approve - 审批发布
  • POST /api/v1/releases/:id/deploy - 执行发布
  • POST /api/v1/releases/:id/rollback - 回滚发布

自动化运维

  • GET /api/v1/cron-jobs - 定时任务列表
  • POST /api/v1/cron-jobs - 创建定时任务
  • GET /api/v1/cron-jobs/:id - 定时任务详情
  • PUT /api/v1/cron-jobs/:id - 更新定时任务
  • DELETE /api/v1/cron-jobs/:id - 删除定时任务
  • POST /api/v1/cron-jobs/:id/toggle - 启用/禁用任务
  • POST /api/v1/cron-jobs/:id/execute - 立即执行
  • GET /api/v1/scripts - 脚本列表
  • POST /api/v1/scripts - 创建脚本
  • GET /api/v1/scripts/:id - 脚本详情
  • PUT /api/v1/scripts/:id - 更新脚本
  • DELETE /api/v1/scripts/:id - 删除脚本
  • POST /api/v1/scripts/:id/execute - 执行脚本

审批流程

  • GET /api/v1/approvals/templates - 审批模板列表
  • POST /api/v1/approvals/templates - 创建审批模板
  • GET /api/v1/approvals/templates/:id - 模板详情
  • PUT /api/v1/approvals/templates/:id - 更新模板
  • DELETE /api/v1/approvals/templates/:id - 删除模板
  • GET /api/v1/approvals/processes - 审批流程列表
  • POST /api/v1/approvals/processes - 创建审批流程
  • GET /api/v1/approvals/processes/:id - 流程详情
  • POST /api/v1/approvals/processes/:id/approve - 审批通过
  • POST /api/v1/approvals/processes/:id/reject - 审批驳回

站内导航

  • GET /api/v1/navigations/groups - 导航分组列表
  • POST /api/v1/navigations/groups - 创建分组
  • PUT /api/v1/navigations/groups/:id - 更新分组
  • DELETE /api/v1/navigations/groups/:id - 删除分组
  • GET /api/v1/navigations/links - 导航链接列表
  • POST /api/v1/navigations/links - 创建链接
  • PUT /api/v1/navigations/links/:id - 更新链接
  • DELETE /api/v1/navigations/links/:id - 删除链接
  • POST /api/v1/navigations/links/:id/favorite - 收藏/取消收藏

审计日志

  • GET /api/v1/audit/logs - 审计日志列表
  • GET /api/v1/audit/logs/:id - 日志详情
  • GET /api/v1/audit/modules - 模块列表
  • GET /api/v1/audit/actions - 操作类型列表
  • GET /api/v1/audit/logs/export - 导出日志
  • GET /api/v1/audit/statistics - 统计信息
  • POST /api/v1/audit/logs/clear - 清理日志

快速开始

1. 安装依赖

cd backend
go mod download

2. 配置

cp config.yaml.example config.yaml
# 编辑 config.yaml 修改数据库等配置

3. 启动数据库

docker-compose up -d mysql redis

4. 运行

# 开发模式
go run cmd/main.go

# 或使用 Makefile
make run

5. 生成 Mock 数据

go run scripts/mock.go

6. 访问 API 文档

打开浏览器访问 http://localhost:8080/swagger/index.html

Docker 部署

# 构建镜像
docker build -t ezops-backend .

# 运行容器
docker run -p 8080:8080 -v $(pwd)/config.yaml:/app/config.yaml ezops-backend

# 或使用 Docker Compose
docker-compose up -d

技术栈

  • 框架: Gin Web Framework
  • ORM: GORM
  • 数据库: MySQL / PostgreSQL
  • 缓存: Redis (可选)
  • 认证: JWT
  • 日志: Zap
  • 配置: Viper
  • 文档: Swagger

注意事项

  1. 生产环境请修改默认的 JWT Secret 和数据库密码
  2. 建议启用 HTTPS
  3. 配置适当的日志轮转策略
  4. 定期备份数据库
  5. 启用审计日志功能