d40042d86e30e890eeb3f12cb3749c94ad76f8a6
AIOps 智能运维平台
企业级云原生智能运维解决方案,集成资产管理、Kubernetes 管理、应用发布、监控告警、自动化运维和 AI 智能分析。
技术栈
前端
- React 19 + TypeScript + Vite
- Tailwind CSS + shadcn/ui
- Zustand (状态管理) / TanStack Query (数据获取)
- Recharts (图表) / Lucide React (图标)
- CodeMirror 6 (YAML 编辑器) / xterm.js (WebSocket 终端)
后端
- Go 1.24 / Gin Web Framework
- GORM (ORM) / MySQL 8.0 / Redis 7 / SQLite (local 模式)
- JWT 认证 / Zap 日志 / Viper 配置
- WebSocket (Gorilla) / PTY 终端 (creack/pty)
- 自研轻量 Kubernetes HTTP 客户端(channel.k8s.io WebSocket 协议)
- go:embed 嵌入前端静态资源(单二进制 / 单容器部署)
Agent
- Go 1.24 静态编译 (CGO_ENABLED=0)
- /proc 指标采集 + 远程任务双通道
- 支持 linux-amd64 / linux-arm64 / darwin-arm64
三种部署方式
| 方式 | 命令 | 架构 | 适用场景 |
|---|---|---|---|
| ① 独立二进制 | ./run.sh build → ./aiops |
单文件 embed,输出到项目根目录 | 无 Docker/K8s,边缘/本机 |
| ② Docker Compose | ./run.sh docker up |
3 容器 (MySQL + Redis + AIOps embed) | 单机生产、演示 |
| ③ Kubernetes | ./run.sh kubernetes deploy |
embed 单容器 + MySQL/Redis StatefulSet | 生产集群,devops 命名空间 |
统一入口 ./run.sh,详见 ./run.sh help。
版本与镜像
- 发布版本:Git tag 为权威来源(如
v1.5.0) - Docker 镜像:
lghost/aiops:<tag>(Docker Hub) - 二进制版本:
./aiops version/GET /version - 一键发版:
./run.sh release v1.5.0(打 tag → 编译二进制 → 构建镜像 → 推送 Docker Hub → 更新 K8s manifest)
docker login
./run.sh release v1.5.0
./aiops version # 查看二进制版本
curl http://localhost:8080/version # 查看运行版本
快速开始
本地开发
./run.sh dev # 前端 :5173 + 后端 :8080 (热重载)
./run.sh stop # 停止
./run.sh status # 查看状态
Docker Compose 部署
./run.sh docker up # 构建并启动 (MySQL + Redis + AIOps)
./run.sh docker up v1.5.0 # 指定版本构建
./run.sh docker push v1.5.0 # 构建并推送到 lghost/aiops
# 访问(前后端同一端口)
# http://localhost:8080
# http://localhost:8080/version
Kubernetes 部署
./run.sh kubernetes deploy # 构建镜像 + 全量部署
./run.sh kubernetes upgrade v1.5.0 # 指定版本滚动更新
./run.sh kubernetes push v1.5.0 # 构建并推送 Docker Hub
# 访问: http://<NODE_IP>:30080
# 镜像: lghost/aiops:<tag>
独立二进制部署
./run.sh build # 编译到项目根目录 ./aiops
./run.sh build tag v1.5.0 # 指定版本编译
./aiops version # 查看版本
./aiops --mode local # 本地模式 (SQLite + redka)
./run.sh binary upgrade # 停服 → 重编译 → 后台启动
Mac 上
./run.sh build产出 darwin 二进制,仅本机可用。
Linux 服务器请在 Linux 上构建,或使用 Docker/K8s embed 镜像(Dockerfile.embed固定GOOS=linux GOARCH=amd64)。
Agent 构建
./run.sh build agent # 交叉编译 Agent (linux-amd64 + linux-arm64)
./agent/aiops-agent-linux-amd64 version
默认账号
| 用户名 | 密码 | 角色 |
|---|---|---|
| admin | 123456 | 超级管理员 |
| ops01 | 123456 | 运维 |
| dev01 | 123456 | 开发 |
项目结构
aiops/
├── frontend/ # 前端 (React + TypeScript)
│ ├── src/components/ # dashboard/server/k8s/monitor/deploy/aiops...
│ └── Dockerfile # [legacy] 独立 Nginx 镜像,Compose 已改用 embed
│
├── backend/ # 后端 (Go + Gin)
│ ├── main.go # 应用入口
│ ├── embed.go # go:embed 前端静态资源
│ ├── static/ # 前端构建产物(embed 目标目录)
│ ├── controller/ # HTTP 处理器
│ ├── router/ # 路由注册
│ ├── model/ # GORM 数据模型
│ ├── pkg/ # database/kubernetesclient/remoteexec/...
│ └── Dockerfile # [legacy] 分离式后端镜像
│
├── agent/ # 监控 Agent(独立 Go module)
├── deploy/kubernetes/ # K8s 部署清单 (devops 命名空间)
├── docker-compose.yml # MySQL + Redis + AIOps embed(3 容器)
├── docker-compose.k8s.yml # 单应用容器(连接外部 DB)
├── Dockerfile.embed # embed 单容器镜像(推荐)
├── run.sh # 统一入口脚本
└── aiops # 独立二进制产物(gitignore,项目根目录)
核心功能
| 模块 | 说明 |
|---|---|
| 仪表盘 | 成本统计、告警聚合、Top 资源、SSL 提醒、趋势图表 |
| 资产管理 | 服务器 CRUD、批量导入、WebShell、云账号/域名/账单 |
| Kubernetes 管理 | 多集群、Deployment 三模式编辑器、Pod 终端/文件浏览、事件聚合 |
| 应用发布 | CI/CD 流水线、发布配置、SSH + K8s 双路径部署 |
| 监控中心 | 监控大屏、主机指标、告警引擎、飞书/钉钉通知 |
| 自动化运维 | 定时任务、脚本库、远程执行(Go-native SSH) |
| AIOps 智能 | AI 助手、告警分析、容量预测 |
| 资源申请 | 云服务器/应用部署申请审批 |
| 系统管理 | 用户/角色、操作审计、凭证配置 |
文档
详细开发文档见 docs/README.md。
| 文档 | 说明 |
|---|---|
| 快速开始 | 环境准备、本地开发 |
| 部署指南 | 二进制 / Docker / K8s / 版本发版 |
| 开发规范 | 代码规范、Git 工作流 |
| 项目结构 | 目录结构说明 |
| CLAUDE.md | AI 助手指引(完整命令参考) |
License
MIT
Languages
TypeScript
62.9%
Go
35.2%
Shell
1%
CSS
0.4%
Python
0.2%
Other
0.2%