Files
aiops/README.md
T
attacker 092d0e4b9e refactor: Dockerfile.embed → Dockerfile + fix Login TS error
- Dockerfile.embed 重命名为 Dockerfile(统一命名规范)
- docker-compose.yml / run.sh 引用更新
- 全量文档(CLAUDE/AGENTS/README/docs)Dockerfile.embed → Dockerfile
- fix: Login.tsx User 类型缺少 email/status 字段
2026-07-01 04:54:53 +00:00

188 lines
8.0 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 + **PageShell 统一页面骨架**(`dg-page*` 设计令牌)
- Zustand (状态管理) / TanStack Query (数据获取)
- i18next 国际化(中/英双语,`zh-CN` / `en-US`)
- 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 CLI 引擎(`pkg/agentcli/`):ReAct + Evolver + 双协议 LLM(OpenAI / Anthropic)
### 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` 固定 `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/
│ │ ├── api/ # API 封装(按菜单域拆分:server/k8s/monitor/deploy/...)
│ │ ├── pages/ # 复杂页面(monitor/approval/audit 等域级页面)
│ │ ├── components/ # 业务组件 + layout(PageShell/PageTabs/...)
│ │ ├── locales/ # i18n 翻译文件 (zh-CN / en-US)
│ │ ├── i18n/ # i18next 初始化
│ │ ├── hooks/ # 自定义 Hooks(useTheme / useConfirm 等)
│ │ ├── store/ # Zustand 状态管理
│ │ └── types/ # TypeScript 类型
│ └── Dockerfile # [legacy] 独立 Nginx 镜像,Compose 已改用 embed
│
├── backend/ # 后端 (Go + Gin)
│ ├── main.go # 应用入口
│ ├── embed.go # go:embed 前端静态资源
│ ├── static/ # 前端构建产物(embed 目标目录)
│ ├── controller/ # HTTP 处理器(60+ 文件按领域拆分)
│ ├── router/ # 路由注册
│ ├── model/ # GORM 数据模型(86+ 表)
│ ├── pkg/ # agentcli/remoteexec/kubernetesclient/...
│ └── Dockerfile # [legacy] 分离式后端镜像
│
├── agent/ # 监控 Agent(独立 Go module)
├── docs/ # 开发文档
│ └── agent/ # Agent CLI 设计文档集
├── deploy/kubernetes/ # K8s 部署清单 (devops 命名空间)
├── docker-compose.yml # MySQL + Redis + AIOps embed(3 容器)
├── docker-compose.k8s.yml # 单应用容器(连接外部 DB)
├── Dockerfile # embed 单容器镜像(推荐)
├── run.sh # 统一入口脚本
└── aiops # 独立二进制产物(gitignore,项目根目录)
```
## 核心功能
| 模块 | 说明 |
|------|------|
| 仪表盘 | 成本统计、告警聚合、Top 资源、SSL 提醒、趋势图表 |
| 资产管理 | 服务器 CRUD、批量导入、WebShell、云账号/域名/账单 |
| Kubernetes 管理 | 多集群、Deployment 三模式编辑器、Pod 终端/文件浏览、拓扑图、国际化 |
| 应用发布 | CI/CD 流水线、发布配置、SSH + K8s 双路径部署、凭证管理 |
| 监控中心 | 监控大屏、主机指标、SNMP/站点拨测、**中间件监控**(Redis/MySQL 直连采集)、日志中心(Loki/ES)、**日志告警引擎** |
| 自动化运维 | 定时任务、脚本库、**远程执行**(Go-native SSH,执行/上传) |
| AIOps 智能 | AI 助手、告警分析、容量预测、**Agent CLI**(ReAct + WebSocket 实时回传 + 终端审计回放) |
| 资源申请 | 云服务器/应用部署申请审批 |
| 系统管理 | 用户/角色、操作审计、终端会话审计、凭证配置(7 种类型)、大模型设置(OpenAI + Anthropic 双协议) |
### UI 与体验
- **PageShell 设计系统**:全站统一页面骨架(标题区 / 指标条 / 工具栏 / Tab / 内容区),CSS 变量驱动
- **7 套主题**:跟随系统、深海蓝、明亮白 + One Dark / Dracula / Tokyo Night / Catppuccin
- **国际化**:i18next 框架,已覆盖 dashboard / server / alert / approval / audit / deploy / k8s 等模块
## 文档
详细开发文档见 [docs/README.md](./docs/README.md)。
| 文档 | 说明 |
|------|------|
| [快速开始](./docs/quick-start.md) | 环境准备、本地开发 |
| [部署指南](./docs/deployment.md) | 二进制 / Docker / K8s / 版本发版 |
| [开发规范](./docs/development-guide.md) | 代码规范、Git 工作流、PageShell / i18n |
| [项目结构](./docs/project-structure.md) | 目录结构说明 |
| [Agent CLI 设计](./docs/agent/00-README.md) | ReAct 引擎、Evolver、安全系统 |
| [CLAUDE.md](./CLAUDE.md) | AI 助手指引(完整命令参考) |
| [AGENTS.md](./AGENTS.md) | AI Agent 工作指南 |
## License
MIT