- 目录重构: app/ -> frontend/,与 backend/ 并列 - 数据库: 默认 SQLite(零配置),修复 DSN() bug - run.sh: 一键启动前后端,支持 start/stop/restart/status - Makefile: install/dev/build/lint/clean 快捷命令 - vite.config.ts: 配置 dev server 端口 5173 + API 代理到 8080 - config.yaml: SQLite 默认配置,开箱即用 - docs/: 完整开发文档(项目结构/API/数据库/规范/部署) - 修复: GORM foreign key 关联声明 - 修复: go get gorm.io/driver/sqlite 依赖
268 lines
6.5 KiB
Markdown
268 lines
6.5 KiB
Markdown
# EZOps AIOps 智能运维平台 - 项目总结
|
||
|
||
## 项目概述
|
||
|
||
EZOps 是一个专业的 AIOps 智能运维平台,包含完整的前后端代码,支持云平台服务器资产管理、Kubernetes 集群管理、应用发布、监控告警、审批流程等核心功能。
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
/mnt/okcomputer/output/
|
||
├── frontend/ # 前端项目 (React + TypeScript + Vite)
|
||
│ ├── src/
|
||
│ │ ├── components/ # 组件目录
|
||
│ │ │ ├── layout/ # 布局组件
|
||
│ │ │ ├── dashboard/ # 仪表盘组件
|
||
│ │ │ ├── server/ # 服务器管理组件
|
||
│ │ │ ├── cloud/ # 云资源管理组件
|
||
│ │ │ ├── k8s/ # K8s 管理组件
|
||
│ │ │ ├── monitor/ # 监控告警组件
|
||
│ │ │ ├── deploy/ # 应用发布组件
|
||
│ │ │ ├── approval/ # 审批流程组件
|
||
│ │ │ ├── navigation/ # 站内导航组件
|
||
│ │ │ ├── automation/ # 自动化运维组件
|
||
│ │ │ ├── system/ # 系统管理组件
|
||
│ │ │ └── ui/ # UI 组件库
|
||
│ │ ├── mocks/ # Mock 数据
|
||
│ │ ├── store/ # 状态管理
|
||
│ │ ├── types/ # TypeScript 类型定义
|
||
│ │ ├── hooks/ # 自定义 Hooks
|
||
│ │ ├── lib/ # 工具函数
|
||
│ │ ├── App.tsx # 应用入口
|
||
│ │ └── main.tsx # 主入口
|
||
│ ├── package.json
|
||
│ ├── vite.config.ts
|
||
│ ├── tailwind.config.js
|
||
│ └── ...
|
||
│
|
||
├── backend/ # 后端项目 (Go + Gin)
|
||
│ ├── cmd/
|
||
│ │ └── main.go # 应用入口
|
||
│ ├── internal/
|
||
│ │ ├── api/
|
||
│ │ │ ├── handlers/ # HTTP 处理器
|
||
│ │ │ ├── middleware/ # 中间件
|
||
│ │ │ └── routes/ # 路由注册
|
||
│ │ ├── config/ # 配置管理
|
||
│ │ └── models/ # 数据模型
|
||
│ ├── pkg/
|
||
│ │ ├── database/ # 数据库连接
|
||
│ │ └── logger/ # 日志工具
|
||
│ ├── scripts/ # 脚本文件
|
||
│ ├── config.yaml.example # 配置文件示例
|
||
│ ├── docker-compose.yml # Docker Compose 配置
|
||
│ ├── Dockerfile # Docker 构建文件
|
||
│ ├── Makefile # 构建脚本
|
||
│ ├── nginx.conf # Nginx 配置
|
||
│ ├── go.mod # Go 模块定义
|
||
│ └── README.md # 项目说明
|
||
│
|
||
├── BACKEND_SUMMARY.md # 后端项目详细说明
|
||
└── PROJECT_SUMMARY.md # 项目总结(本文档)
|
||
```
|
||
|
||
## 功能特性
|
||
|
||
### 1. 仪表盘
|
||
- 资源概览统计
|
||
- 成本费用分析(按云平台、按月维度)
|
||
- 告警消息展示
|
||
- Top5 CPU/内存/磁盘使用率
|
||
- 证书到期提醒
|
||
- 最近告警和发布记录
|
||
|
||
### 2. 服务器资产管理
|
||
- 服务器列表管理
|
||
- 批量导入(云主机导入、Excel 导入)
|
||
- 远程 WebShell
|
||
- 资源模型管理
|
||
- 云账号管理
|
||
- 域名管理(SSL 证书到期提醒)
|
||
- 区域管理
|
||
- 云平台管理
|
||
|
||
### 3. Kubernetes 集群管理
|
||
- 集群管理
|
||
- 节点管理
|
||
- Pod 管理
|
||
- Deployment 详情
|
||
- Service 详情
|
||
- Ingress 详情
|
||
- 拓扑架构图
|
||
|
||
### 4. 监控告警
|
||
- 告警规则管理
|
||
- 告警事件处理
|
||
- 通知渠道配置
|
||
- 指标数据展示
|
||
|
||
### 5. 应用发布
|
||
- CI/CD 流水线管理
|
||
- 发布审批流程
|
||
- 发布记录追踪
|
||
- 回滚功能
|
||
|
||
### 6. 自动化运维
|
||
- 定时任务(CronJob)
|
||
- 脚本库管理
|
||
- 任务执行记录
|
||
- Playbook 编排
|
||
|
||
### 7. 审批流程
|
||
- 审批模板管理
|
||
- 审批流程创建
|
||
- 审批/驳回操作
|
||
|
||
### 8. 站内导航
|
||
- 导航分组管理
|
||
- 导航链接管理
|
||
- 收藏功能
|
||
|
||
### 9. 审计日志
|
||
- 操作日志记录
|
||
- 日志查询、筛选
|
||
- 日志导出
|
||
- 日志统计
|
||
- 日志清理
|
||
|
||
### 10. 系统管理
|
||
- 用户管理
|
||
- 角色权限管理
|
||
- 系统设置
|
||
|
||
## 技术栈
|
||
|
||
### 前端
|
||
- **框架**: React 18
|
||
- **语言**: TypeScript
|
||
- **构建工具**: Vite
|
||
- **样式**: Tailwind CSS
|
||
- **UI 组件**: shadcn/ui
|
||
- **状态管理**: Zustand
|
||
- **数据获取**: TanStack Query (React Query)
|
||
- **路由**: React Router
|
||
- **图表**: Recharts
|
||
- **图标**: Lucide React
|
||
|
||
### 后端
|
||
- **框架**: Gin Web Framework
|
||
- **语言**: Go 1.21+
|
||
- **ORM**: GORM
|
||
- **数据库**: MySQL 8.0+ / PostgreSQL 14+
|
||
- **缓存**: Redis (可选)
|
||
- **认证**: JWT
|
||
- **日志**: Zap
|
||
- **配置**: Viper
|
||
- **文档**: Swagger
|
||
|
||
## 快速开始
|
||
|
||
### 前端
|
||
|
||
```bash
|
||
cd app
|
||
|
||
# 安装依赖
|
||
npm install
|
||
|
||
# 启动开发服务器
|
||
npm run dev
|
||
|
||
# 构建生产版本
|
||
npm run build
|
||
```
|
||
|
||
### 后端
|
||
|
||
```bash
|
||
cd backend
|
||
|
||
# 安装依赖
|
||
go mod download
|
||
|
||
# 复制配置文件
|
||
cp config.yaml.example config.yaml
|
||
|
||
# 启动数据库
|
||
docker-compose up -d mysql redis
|
||
|
||
# 运行
|
||
go run cmd/main.go
|
||
|
||
# 或使用 Makefile
|
||
make run
|
||
```
|
||
|
||
## API 文档
|
||
|
||
启动后端服务后,访问 http://localhost:8080/swagger/index.html 查看 Swagger API 文档。
|
||
|
||
## 部署
|
||
|
||
### Docker 部署
|
||
|
||
```bash
|
||
# 前端
|
||
cd app
|
||
docker build -t ezops-frontend .
|
||
docker run -p 80:80 ezops-frontend
|
||
|
||
# 后端
|
||
cd backend
|
||
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
|
||
```
|
||
|
||
## 默认账号
|
||
|
||
- **用户名**: admin
|
||
- **密码**: admin123
|
||
|
||
## 注意事项
|
||
|
||
1. 生产环境请修改默认的 JWT Secret 和数据库密码
|
||
2. 建议启用 HTTPS
|
||
3. 配置适当的日志轮转策略
|
||
4. 定期备份数据库
|
||
5. 启用审计日志功能
|
||
|
||
## 开发计划
|
||
|
||
### 已完成
|
||
- [x] 前端项目搭建
|
||
- [x] 后端项目搭建
|
||
- [x] 用户认证系统
|
||
- [x] 服务器资产管理
|
||
- [x] K8s 集群管理
|
||
- [x] 监控告警系统
|
||
- [x] 应用发布系统
|
||
- [x] 自动化运维
|
||
- [x] 审批流程
|
||
- [x] 站内导航
|
||
- [x] 审计日志
|
||
|
||
### 待完成
|
||
- [ ] WebSocket 实时通知
|
||
- [ ] 云平台 API 集成
|
||
- [ ] K8s 集群实际连接
|
||
- [ ] 告警通知渠道集成
|
||
- [ ] 流水线实际执行
|
||
- [ ] 自动化任务调度
|
||
- [ ] 更多图表和报表
|
||
- [ ] 多语言支持
|
||
|
||
## 贡献指南
|
||
|
||
1. Fork 本仓库
|
||
2. 创建特性分支 (`git checkout -b feature/xxx`)
|
||
3. 提交更改 (`git commit -am 'Add xxx'`)
|
||
4. 推送到分支 (`git push origin feature/xxx`)
|
||
5. 创建 Pull Request
|
||
|
||
## 许可证
|
||
|
||
MIT License
|