Files
aiops/README.md
T
attacker 69df073d42 chore: 隐藏.hermes目录、删除docker-compose.embed.yml、优化CLAUDE.md和README.md
- .gitignore 新增 .hermes/ 目录,git rm --cached 已追踪的 plan 文件
- 删除 docker-compose.embed.yml(embed 部署统一走 K8s 或独立二进制)
- Makefile 移除 docker-embed 目标
- CLAUDE.md 全面重写:三种部署方式详解、技术栈修正(Go1.24+MySQL/Redis)、架构完善、新增工具懒加载/凭证v2/远程执行/流水线/PTY终端等章节
- README.md 重写:三种部署快速开始、项目结构对齐实际目录、核心功能更新
2026-06-22 17:19:54 +00:00

148 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AIOps 智能运维平台
> 企业级云原生智能运维解决方案,集成资产管理、应用发布、监控告警、自动化运维和 AI 智能分析。
## 技术栈
### 前端
- React 19 + TypeScript + Vite
- Tailwind CSS + shadcn/ui
- Zustand (状态管理) / TanStack Query (数据获取)
- Recharts (图表) / Lucide React (图标)
- xterm.js (WebSocket 终端)
### 后端
- Go 1.24 / Gin Web Framework
- GORM (ORM) / MySQL 8.0 / Redis 7
- JWT 认证 / Zap 日志 / Viper 配置
- WebSocket (Gorilla) / PTY 终端 (creack/pty)
### Agent
- Go 1.24 静态编译 (CGO_ENABLED=0)
- /proc 指标采集 + 远程任务双通道
- 支持 linux-amd64 / linux-arm64 / darwin-arm64
## 三种部署方式
| 方式 | 命令 | 架构 | 适用场景 |
|------|------|------|----------|
| **① 独立二进制** | `./run.sh build` → `./run.sh binary` | 单文件,前后端一体 | 无 Docker/K8s 环境 |
| **② Kubernetes** | `./run.sh k8s deploy` | Embed 单容器 + MySQL/Redis StatefulSet | 生产集群,devops 命名空间 |
| **③ Docker Compose** | `./run.sh docker up` | 4 容器 (MySQL+Redis+Backend+Nginx) | 单机生产,开发/测试 |
统一入口 `./run.sh`,详见 `./run.sh help`。
## 快速开始
### Docker Compose 部署
```bash
# 一键启动全部服务 (MySQL + Redis + 后端 + Nginx 前端)
./run.sh docker up
# 访问
# 前端: http://localhost:80
# 后端: http://localhost:8080
# 健康检查: http://localhost:8080/health
# 管理
./run.sh docker logs # 查看日志
./run.sh docker ps # 容器状态
./run.sh docker down # 停止
```
### 独立二进制部署
```bash
# 编译(前端自动嵌入)
./run.sh build
# 启动
./backend/aiops # 默认 SQLite, 端口 8080
./backend/aiops --port 9090 # 自定义端口
./backend/aiops --db-driver mysql --db-host ... # MySQL 模式
```
### Kubernetes 部署
```bash
# 一键部署到 devops 命名空间
./run.sh k8s deploy
# 访问: http://<NODE_IP>:30080
# 运维
./run.sh k8s status # 资源状态
./run.sh k8s logs # 应用日志
./run.sh k8s upgrade # 滚动更新
```
### 本地开发
```bash
./run.sh dev # 前端 :5173 + 后端 :8080 (热重载)
# 单独启动
cd frontend && npm run dev
cd backend && go run ./cmd/
```
### 默认账号
- 用户名: `admin`
- 密码: `123456`
## 项目结构
```
aiops/
├── frontend/ # 前端 (React + TypeScript)
│ ├── src/components/ # dashboard/server/k8s/monitor/deploy/aiops...
│ ├── src/services/ # API + HTTP 封装
│ ├── src/store/ # Zustand 状态管理
│ └── Dockerfile # nginx:alpine 镜像
│
├── backend/ # 后端 (Go + Gin)
│ ├── cmd/ # 入口 (main + embed + seed + static/)
│ ├── internal/api/ # handlers / middleware / routes
│ ├── internal/models/ # GORM 数据模型
│ ├── pkg/ # 公共包 (database/kubernetesclient/remoteexec/toolinstaller)
│ └── Dockerfile # 3 阶段构建 (Go build → Agent → Alpine Runtime)
│
├── agent/ # 监控 Agent
│ ├── collector/ # /proc 指标采集
│ ├── task/ # 远程任务执行
│ └── reporter/ # HTTP 上报
│
├── deploy/k8s/ # Kubernetes 部署清单
│ ├── namespace.yaml # devops 命名空间
│ ├── secret.yaml # 密钥
│ ├── configmap.yaml # 配置
│ ├── mysql.yaml # MySQL StatefulSet
│ ├── redis.yaml # Redis StatefulSet
│ ├── deployment.yaml # AIOps Deployment + NodePort Service
│ └── ingress.yaml # Ingress 路由
│
├── docker-compose.yml # Docker Compose 4 容器编排
├── Dockerfile.embed # Embed 单容器镜像 (前端→后端→Agent→Runtime)
├── run.sh # 统一入口脚本
└── Makefile # 快捷命令
```
## 核心功能
| 模块 | 说明 |
|------|------|
| 仪表盘 | 成本统计、告警聚合、Top 资源、SSL 提醒 |
| 资产管理 | 服务器 CRUD、批量导入、WebShell、云账号/域名/账单、K8s 集群 |
| 应用发布 | CI/CD 流水线(GitLab CI 风格可视化)、发布配置、发布权限、工具配置 |
| 监控中心 | 监控大屏、指标监控、链路追踪、告警中心、数据源 |
| 自动化运维 | 定时任务、脚本库(Shell/Python)、远程执行(Go-native SSH) |
| AIOps 智能 | AI 智能助手、告警分析、容量预测 |
| 资源申请 | 云服务器/应用部署申请审批 |
| 系统管理 | 用户管理、角色权限、操作审计、终端审计、凭证配置、系统设置 |
## License
MIT