Files
aiops/README.md
T
Logan 1acb0c49af feat: Agent CLI 与终端审计回放全面优化
- Agent CLI: 多轮对话、SSH 长连接、流式推理、Evolver 按用户隔离、历史侧栏
- 终端审计: 回放播放器、命令书签、筛选分页导出、命令输出统计、录制落盘修复
- 修复 session_commands 表迁移、Kill 竞态导致录制丢失、无录制会话回放提示
- 审计历史页只读(移除删除),移除回放弹框录制搜索
2026-07-01 12:13:53 +08:00

168 lines
6.3 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 智能运维平台
> 企业级云原生智能运维解决方案,集成资产管理、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)
```bash
docker login
./run.sh release v1.5.0
./aiops version # 查看二进制版本
curl http://localhost:8080/version # 查看运行版本
```
## 快速开始
### 本地开发
```bash
./run.sh dev # 前端 :5173 + 后端 :8080 (热重载)
./run.sh stop # 停止
./run.sh status # 查看状态
```
### Docker Compose 部署
```bash
./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 部署
```bash
./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>
```
### 独立二进制部署
```bash
./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 构建
```bash
./run.sh build agent # 交叉编译 Agent (linux-amd64 + linux-arm64)
./agent/bin/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](./docs/README.md)。
| 文档 | 说明 |
|------|------|
| [快速开始](./docs/quick-start.md) | 环境准备、本地开发 |
| [部署指南](./docs/deployment.md) | 二进制 / Docker / K8s / 版本发版 |
| [开发规范](./docs/development-guide.md) | 代码规范、Git 工作流 |
| [项目结构](./docs/project-structure.md) | 目录结构说明 |
| [CLAUDE.md](./CLAUDE.md) | AI 助手指引(完整命令参考) |
## License
MIT