- 更新三种部署方式:embed 单容器、./aiops 根目录二进制 - 补充版本管理、release、lghost/aiops 镜像推送说明 - 修正过时的 docker 4 容器、backend/aiops、run.sh start 等描述 - 更新 project-structure、deployment、quick-start 等核心文档
10 KiB
10 KiB
AIOps 后端项目总结
注意:目录结构已重构,入口为
backend/main.go,处理器在controller/。
最新结构见 project-structure.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. 安装依赖
cd backend
go mod download
2. 配置
cp config.yaml.example config.yaml
# 编辑 config.yaml 修改数据库等配置
3. 启动数据库
docker-compose up -d mysql redis
4. 运行
# 推荐:项目根目录
./run.sh dev
# 或仅后端
cd backend && go 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
注意事项
- 生产环境请修改默认的 JWT Secret 和数据库密码
- 建议启用 HTTPS
- 配置适当的日志轮转策略
- 定期备份数据库
- 启用审计日志功能