init: EZOps AIOps 智能运维平台

- 前端: React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui
- 后端: Go + Gin + GORM + JWT (golang-jwt/jwt/v5)
- 功能: 服务器管理、K8s集群、监控告警、CI/CD、自动化运维、审批流程、审计日志
- 文档: 设计文档(ROADMAP/PDD/架构/模块)
This commit is contained in:
attacker committed 2026-06-13 23:09:47 +08:00
commit 7d6674bddd
156 files changed
+45704

No files matched your search

+315
View File
@@ -0,0 +1,315 @@
# 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. 安装依赖
```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
# 开发模式
go run cmd/main.go
# 或使用 Makefile
make 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. 启用审计日志功能
+642
View File
@@ -0,0 +1,642 @@
# EZOps AIOps 智能运维平台 - 产品设计文档
> 文档版本: v1.0.0
> 编写日期: 2025-04-14
> 文档状态: 正式发布
---
## 目录
1. [产品概述](#1-产品概述)
2. [目标用户](#2-目标用户)
3. [产品架构](#3-产品架构)
4. [功能设计](#4-功能设计)
5. [AI能力设计](#5-ai能力设计)
6. [界面设计](#6-界面设计)
7. [技术方案](#7-技术方案)
8. [安全设计](#8-安全设计)
9. [部署方案](#9-部署方案)
10. [运营计划](#10-运营计划)
---
## 1. 产品概述
### 1.1 产品定位
EZOps AIOps 智能运维平台是一款面向企业级用户的云原生智能运维解决方案,通过深度集成AI大模型能力,实现运维工作的智能化、自动化,帮助企业降低运维成本、提升系统稳定性。
### 1.2 核心价值
- **降本增效**: AI辅助决策,减少人工干预,提升运维效率
- **预防为主**: 智能预测和预警,防患于未然
- **快速恢复**: 智能诊断和自动修复,缩短故障恢复时间
- **知识沉淀**: 运维经验AI化,实现知识复用
### 1.3 产品Slogan
> **智能运维,让系统更稳定,让团队更高效**
---
## 2. 目标用户
### 2.1 用户画像
| 用户类型 | 角色描述 | 核心需求 | 使用场景 |
|---------|---------|---------|---------|
| 运维工程师 | 日常运维执行者 | 快速定位问题、自动化操作 | 故障处理、日常巡检 |
| 运维主管 | 团队管理者 | 全局视图、效率提升 | 团队管理、决策支持 |
| SRE工程师 | 站点可靠性工程师 | 系统稳定性、性能优化 | 容量规划、性能调优 |
| DevOps工程师 | 开发运维一体化 | CI/CD、自动化发布 | 应用发布、流水线管理 |
| 技术总监 | 技术决策者 | 成本优化、风险评估 | 技术选型、预算规划 |
### 2.2 用户场景
#### 场景1: 故障快速响应
```
用户: 运维工程师小王
场景: 凌晨2点收到告警,生产环境服务响应缓慢
流程:
1. 收到AI告警分析推送,了解根因是数据库连接池耗尽
2. 查看AI推荐的解决方案
3. 一键执行自动修复脚本
4. 验证修复效果,故障恢复
时间: 从30分钟缩短到5分钟
```
#### 场景2: 日常运维自动化
```
用户: SRE工程师小李
场景: 需要每日巡检100+台服务器
流程:
1. 使用AI脚本生成器创建巡检脚本
2. 配置定时任务自动执行
3. AI分析巡检结果,生成报告
4. 异常情况自动创建告警
效果: 节省2小时/天
```
#### 场景3: 容量规划决策
```
用户: 技术总监老张
场景: 规划下季度服务器采购预算
流程:
1. 查看AI预测分析,了解资源使用趋势
2. 获取AI推荐的扩容方案
3. 对比不同方案的成本和性能
4. 做出最优决策
效果: 成本节省20%
```
---
## 3. 产品架构
### 3.1 系统架构
```
┌─────────────────────────────────────────────────────────────────┐
│ 展示层 │
│ ┌──────────────┬──────────────┬──────────────┬──────────────┐ │
│ │ Web控制台 │ 移动App │ 可视化大屏 │ CLI工具 │ │
│ └──────────────┴──────────────┴──────────────┴──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ 接入层 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ API网关 (认证/限流/路由/日志) │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ 服务层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐│
│ │ 资产管理 │ │ 应用发布 │ │ 监控告警 │ │ 自动化 │ │ AIOps ││
│ │ 服务 │ │ 服务 │ │ 服务 │ │ 服务 │ │ 服务 ││
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └────────┘│
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ 数据层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐│
│ │ MySQL │ │ Redis │ │ Prometheus│ │ ES │ │ MinIO ││
│ │ 业务数据 │ │ 缓存 │ │ 时序数据 │ │ 日志 │ │ 对象存储││
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └────────┘│
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ AI服务层 │
│ ┌──────────┬──────────┬──────────┬──────────┬──────────────┐ │
│ │ OpenAI │Anthropic │ Azure │ Ollama │ 本地模型 │ │
│ │ GPT-4 │ Claude │ OpenAI │ 本地部署 │ 微调模型 │ │
│ └──────────┴──────────┴──────────┴──────────┴──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
### 3.2 模块划分
| 模块名称 | 功能描述 | 优先级 |
|---------|---------|--------|
| 资产管理 | 服务器、云资源、域名等资产全生命周期管理 | P0 |
| 应用发布 | CI/CD流水线、发布管理、版本控制 | P0 |
| 监控告警 | 指标采集、告警管理、可视化大屏 | P0 |
| 自动化运维 | 定时任务、脚本管理、Ansible执行 | P1 |
| AIOps智能 | AI助手、告警分析、故障诊断、预测分析 | P0 |
| 系统管理 | 用户权限、操作审计、系统配置 | P1 |
---
## 4. 功能设计
### 4.1 资产管理模块
#### 4.1.1 服务器管理
**功能列表:**
- 服务器CRUD操作
- 批量导入 (Excel/云API)
- 标签管理
- 远程WebShell
- 状态监控
**数据模型:**
```typescript
interface Server {
id: string;
name: string;
hostname: string;
ip: string;
os: string;
cpu: number;
memory: number;
disk: number;
status: 'running' | 'stopped' | 'error';
tags: string[];
cloudProvider?: string;
region?: string;
createdAt: string;
updatedAt: string;
}
```
#### 4.1.2 云账号管理
**功能列表:**
- 多云账号接入 (阿里云/腾讯云/AWS)
- AK/SK安全存储
- 资源自动同步
- 成本分析
### 4.2 应用发布模块
#### 4.2.1 流水线管理
**功能列表:**
- 可视化流水线配置
- 多阶段构建
- 并行/串行执行
- 审批节点
**流水线阶段:**
```yaml
stages:
- name: 代码检出
type: checkout
- name: 构建
type: build
- name: 单元测试
type: test
- name: 镜像构建
type: docker_build
- name: 部署
type: deploy
approval: true
- name: 健康检查
type: health_check
```
#### 4.2.2 发布管理
**功能列表:**
- 发布申请
- 发布审批
- 发布历史
- 一键回滚
### 4.3 监控告警模块
#### 4.3.1 指标监控
**支持指标:**
- CPU使用率
- 内存使用率
- 磁盘使用率
- 网络流量
- 应用性能指标 (QPS/RT/错误率)
#### 4.3.2 告警中心
**功能列表:**
- 告警规则配置
- 告警级别划分 (严重/警告/提示)
- 告警通知 (邮件/短信/钉钉/企业微信)
- 告警抑制和聚合
- AI告警分析
### 4.4 自动化运维模块
#### 4.4.1 定时任务
**功能列表:**
- Cron表达式配置
- 任务执行日志
- 失败重试机制
- 任务依赖管理
#### 4.4.2 Ansible管理
**功能列表:**
- Playbook管理
- 主机清单管理
- 任务执行
- 执行结果展示
### 4.5 K8s集群管理
**功能列表:**
- 多集群管理
- 节点管理
- 工作负载管理 (Deployment/Service/Ingress)
- 架构拓扑可视化
- 资源监控
---
## 5. AI能力设计
### 5.1 AI架构
```
┌─────────────────────────────────────────────────────────────┐
│ AI能力层 │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ AI编排引擎 │ │
│ │ (Prompt管理/上下文管理/工具调用/结果解析) │ │
│ └───────────────────────────────────────────────────────┘ │
│ │ │
│ ┌──────────────┬──────────────┬──────────────┬──────────┐ │
│ │ 告警分析 │ 脚本生成 │ 故障诊断 │ 预测分析 │ │
│ │ Agent │ Agent │ Agent │ Agent │ │
│ └──────────────┴──────────────┴──────────────┴──────────┘ │
│ │ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ 模型接入层 │ │
│ │ OpenAI / Anthropic / Azure / Ollama / 本地模型 │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
### 5.2 AI告警分析
**功能描述:**
- 接收告警事件
- 关联相关日志和指标
- AI分析根因
- 生成修复建议
- 推荐自动修复脚本
**Prompt设计:**
```
你是一位资深的运维专家,请分析以下告警信息:
告警名称: {alert_name}
告警级别: {severity}
告警对象: {target}
告警时间: {time}
告警详情: {details}
相关日志:
{logs}
相关指标:
{metrics}
请提供:
1. 根因分析 (置信度)
2. 影响范围评估
3. 修复建议 (按优先级排序)
4. 自动修复脚本 (如适用)
5. 相似历史案例
```
### 5.3 AI脚本生成
**功能描述:**
- 自然语言描述需求
- AI生成运维脚本
- 支持多语言 (Bash/Python/Ansible)
- 一键测试执行
**Prompt设计:**
```
你是一位运维脚本专家,请根据以下需求生成{language}脚本:
需求描述: {description}
目标系统: {os}
执行环境: {environment}
要求:
1. 添加详细的注释
2. 包含错误处理
3. 添加日志输出
4. 考虑安全性
请生成完整的可执行脚本。
```
### 5.4 AI故障诊断
**功能描述:**
- 接收故障症状描述
- AI分析可能原因
- 提供诊断步骤
- 推荐解决方案
### 5.5 AI预测分析
**功能描述:**
- 分析历史指标数据
- 预测未来趋势
- 容量规划建议
- 异常预警
**预测模型:**
- 时间序列分析 (ARIMA/Prophet)
- 异常检测 (Isolation Forest)
- 趋势预测 (LSTM)
---
## 6. 界面设计
### 6.1 设计原则
- **简洁高效**: 减少用户操作步骤,提升效率
- **信息密度**: 合理的信息展示,避免信息过载
- **一致性**: 统一的视觉风格和交互模式
- **响应式**: 适配不同屏幕尺寸
### 6.2 色彩系统
```css
/* 主色调 */
--primary: #3b82f6; /* 蓝色 - 主要操作 */
--primary-hover: #2563eb;
/* 功能色 */
--success: #10b981; /* 绿色 - 成功 */
--warning: #f59e0b; /* 橙色 - 警告 */
--danger: #ef4444; /* 红色 - 危险 */
--info: #06b6d4; /* 青色 - 信息 */
/* 中性色 */
--slate-900: #0f172a; /* 深色背景 */
--slate-800: #1e293b; /* 卡片背景 */
--slate-700: #334155; /* 边框 */
--slate-100: #f1f5f9; /* 浅色文字 */
/* AI强调色 */
--ai-purple: #8b5cf6; /* 紫色 - AI功能 */
--ai-pink: #ec4899; /* 粉色 - AI强调 */
```
### 6.3 布局结构
```
┌─────────────────────────────────────────────────────────────┐
│ Header (Logo + 全局搜索 + 通知 + 用户头像) │
├──────────┬──────────────────────────────────────────────────┤
│ │ │
│ │ │
│ Sidebar │ Main Content │
│ (菜单) │ (主内容区) │
│ │ │
│ │ │
│ │ │
└──────────┴──────────────────────────────────────────────────┘
```
### 6.4 核心页面
#### 仪表盘
- 系统健康度卡片
- 成本费用图表
- Top资源使用排行
- 告警消息列表
- 快捷操作入口
#### AI智能助手
- 对话界面
- 快捷操作面板
- 能力展示
- 模型配置
---
## 7. 技术方案
### 7.1 技术栈
| 层级 | 技术选型 | 版本 |
|-----|---------|------|
| 前端 | React + TypeScript + Vite | React 18 |
| UI组件 | shadcn/ui + Tailwind CSS | v2.x |
| 状态管理 | Zustand | v4.x |
| 后端 | Go + Gin | Go 1.22 |
| ORM | GORM | v2.x |
| 数据库 | MySQL + Redis | 8.0 / 7.x |
| 消息队列 | RabbitMQ | 3.x |
| 监控 | Prometheus + Grafana | - |
| AI服务 | OpenAI/Anthropic/Azure | - |
### 7.2 API设计
**RESTful API规范:**
```
GET /api/v1/servers # 列表查询
GET /api/v1/servers/:id # 详情查询
POST /api/v1/servers # 创建
PUT /api/v1/servers/:id # 更新
DELETE /api/v1/servers/:id # 删除
```
**AI服务API:**
```
POST /api/v1/ai/chat # AI对话
POST /api/v1/ai/analyze-alert # 告警分析
POST /api/v1/ai/generate-script # 脚本生成
POST /api/v1/ai/diagnose # 故障诊断
POST /api/v1/ai/predict # 预测分析
```
### 7.3 数据模型
**核心实体关系:**
```
User (1) ----< (N) Role
User (1) ----< (N) OperationLog
Server (N) --> (1) CloudAccount
Server (N) --> (N) Tag
Cluster (1) ----< (N) Node
Cluster (1) ----< (N) Workload
Pipeline (1) ----< (N) PipelineStage
Pipeline (1) ----< (N) Release
AlertRule (1) ----< (N) AlertEvent
```
---
## 8. 安全设计
### 8.1 认证授权
- JWT Token认证
- RBAC权限模型
- 操作审计日志
- 敏感数据加密
### 8.2 数据安全
- 数据库连接加密
- 敏感配置加密存储
- 定期数据备份
- 操作日志保留
### 8.3 网络安全
- HTTPS传输加密
- API限流保护
- SQL注入防护
- XSS攻击防护
---
## 9. 部署方案
### 9.1 部署架构
```
┌─────────────────────────────────────────────────────────────┐
│ 负载均衡层 │
│ Nginx / Traefik │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 应用服务层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Frontend │ │ Backend │ │ AI │ │
│ │ (Nginx) │ │ (Gin) │ │ Service │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ MySQL │ │ Redis │ │Prometheus│ │ ES │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
```
### 9.2 部署方式
**Docker Compose (开发/测试):**
```yaml
version: '3.8'
services:
frontend:
image: ezops/frontend:latest
ports:
- "80:80"
backend:
image: ezops/backend:latest
ports:
- "8080:8080"
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
redis:
image: redis:7-alpine
```
**Kubernetes (生产):**
- Helm Chart部署
- ConfigMap配置管理
- Secret密钥管理
- HPA自动扩缩容
---
## 10. 运营计划
### 10.1 版本发布计划
| 版本 | 发布日期 | 主要功能 | 目标用户 |
|-----|---------|---------|---------|
| v0.1.0 | 2025-04 | MVP核心功能 | 早期用户 |
| v0.2.0 | 2025-06 | AI能力增强 | 技术团队 |
| v0.3.0 | 2025-09 | 企业级特性 | 企业客户 |
| v0.4.0 | 2025-12 | 全栈智能化 | 大规模用户 |
| v1.0.0 | 2026-Q1 | 正式发布 | 全量用户 |
### 10.2 成功指标
| 指标 | 目标值 | 测量方式 |
|-----|-------|---------|
| 用户活跃度 | DAU > 1000 | 系统统计 |
| 故障响应时间 | < 5分钟 | 告警系统 |
| AI分析准确率 | > 85% | 用户反馈 |
| 用户满意度 | NPS > 50 | 问卷调查 |
| 系统可用性 | 99.9% | 监控数据 |
### 10.3 迭代策略
- **双周迭代**: 每两周发布一个小版本
- **月度规划**: 每月制定功能规划
- **季度复盘**: 每季度进行产品复盘
- **年度规划**: 每年制定产品路线图
---
## 附录
### A. 术语表
| 术语 | 说明 |
|-----|------|
| AIOps | 人工智能运维,将AI能力应用于IT运维 |
| SRE | 站点可靠性工程 |
| DevOps | 开发运维一体化 |
| CI/CD | 持续集成/持续部署 |
| MTTR | 平均修复时间 |
| MTBF | 平均故障间隔时间 |
### B. 参考资料
- [Google SRE Book](https://sre.google/sre-book/table-of-contents/)
- [The Phoenix Project](https://itrevolution.com/the-phoenix-project/)
- [AIOps白皮书](https://www.gartner.com/en/documents/aiops)
---
*本文档由EZOps产品团队维护,如有疑问请联系 product@ezops.io*
+267
View File
@@ -0,0 +1,267 @@
# EZOps AIOps 智能运维平台 - 项目总结
## 项目概述
EZOps 是一个专业的 AIOps 智能运维平台,包含完整的前后端代码,支持云平台服务器资产管理、Kubernetes 集群管理、应用发布、监控告警、审批流程等核心功能。
## 项目结构
```
/mnt/okcomputer/output/
├── app/ # 前端项目 (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
+379
View File
@@ -0,0 +1,379 @@
# EZOps AIOps 智能运维平台 - 产品路线图
> 版本: v1.0.0
> 更新日期: 2025-04-14
> 状态: 开发中
---
## 概述
EZOps AIOps 智能运维平台是一个面向企业级用户的云原生智能运维解决方案,集成了资产管理、应用发布、监控告警、自动化运维和AI智能分析等核心能力。本路线图规划了产品从MVP到成熟版本的演进路径。
---
## 版本规划
### Phase 1: MVP 核心功能 (已完成) - v0.1.0
**目标**: 构建基础运维平台,实现核心资产管理能力
#### 已完成功能
- [x] **仪表盘**
- 成本费用月维度统计
- 告警消息聚合展示
- Top5 CPU/内存/磁盘使用率
- SSL证书到期提醒
- 系统健康度概览
- [x] **资产管理**
- 服务器管理 (CRUD、批量导入、WebShell)
- 云账号管理 (多云平台接入)
- 域名管理
- 区域管理
- 云平台管理
- 资源模型管理
- [x] **K8s集群管理**
- 集群列表管理
- 节点管理
- 工作负载管理 (Deployment/Service/Ingress)
- 架构拓扑可视化
- [x] **应用发布**
- 流水线配置管理
- 发布管理 (新建发布、发布历史)
- 多环境支持
- [x] **监控告警**
- 指标监控
- 告警中心
- 日志能力
- 链路追踪
- Grafana风格监控大屏
- [x] **自动化运维**
- 定时任务管理
- 脚本库
- Ansible Playbook执行
- [x] **AIOps智能**
- AI智能助手 (大模型对话)
- SQL数据变更审计
- [x] **系统管理**
- 用户管理
- 角色权限
- 操作审计
- 系统设置
---
### Phase 2: AI能力增强 (当前) - v0.2.0
**目标**: 深度集成AI大模型,实现智能运维能力
#### 进行中功能
- [x] **AI告警智能分析**
- 告警根因自动分析
- 相似历史案例匹配
- 自动修复脚本生成
- 修复建议推荐
- [x] **AI脚本生成器**
- 自然语言生成运维脚本
- 支持Bash/Python/Ansible
- 脚本模板库
- 一键测试执行
- [x] **AI故障诊断**
- 故障症状智能分析
- 多维度根因定位
- 解决方案推荐
- 诊断历史管理
- [x] **AI预测分析**
- 关键指标趋势预测
- 容量规划预警
- 异常事件预测
- 资源优化建议
- [x] **AIOps智能运维中心**
- 统一AI功能入口
- AI能力状态监控
- 多模型提供商支持
#### 技术栈
```
前端: React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui
后端: Go + Gin + GORM
AI集成: OpenAI / Anthropic / Azure OpenAI / Ollama
监控: Prometheus + Grafana + SkyWalking
数据库: MySQL + Redis
消息队列: RabbitMQ / Kafka
```
---
### Phase 3: 企业级功能 - v0.3.0 (计划 2025-Q3)
**目标**: 增强企业级特性,提升安全性和可扩展性
#### 计划功能
- [ ] **多云管理平台**
- AWS/阿里云/腾讯云/华为云统一接入
- 云资源自动发现
- 成本分析和优化建议
- 跨云资源调度
- [ ] **安全合规**
- 安全基线检查
- 漏洞扫描集成
- 合规报告生成
- 敏感操作审计
- [ ] **高级监控**
- 自定义仪表盘
- 告警规则智能推荐
- 告警降噪和聚合
- 多渠道告警通知
- [ ] **CI/CD增强**
- 蓝绿发布支持
- 金丝雀发布
- 自动回滚
- 发布审批流程
- [ ] **容器平台**
- 容器镜像管理
- Helm Chart仓库
- 服务网格集成
- Serverless支持
---
### Phase 4: 智能化升级 - v0.4.0 (计划 2025-Q4)
**目标**: 实现全栈智能化,降低人工干预
#### 计划功能
- [ ] **智能自愈**
- 故障自动检测
- 自动修复执行
- 修复效果验证
- 修复策略学习
- [ ] **智能调度**
- 资源自动扩缩容
- 负载均衡优化
- 成本最优调度
- 预测性维护
- [ ] **知识图谱**
- 运维知识库
- 故障知识图谱
- 智能问答增强
- 经验沉淀复用
- [ ] **AIOps工作台**
- 个性化运维视图
- 智能任务推荐
- 运维效率分析
- 团队协作增强
---
### Phase 5: 生态扩展 - v1.0.0 (计划 2026-Q1)
**目标**: 构建开放生态,支持第三方集成
#### 计划功能
- [ ] **开放API平台**
- RESTful API完整覆盖
- GraphQL支持
- Webhook机制
- SDK开发包
- [ ] **插件市场**
- 插件开发框架
- 官方插件库
- 第三方插件审核
- 插件交易机制
- [ ] **社区生态**
- 开源部分核心模块
- 开发者文档
- 技术社区
- 最佳实践分享
- [ ] **企业版功能**
- 高可用架构
- 多租户支持
- SLA保障
- 专属技术支持
---
## 技术架构演进
### 当前架构 (v0.2.0)
```
┌─────────────────────────────────────────────────────────────┐
│ 前端层 │
│ React + TypeScript + Vite + Tailwind CSS + shadcn/ui │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ API网关层 │
│ Go + Gin + Middleware (Auth/RateLimit) │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 业务服务层 │
│ ┌──────────┬──────────┬──────────┬──────────┬──────────┐ │
│ │ 资产管理 │ 应用发布 │ 监控告警 │ 自动化 │ AIOps │ │
│ └──────────┴──────────┴──────────┴──────────┴──────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 数据层 │
│ MySQL + Redis + Prometheus + Elasticsearch │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ AI服务层 │
│ OpenAI / Anthropic / Azure OpenAI / Ollama │
└─────────────────────────────────────────────────────────────┘
```
### 目标架构 (v1.0.0)
```
┌─────────────────────────────────────────────────────────────┐
│ 前端层 │
│ React + 移动端App + CLI工具 + 可视化大屏 │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 网关层 │
│ Kong/Nginx + 负载均衡 + 服务发现 │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 微服务层 │
│ ┌────────┬────────┬────────┬────────┬────────┬────────┐ │
│ │资产服务 │发布服务 │监控服务 │自动化 │AI服务 │平台服务│ │
│ └────────┴────────┴────────┴────────┴────────┴────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 数据平台层 │
│ 数据湖 + 实时计算 + 数据仓库 + 机器学习平台 │
└─────────────────────────────────────────────────────────────┘
```
---
## AI能力路线图
### 当前能力 (v0.2.0)
| 能力模块 | 功能描述 | 完成度 |
|---------|---------|--------|
| AI智能助手 | 大模型对话、运维知识问答 | 100% |
| 告警智能分析 | 根因分析、修复建议 | 100% |
| 脚本生成器 | 自然语言生成脚本 | 100% |
| 故障诊断 | 症状分析、方案推荐 | 100% |
| 预测分析 | 趋势预测、容量规划 | 100% |
### 计划能力 (v0.4.0)
| 能力模块 | 功能描述 | 预计完成 |
|---------|---------|----------|
| 智能自愈 | 故障自动检测和修复 | 2025-Q4 |
| 智能调度 | 资源自动优化调度 | 2025-Q4 |
| 知识图谱 | 运维知识沉淀和复用 | 2025-Q4 |
| 智能推荐 | 个性化运维建议 | 2025-Q4 |
---
## 集成路线图
### 监控集成
- [x] Prometheus
- [x] Grafana
- [x] SkyWalking
- [x] Zabbix
- [ ] ELK Stack
- [ ] Jaeger
- [ ] Datadog
### 云平台集成
- [x] 阿里云
- [x] 腾讯云
- [x] AWS
- [ ] 华为云
- [ ] Azure
- [ ] Google Cloud
### DevOps集成
- [x] GitLab
- [x] Jenkins
- [ ] GitHub Actions
- [ ] ArgoCD
- [ ] Harbor
### AI模型集成
- [x] OpenAI GPT-4
- [x] Anthropic Claude
- [x] Azure OpenAI
- [x] Ollama (本地)
- [ ] 文心一言
- [ ] 通义千问
- [ ] Llama 3
---
## 里程碑
| 里程碑 | 版本 | 计划日期 | 关键交付物 |
|-------|------|---------|-----------|
| MVP发布 | v0.1.0 | 2025-04 | 核心功能可用 |
| AI增强 | v0.2.0 | 2025-06 | AI能力完整 |
| 企业版 | v0.3.0 | 2025-09 | 企业特性完整 |
| 智能化 | v0.4.0 | 2025-12 | 全栈智能化 |
| 正式发布 | v1.0.0 | 2026-Q1 | 生态开放 |
---
## 贡献指南
欢迎社区贡献!请参阅以下资源:
- [开发文档](./docs/DEVELOPMENT.md)
- [贡献指南](./docs/CONTRIBUTING.md)
- [API文档](./docs/API.md)
---
## 联系方式
- 项目主页: https://github.com/ezops/aiops-platform
- 文档中心: https://docs.ezops.io
- 社区论坛: https://community.ezops.io
- 技术支持: support@ezops.io
---
*本路线图会定期更新,请以最新版本为准。*