Profile
Back to NewsBack
GitHub Trending 2 min
Reader Mode
GoSimplicity/AI-CloudOps: AI+CloudOps智能化运维平台

GoSimplicity/AI-CloudOps: AI+CloudOps智能化运维平台

15 hours ago

AI-CloudOps

English | 中文

一个基于人工智能的云原生运维管理平台,集成 Kubernetes 管理、监控告警、智能分析等功能。

Go</a> Vue</a> Kubernetes</a> License</a> Stars</a>

!AI-CloudOps

项目介绍

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

项目组成

本项目由三个主要仓库组成:

功能模块

智能运维 (AIOps)

  • 智能监控:基于机器学习的监控数据分析
  • 异常检测:自动识别系统异常和性能问题
  • 故障预测:预测性维护和问题预警
  • 自动修复:基于规则和 AI 的智能修复
  • 根因分析:快速定位故障根本原因

权限管理 (RBAC)

  • 多租户架构:支持多组织隔离
  • 角色管理:灵活的角色权限配置
  • 细粒度权限:操作级别的权限控制
  • 审计日志:完整的操作审计记录

资源管理 (CMDB)

  • 服务树:可视化的资源拓扑结构
  • 资产发现:自动化资源发现和管理
  • 依赖关系:服务依赖图谱管理
  • 标签管理:灵活的资源分类标记

工单系统

  • 工单模板:可定制的工单类型
  • 流程引擎:自动化审批工作流
  • SLA 管理:服务等级协议监控
  • 协作工具:内置沟通和协作功能

监控告警

  • 多维监控:全方位系统性能监控
  • 实时告警:毫秒级告警响应
  • 智能阈值:AI 动态阈值调整
  • 告警收敛:智能告警聚合和降噪

Kubernetes 管理

  • 集群管理:多集群统一管理
  • 应用部署:可视化应用部署和更新
  • 资源监控:Pod、Node、Service 监控
  • 配置管理:ConfigMap 和 Secret 管理

在线演示

演示地址:

登录信息:

  • 用户名: demo
  • 密码: Demo@2025
注意:演示环境仅供测试使用,请勿上传敏感信息

核心贡献者

感谢以下开发者对项目的重要贡献:

Contributors</a>

快速开始

环境要求

  • 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

后端服务地址:

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/                  # 测试用例

贡献指南

贡献流程

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 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%;">

致谢

感谢所有为项目做出贡献的开发者和用户,以及以下开源项目:


如果觉得项目对您有帮助,请给我们一个 Star ⭐

Star History Chart</a>

生产启动安全要求

生产环境设置 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 环境变量读取。

Chat with me