Files
aiops/docs/BACKEND_SUMMARY.md
T
Logan.Li 286decf0b0 docs: 同步 README 与 docs 至最新部署与版本方案
- 更新三种部署方式:embed 单容器、./aiops 根目录二进制
- 补充版本管理、release、lghost/aiops 镜像推送说明
- 修正过时的 docker 4 容器、backend/aiops、run.sh start 等描述
- 更新 project-structure、deployment、quick-start 等核心文档
2026-06-26 16:39:00 +08:00

321 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AIOps 后端项目总结
> **注意**:目录结构已重构,入口为 `backend/main.go`,处理器在 `controller/`。
> 最新结构见 [project-structure.md](./project-structure.md),部署见 [deployment.md](./deployment.md)。
## 项目概述
AIOps 后端是一个基于 Go + Gin 框架开发的专业 AIOps 智能运维平台 API 服务。
前端通过 `go:embed` 嵌入 `backend/static/`,支持单二进制与 embed 单容器部署。
## 项目结构(历史参考,部分路径已变更)
```
backend/
├── main.go # 应用入口(当前)
├── embed.go # 前端静态资源嵌入
├── controller/ # HTTP 处理器(原 handlers)
├── 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. 安装依赖
```bash
cd backend
go mod download
```
### 2. 配置
```bash
cp config.yaml.example config.yaml
# 编辑 config.yaml 修改数据库等配置
```
### 3. 启动数据库
```bash
docker-compose up -d mysql redis
```
### 4. 运行
```bash
# 推荐:项目根目录
./run.sh dev
# 或仅后端
cd backend && go run .
```
### 5. 生成 Mock 数据
```bash
go run scripts/mock.go
```
### 6. 访问 API 文档
打开浏览器访问 http://localhost:8080/swagger/index.html
## Docker 部署
```bash
# 构建镜像
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. 启用审计日志功能