77c234b0600fa3d45785743f9c6637d02bb95bda
F1 告警静默规则 [done]: - 后端 alert_silence.go: CRUD + Toggle (onetime/daily/weekly 三模式) - 告警引擎 isSilenced 集成 (alert_engine.go) - 前端 SilenceRuleTab + SilenceDialog - 路由 /alerts/silences 已注册 F2 审计日志导出 [done]: - 重写 ExportAuditLogs: 真正的 CSV 导出 (encoding/csv + UTF-8 BOM) - 支持 module/action/username/startTime/endTime 筛选 - 导出限制 10000 条防溢出,自动记录审计日志 - JSON 格式向后兼容 (format=json) - 前端 exportLogs 传递查询参数 同时包含累积的前期工作: - 目录重构 internal/ -> controller/model/router (v0.55-v0.57) - 后端分层架构 dto/repository/service/utils - 审计模块全功能 (终端审计/操作审计/登录日志) - asciicast v2 录制格式 - SFTP 文件浏览器 - StatStrip 紧凑统计条 - 在线会话自动刷新 - LiveMonitor WebSocket 诊断修复 验证: go build ✅ | npm run build ✅ | Docker 部署 ✅ | 10 回归端点 ✅ | CSV 导出 ✅ | 静默 CRUD ✅
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 部署
# 一键启动全部服务 (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 部署
# 一键部署到 devops 命名空间
./run.sh kubernetes deploy
# 访问: http://<NODE_IP>: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 镜像
独立二进制部署
# 编译(前端自动嵌入)
./run.sh build
# 启动
./backend/aiops # 默认 SQLite, 端口 8080
./backend/aiops --port 9090 # 自定义端口
./backend/aiops --db-driver mysql --db-host ... # MySQL 模式
本地开发
./run.sh dev # 前端 :5173 + 后端 :8080 (热重载)
# 单独启动
cd frontend && npm run dev
cd backend && go run .
Agent 构建
./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)
│ ├── main.go # 入口 (was cmd/main.go)
│ ├── embed.go # 前端嵌入 (was cmd/embed.go)
│ ├── config/ # 配置加载 (was internal/config)
│ ├── controller/ # HTTP 处理器 (was internal/api/handlers)
│ ├── middleware/ # JWT/日志/CORS (was internal/api/middleware)
│ ├── router/ # 路由注册 (was internal/api/routes)
│ ├── model/ # GORM 数据模型 (was internal/models)
│ ├── cloud/ # 云平台对接 (was internal/cloud)
│ ├── dto/ # 请求/响应传输对象 ★
│ ├── repository/ # 数据访问层 ★
│ ├── service/ # 业务逻辑层 ★
│ ├── utils/ # 工具函数 ★
│ ├── seed/ # 种子数据 (was cmd/seed.go)
│ ├── static/ # 前端构建产物 (was cmd/static/)
│ ├── 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
Languages
TypeScript
62.9%
Go
35.2%
Shell
1%
CSS
0.4%
Python
0.2%
Other
0.2%