AI-CloudOps
English | 中文
一个基于人工智能的云原生运维管理平台,集成 Kubernetes 管理、监控告警、智能分析等功能。
项目介绍
AI-CloudOps 是一个现代化的云原生运维管理平台,旨在通过人工智能技术提升运维效率和系统稳定性。
核心特性
- 智能运维: 基于机器学习的异常检测、故障预测和自动修复
- Kubernetes 管理: 完整的集群管理、应用部署和监控功能
- 监控告警: 基于 Prometheus 的全方位监控和智能告警
- 权限管理: 基于 RBAC 的多租户权限控制系统
- 工单系统: 完整的运维工单流程管理
- 资源管理: CMDB 资产管理和服务拓扑可视化
技术架构
- 后端: Go + Gin + GORM + Redis + MySQL
- 前端: Vue 3 + TypeScript + Ant Design Vue
- AI模块: Python + FastAPI + scikit-learn
- 基础设施: Kubernetes + Prometheus + Grafana
项目组成
本项目由三个主要仓库组成:
- AI-CloudOps - 核心后端服务
- AI-CloudOps-web - 前端界面
- AI-CloudOps-aiops - AI 智能分析模块
功能模块
智能运维 (AIOps)
- 智能监控:基于机器学习的监控数据分析
- 异常检测:自动识别系统异常和性能问题
- 故障预测:预测性维护和问题预警
- 自动修复:基于规则和 AI 的智能修复
- 根因分析:快速定位故障根本原因
权限管理 (RBAC)
- 多租户架构:支持多组织隔离
- 角色管理:灵活的角色权限配置
- 细粒度权限:操作级别的权限控制
- 审计日志:完整的操作审计记录
资源管理 (CMDB)
- 服务树:可视化的资源拓扑结构
- 资产发现:自动化资源发现和管理
- 依赖关系:服务依赖图谱管理
- 标签管理:灵活的资源分类标记
工单系统
- 工单模板:可定制的工单类型
- 流程引擎:自动化审批工作流
- SLA 管理:服务等级协议监控
- 协作工具:内置沟通和协作功能
监控告警
- 多维监控:全方位系统性能监控
- 实时告警:毫秒级告警响应
- 智能阈值:AI 动态阈值调整
- 告警收敛:智能告警聚合和降噪
Kubernetes 管理
- 集群管理:多集群统一管理
- 应用部署:可视化应用部署和更新
- 资源监控:Pod、Node、Service 监控
- 配置管理:ConfigMap 和 Secret 管理
在线演示
演示地址:
登录信息:
- 用户名:
demo - 密码:
Demo@2025
核心贡献者
感谢以下开发者对项目的重要贡献:
- GoSimplicity - 项目发起人和核心维护者
- Penge666 - 资深开发者
- shixiaocaia - 核心贡献者
- daihao4371 - 功能开发者
快速开始
环境要求
- Go 1.21+
- Node.js 21.x
- pnpm latest
- Docker & Docker Compose
- Python 3.11+ (AI 模块)
环境检查
go version # >= 1.21
node --version # >= 21.0
pnpm --version # latest
docker --version # latest
python3 --version # >= 3.11
获取代码
# 克隆后端项目
git clone https://github.com/GoSimplicity/AI-CloudOps.git
cd AI-CloudOps
克隆前端项目
git clone https://github.com/GoSimplicity/AI-CloudOps-web.git
克隆 AI 模块项目
git clone https://github.com/GoSimplicity/AI-CloudOps-aiops.git
开发环境启动
1. 启动基础服务
cd AI-CloudOps
启动数据库和中间件
docker-compose -f docker-compose-env.yaml up -d
配置环境变量
cp env.example .env
检查服务状态
docker-compose -f docker-compose-env.yaml ps
2. 启动前端服务
cd AI-CloudOps-web
安装依赖
pnpm install
启动开发服务器
pnpm run dev
前端将在 http://localhost:3000 启动
3. 启动后端服务
cd AI-CloudOps
安装依赖
go mod tidy
启动后端服务
go run main.go
后端服务地址:
- API 服务: http://localhost:8000
4. 启动 AI 服务 (可选)
cd AI-CloudOps-aiops
配置环境变量
cp env.example .env
安装依赖
pip install -r requirements.txt
训练初始模型
cd data/ && python machine-learning.py && cd ..
启动 AI 服务
python app/main.py
AI 服务地址: http://localhost:8001
生产部署
Docker Compose 部署 (推荐)
cd AI-CloudOps
启动所有服务
docker-compose up -d
查看服务状态
docker-compose ps
查看日志
docker-compose logs -f
Kubernetes 部署
cd deploy/kubernetes/
配置环境变量
cp config.example config
部署到集群
kubectl apply -f .
查看部署状态
kubectl get pods,svc,ingress -l app=ai-cloudops
项目架构
后端结构
AI-CloudOps/
├── cmd/ # 命令行工具
├── config/ # 配置文件
├── internal/ # 核心业务逻辑
│ ├── middleware/ # 中间件
│ ├── model/ # 数据模型
│ ├── k8s/ # Kubernetes 管理
│ ├── user/ # 用户管理
│ ├── prometheus/ # 监控模块
│ ├── workorder/ # 工单系统
│ ├── tree/ # 服务树 CMDB
│ └── system/ # 系统管理
├── pkg/ # 公共包
├── docs/ # API 文档
└── deploy/ # 部署配置
前端结构
AI-CloudOps-web/
├── apps/web-antd/ # 主应用
│ ├── src/
│ │ ├── api/ # API 接口
│ │ ├── components/ # 组件
│ │ ├── views/ # 页面
│ │ ├── router/ # 路由
│ │ └── store/ # 状态管理
│ └── dist/ # 构建产物
└── packages/ # 共享包
AI 模块结构
AI-CloudOps-aiops/
├── app/ # 应用代码
│ ├── api/ # API 路由
│ ├── core/ # 核心逻辑
│ ├── models/ # 数据模型
│ └── services/ # 业务服务
├── data/ # 数据存储
├── config/ # 配置文件
└── tests/ # 测试用例
贡献指南
贡献流程
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
提交规范
使用 Conventional Commits 格式:
<type>(<scope>): <description>
[optional body]
[optional footer]
提交类型:
feat: 新功能fix: Bug 修复docs: 文档更新style: 代码格式refactor: 代码重构test: 测试相关ci: CI/CD 相关
代码规范
- 遵循项目现有代码风格
- 添加必要的注释和文档
- 确保测试覆盖率
- 遵循最佳实践
开源许可
本项目基于 MIT License 开源。
联系我们
- 邮箱:
- 微信: GoSimplicity (添加请备注 "AI-CloudOps")
- GitHub: 提交 Issue
微信交流群
!微信群二维码" alt="image" style="max-width:100%;">
致谢
感谢所有为项目做出贡献的开发者和用户,以及以下开源项目:
- Go - 高性能后端语言
- Vue.js - 渐进式前端框架
- Kubernetes - 容器编排平台
- Prometheus - 监控系统
- Ant Design Vue - 企业级 UI 组件库
如果觉得项目对您有帮助,请给我们一个 Star ⭐
生产启动安全要求
生产环境设置 ENV=production、MOCK_ENABLED=false,并分别注入独立的
JWT_KEY1、JWT_KEY2、TREE_PASSWORD_ENCRYPTION_KEY(至少32字符,不能使用仓库示例值)。
首次空数据库启动使用 BOOTSTRAP_ADMIN_PASSWORD(至少12字符)创建管理员,成功后移除该变量;已有用户不会被重置。
SERVER_ALLOWED_ORIGINS 是逗号分隔的精确 Origin 白名单,留空仅支持同源浏览器访问。
AI 请求通过 Go 的 /api/v1/* 网关接受 JWT 和角色权限检查,然后向
AIOPS_BASE_URL 注入 AIOPS_API_KEY。该密钥必须与 Python 服务一致(生产至少32字符),不得进入前端配置。
非管理员需在角色 API 权限中授权相应 /api/v1/ 路径;服务账号不再自动绕过角色权限。
GET /health 提供进程存活检查,不代表数据库、Redis或外部云服务均已就绪。
生产 SSH 终端必须将经运维人员核验的 OpenSSH known_hosts 文件挂载到服务容器,
设置 SSH_KNOWN_HOSTS 为该文件路径;缺失或主机密钥不匹配时拒绝连接。
TREE_PASSWORD_ENCRYPTION_KEY 必须恰好32字节。WebSocket 使用同源或
SERVER_ALLOWED_ORIGINS 精确白名单校验;审计仅保存操作元数据,不保存请求/响应正文中的凭据。
通知配置支持创建人、处理人、指定用户、角色成员,并自动去重。角色仅解析启用角色中的 启用用户;部门/自定义接收人尚缺组织或地址配置,返回明确错误,不会假报发送成功。 测试通知必须填写实际接收地址;渠道/接收人发送失败会返回错误。
安全维护基线使用 Go 1.26.10、Prometheus 0.311.3 和 Kubernetes Go SDK 0.35.3。
开发环境设置 GOTOOLCHAIN=auto 可按 go.mod 下载所需 Go 工具链。
CI 在每次提交运行 govulncheck;只有显式推送 v* 标签才生成发行附件,
附件通过测试、网关冒烟、静态检查和可达漏洞检查,并提供 SHA256 校验和。
每次受保护请求及刷新令牌均查询当前账号:冻结、删除、注销或用户名变更后,旧令牌立即
被拒绝;账号类型以数据库当前值为准,角色权限仍逐请求查询。数据库不可用时拒绝认证。
内置 admin 为保留的管理账号;撤销其管理权限应冻结或删除该账号,而不是只移除角色。
账号由管理员分配:POST /api/user/signup 保留原有请求格式,但现在必须携带有效的
admin 会话;匿名请求返回401,普通/服务账号返回403。新用户默认普通账号,不能通过
请求体自行获得服务账号权限。登录和刷新令牌仍为公开入口,刷新时校验会话和账号状态。
权限目录在每次启动时从已注册的 Gin 路由幂等初始化,与 MOCK_ENABLED 无关。
已有相同方法/路径的自定义名称和描述不会被覆盖,也不会自动向任何角色授予权限。
管理员可以创建只读角色并选择具体 GET 接口;含 :id 的目录项按注册路由匹配,
不会因为路径参数展开而失效。账号权限与完整工单流转的真实 HTTP 验收脚本位于
scripts/integration/,凭据仅从 BOOTSTRAP_ADMIN_PASSWORD 环境变量读取。