# 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 - JWT 认证 / Zap 日志 / Viper 配置 - WebSocket (Gorilla) / PTY 终端 (creack/pty) - 自研轻量 Kubernetes HTTP 客户端(channel.k8s.io WebSocket 协议) ### 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 kubernetes 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 # 停止 ``` ### Kubernetes 部署 ```bash # 一键部署到 devops 命名空间 ./run.sh kubernetes deploy # 访问: http://:30080 # 运维 ./run.sh kubernetes status # 资源状态 ./run.sh kubernetes logs # 应用日志 ./run.sh kubernetes upgrade # 重新构建 + 滚动更新 ./run.sh kubernetes exec # 进入容器 Shell ./run.sh kubernetes mysql # 进入 MySQL CLI ./run.sh kubernetes redis # 进入 Redis CLI ./run.sh kubernetes scale 3 # 扩缩容 ./run.sh kubernetes port-forward # 端口转发到本机 ./run.sh kubernetes delete # 删除所有 K8s 资源(保留 PVC) ./run.sh kubernetes build # 仅构建 embed 镜像 ``` ### 独立二进制部署 ```bash # 编译(前端自动嵌入) ./run.sh build # 启动 ./backend/aiops # 默认 SQLite, 端口 8080 ./backend/aiops --port 9090 # 自定义端口 ./backend/aiops --db-driver mysql --db-host ... # MySQL 模式 ``` ### 本地开发 ```bash ./run.sh dev # 前端 :5173 + 后端 :8080 (热重载) # 单独启动 cd frontend && npm run dev cd backend && go run ./cmd/ ``` ### Agent 构建 ```bash ./run.sh build agent # 交叉编译 Agent (amd64+arm64) # 验证 ./agent/bin/aiops-agent-linux-amd64 version ./agent/bin/aiops-agent-linux-amd64 output -top-n 3 # Zabbix 风格指标输出 ``` ### 默认账号 - 用户名: `admin` - 密码: `123456` ## 项目结构 ``` aiops/ ├── frontend/ # 前端 (React + TypeScript) │ ├── src/components/ # dashboard/server/kubernetes/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/kubernetes/ # 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、云账号/域名/账单 | | Kubernetes 管理 | 多集群管理、Deployment 三模式编辑器(查看/可视化编辑/YAML)、Node/Pod/Service/Ingress、kubectl 终端、事件聚合、多集群对比、Namespace 管理 | | 应用发布 | CI/CD 流水线(GitLab CI 风格可视化)、发布配置、SSH 主机 + Kubernetes 双路径部署 | | 监控中心 | 监控大屏、主机指标(CPU/内存/磁盘/网络/进程/端口/FD)、告警规则引擎、飞书/钉钉通知 | | 自动化运维 | 定时任务、脚本库(Shell/Python)、远程执行(Go-native SSH)、Ansible | | AIOps 智能 | AI 智能助手(6 种 LLM)、告警分析、容量预测 | | 资源申请 | 云服务器/应用部署申请审批 | | 系统管理 | 用户管理、角色权限、操作审计、终端审计、凭证配置、系统设置 | ### Kubernetes 管理亮点 - **Deployment 三模式编辑器**: 查看模式 / 可视化编辑(5 Tab: 基本信息·容器信息·存储挂载·高级设置·服务路由)/ YAML 编辑(CodeMirror 6 语法高亮) - **StatefulSet/DaemonSet**: 完整详情页(更新策略/选择器/PVC 模板/Init Containers) - **Pod 交互**: 文件浏览器(上传/下载)、exec 终端(WebSocket channel.k8s.io)、日志流 - **集群运维**: 事件聚合看板、多集群对比(雷达图/柱状图)、Node 详情(资源分配率/污点/容器运行时)、Namespace CRUD(资源配额) - **自研轻量客户端**: 不依赖 client-go,net/http + WebSocket 直连 K8s API ## License MIT