# AI_OPS
**Repository Path**: big-sun_1/ai_ops
## Basic Information
- **Project Name**: AI_OPS
- **Description**: AI运维助手
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2026-09-28
- **Last Updated**: 2026-09-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ITOps Platform — AI 驱动的智能运维自动化平台
🚀 在线演示:http://8.137.178.63(共享环境,推荐自部署)
|
📖 快速开始
|
🐳 Docker 部署
|
☸️ K8s 部署
---
## 📖 项目简介
ITOps Platform 是一个 **AI 驱动的智能运维自动化平台**,将"告警触发 → 故障诊断 → 命令生成 → 安全拦截 → SSH 执行 → 结果验证 → 多通道通知"全流程自动化。
传统运维中,Prometheus 告警触发后需要人工 SSH 逐台排查、靠个人经验修复、手动记录处理结果。ITOps 通过 **12 个专业 AI Agent + RAG 语义检索知识库 + 可视化工作流引擎**,将 MTTR(平均修复时间)从 **30 分钟降低到 3 分钟**。
```mermaid
graph TB
subgraph 用户交互
WEB[Web UI
Next.js + React Flow]
end
subgraph 核心引擎
API[FastAPI 网关
60+ REST 端点]
AI[Multi-Agent Engine
12 个专业 Agent]
RAG[RAG 知识库
sentence-transformers]
WF[WorkflowEngine
DAG 拓扑并行执行]
SCH[定时巡检
APScheduler 300s]
end
subgraph 数据层
PG[(PostgreSQL 16
业务数据 + 审计)]
RD[(Redis 7
会话 + 限流)]
end
subgraph 外部集成
LLM[LLM API
GLM / DeepSeek / OpenAI]
SSH[SSH 连接池
AsyncSSH 30 连接]
NOTIFY[多通道通知
钉钉/企微/飞书/邮件]
PROM[Prometheus
Webhook 告警源]
end
WEB --> API
API --> AI
API --> RAG
API --> WF
API --> SCH
AI --> LLM
AI --> SSH
API --> PG
API --> RD
PROM --> API
WF --> NOTIFY
```
---
## 🎯 解决的核心问题
| 痛点 | 传统方式 | ITOps 方案 |
|------|---------|-----------|
| **告警响应慢** | 人工 SSH 逐台排查,MTTR ~30 分钟 | AI 自动诊断+修复,MTTR ~3 分钟 |
| **知识碎片化** | 运维经验分散在个人脑中,无法复用 | RAG 语义检索知识库,AI 基于真实经验回答 |
| **操作风险高** | 手动执行命令,无审计追溯 | 13 条危险命令黑名单 + 完整审计日志 |
| **重复劳动** | 80% 告警是固定套路,每次都手动处理 | 工作流引擎编排,自动执行 |
| **通知单一** | 仅邮件告警,容易遗漏 | 5 通道通知(钉钉/企微/飞书/邮件/Webhook) |
---
## ✨ 核心功能
### 🤖 12 个专业 AI Agent
| Agent | 功能 | SSH | LLM |
|-------|------|:---:|:---:|
| `monitor` | CPU / 内存 / 磁盘 / 负载 / 进程 / 连接数采集 | ✅ | 可选 |
| `diagnostic` | 根因分析,生成假设+证据链 | ✅ | ✅ |
| `remediation` | 预检 → 修复 → 验证三步安全修复 | ✅ | ✅ |
| `alert_analyzer` | 告警严重程度评估(P0-P4) | ❌ | ✅ |
| `log_analyzer` | journalctl / dmesg 日志取证与异常识别 | ✅ | ✅ |
| `change_executor` | 变更计划 + 回滚方案生成 | 可选 | ✅ |
| `doc_generator` | Markdown 巡检报告生成 | 可选 | ✅ |
| `compliance_checker` | 8 项安全合规检查评分 | ✅ | ✅ |
| `shell_command` | 直接执行 Shell,**不依赖 LLM** | ✅ | ❌ |
| `health_check` | HTTP GET 检查服务健康状态 | ❌ | ❌ |
| `webhook` | POST 上游结果到 Webhook URL | ❌ | ❌ |
| `generic` | 通用运维助手,意图识别自动路由 | ❌ | ✅ |
### 🔧 AI 自动修复管道
```
Prometheus Webhook → 告警入库(去重) → RAG 知识检索 → LLM 生成命令
→ 13项安全检查 → SSH 连接池执行 → LLM 分析结果 → 更新告警状态 → 多通道通知
```
**三层安全防护:**
1. **Prompt 层** — Agent system prompt 禁止 `kill -9`、`rm -rf`、`reboot` 等危险操作
2. **正则拦截层** — 13 条规则匹配 `dd if=`、`mkfs`、fork 炸弹、`chmod 777 /`、`curl|sh` 等
3. **审计层** — 所有修复操作记录完整审计日志(命令、输出、退出码、耗时)
### 📚 RAG 知识库 (Institutional Memory Kernel)
- **模型**:`sentence-transformers/all-MiniLM-L6-v2`(80MB,CPU 友好,免费)
- **原理**:知识库条目 → 384 维向量 → 余弦相似度检索 → Top-K 片段拼入 LLM Prompt
- **容错**:模型加载失败自动降级为空上下文,不阻塞 AI 管道(fail-open)
### 🕐 定时巡检 + 日志事件检测
- **300 秒/次**定时巡检所有启用的服务器
- **指标超阈值自动告警**:CPU / 内存 / 磁盘,超过 120% 阈值自动升级为 `critical`
- **8 类日志异常自动识别**:OOM Killer、段错误(Segfault)、Hung Task、磁盘 I/O 错误、网络 SYN Flood、Kernel Panic、硬件错误(MCE)、文件系统错误
### 🔗 可视化工作流引擎 (Low-Code Automation Studio)
- **React Flow 拖放编辑器**:12 个 Agent 节点从面板拖入画布,连线构建 DAG
- **4 个预设模板**:服务健康监控 / 磁盘巡检告警 / 日志错误扫描 / 服务器全量巡检
- **DAG 并行执行**:拓扑排序 → BFS 分层 → 同层 `asyncio.gather` 并发
- **条件分支**:支持 `contains:` / `not_contains:` 表达式控制执行路径
- **超时+重试**:每个节点独立配置超时和最大重试次数
**节点参考**(12 个节点 = 9 个 AI 驱动 + 3 个实用操作节点):
| 节点 | 类别 | 需要 SSH | 需要 LLM | 输入 → 输出 |
|------|------|:---:|:---:|------|
| `monitor` | 采集 | ✅ | 可选 | 服务器 → CPU/内存/磁盘/负载指标 |
| `diagnostic` | 诊断 | ✅ | ✅ | 故障描述 → 根因假设 + 证据链 |
| `remediation` | 修复 | ✅ | ✅ | 告警 → 预检→修复→验证三步安全修复 |
| `alert_analyzer` | 分析 | ❌ | ✅ | 告警 → 严重程度评估(P0-P4) |
| `log_analyzer` | 分析 | ✅ | ✅ | 日志/事件 → 异常识别 |
| `change_executor` | 变更 | 可选 | ✅ | 变更需求 → 变更计划 + 回滚方案 |
| `doc_generator` | 生成 | 可选 | ✅ | 巡检数据 → Markdown 报告 |
| `compliance_checker` | 检查 | ✅ | ✅ | 服务器 → 8 项安全合规评分 |
| `shell_command` | **实用操作** | ✅ | ❌ | 命令 → 执行结果(stdout / exit_code) |
| `health_check` | **实用操作** | ❌ | ❌ | URL → HTTP 状态码 / 响应耗时 |
| `webhook` | **实用操作** | ❌ | ❌ | 上游输出 → POST 到指定 Webhook |
| `generic` | 助手 | ❌ | ✅ | 自然语言 → 意图识别自动路由 |
**典型工作流示例**:
```
服务健康监控:health_check(GET https://app.example.com/health)
→ 条件分支(status 非 200)
→ shell_command(systemctl restart app)
→ webhook(推送钉钉/飞书告警)
磁盘巡检告警:shell_command(df -h)
→ 条件分支(usage > 90%)
→ webhook(告警)
日志错误扫描:shell_command(grep ERROR /var/log/app.log)
→ log_analyzer(AI 分析异常)
→ doc_generator(生成报告) → webhook(通知)
```
### 📢 多通道告警通知
| 通道 | 特性 |
|------|------|
| 钉钉 | HMAC-SHA256 签名,Markdown 消息 |
| 企业微信 | Markdown 消息 |
| 飞书 | 交互式卡片 + 签名 |
| 邮件 | SMTP / TLS |
| 通用 Webhook | JSON POST |
### 📊 可观测性
- **Prometheus `/metrics`**:HTTP 请求计数/延迟/并发数、LLM 调用量/延迟/Token 消耗、数据库连接数、活跃告警数
- **结构化日志**:JSON 格式 + `request_id` 全链路追踪
- **审计日志**:所有服务器操作自动记录用户名、操作类型、IP、时间
---
## 🔒 多租户数据隔离
平台默认开启严格的**按归属数据隔离**(Multi-Tenant)。**所有角色——包括管理员——都只能看到自己名下服务器的数据**,不同租户/团队之间的数据互不可见。
| 模块 | 隔离规则 |
|------|---------|
| **服务器** | 只看到自己创建的服务器(`owner_id` 匹配) |
| **告警** | 只看到自己服务器的告警 + 无归属(`server_id = NULL`)的全局告警 |
| **审计日志** | 只看到自己服务器的操作日志 |
| **巡检记录** | 只看到自己服务器的巡检结果 |
| **修复日志** | 只看到自己服务器的自动修复记录 |
| **工作流** | 看到系统模板 + 自己创建的工作流 |
| **通知渠道** | 只看到自己配置的渠道(不再共享全局渠道) |
| **仪表盘** | 所有统计数字都按当前用户过滤 |
> **为什么连管理员也隔离?** 服务器由用户 A 添加后,只有 A 能看到它;管理员同样看不到别人的服务器。系统模板(工作流模板、通用告警)对所有用户可见,用户可在此基础上复制构建自己的自动化。
**归属字段**:`servers.owner_id`、`notification_channels.owner_id`、`workflows.owner_id`,均为创建者的用户 ID(UUID)。老数据的无归属记录会在初始化时归属到系统管理员账号。
---
## 🏗️ 技术栈
| 层级 | 技术 | 说明 |
|------|------|------|
| **后端框架** | FastAPI + Pydantic v2 | 原生异步 (asyncio)、自动 OpenAPI 文档、依赖注入 |
| **ORM** | SQLAlchemy 2.0 (async) | 异步查询、连接池管理、`select()` 新 API |
| **前端框架** | Next.js 16 + React 19 | App Router、SSR、API Rewrites |
| **前端样式** | Tailwind CSS 4 | 暗色主题、响应式布局 |
| **工作流 UI** | @xyflow/react (React Flow) | 拖放节点编辑器、自定义 Agent 节点 |
| **数据库** | PostgreSQL 16(生产)/ SQLite(开发) | UUID 主键、14 张表完整审计 |
| **缓存** | Redis 7 | 会话管理、固定窗口限流、缓存 |
| **SSH** | AsyncSSH | 原生异步、连接池(最大 30 连接、LRU 驱逐) |
| **LLM** | GLM-4 / DeepSeek / OpenAI | 策略模式、按用户 Key 隔离计费 |
| **向量模型** | all-MiniLM-L6-v2 | 384 维向量、CPU 推理、80MB |
| **任务调度** | APScheduler | AsyncIOScheduler、嵌入进程 |
| **容器化** | Docker 多阶段构建 | Builder + Runtime 分离 |
| **编排** | Docker Compose / Kubernetes + Helm | 一键部署 + 三级健康探针 |
| **CI/CD** | GitHub Actions | lint → test → build → 推送阿里云 ACR |
| **反向代理** | Nginx | API 代理、缓冲关闭、300s 超时 |
| **监控** | Prometheus | 10 个业务指标 + HTTP 指标 |
---
## 🚀 快速开始
### 环境要求
- **Docker** & **Docker Compose** v2+
- 或者:Python 3.11+ / Node.js 20+ / PostgreSQL 16+ / Redis 7+
### Docker Compose 一键部署
```bash
# 1. 克隆仓库
git clone https://github.com/okudhdheheuus/Python_AIops.git
cd Python_AIops
# 2. (可选)配置环境变量
cp .env.example .env
# 编辑 .env,填入 LLM API Key(免费申请:https://open.bigmodel.cn/)
# 不配置也能启动,AI 功能需要 Key
# 3. 构建并启动全部服务
docker compose up -d --build
# 4. 查看日志确认启动成功
docker compose logs -f backend
```
启动后访问:
| 服务 | 地址 | 说明 |
|------|------|------|
| **前端界面** | http://localhost:3000 | 注册账号后登录 |
| **后端 API** | http://localhost:8000 | REST API |
| **Swagger 文档** | http://localhost:8000/docs | 60+ 端点在线测试 |
| **Prometheus 指标** | http://localhost:8000/metrics | 监控数据 |
| **健康检查** | http://localhost:8000/health/live | 存活探针 |
### 本地开发
**后端:**
```bash
cd backend
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # 编辑配置(数据库地址、API Key 等)
uvicorn backend.main:app --reload --port 8000
```
**前端:**
```bash
cd frontend-next
npm install
npm run dev # 访问 http://localhost:3000
```
---
## ⚙️ 配置说明
### 环境变量
主要配置项(通过 `.env` 文件或 Docker 环境变量设置):
| 变量 | 说明 | 默认值 |
|------|------|--------|
| `SECRET_KEY` | JWT 签名密钥,**生产环境务必修改** | — |
| `DATABASE_URL` | 数据库连接串 | `sqlite+aiosqlite:///./data/itops.db` |
| `REDIS_HOST` | Redis 地址 | `localhost` |
| `REDIS_PORT` | Redis 端口 | `6379` |
| `GLM_API_KEY` | 智谱 GLM API Key(免费模型推荐) | — |
| `DEEPSEEK_API_KEY` | DeepSeek API Key | — |
| `OPENAI_API_KEY` | OpenAI API Key | — |
| `OPENAI_API_BASE` | OpenAI 兼容 API 地址 | `https://api.openai.com/v1` |
| `CORS_ORIGINS` | 允许的跨域来源 | `http://localhost:3000` |
| `HF_ENDPOINT` | HuggingFace 镜像(国内部署用) | `https://hf-mirror.com` |
| `LOG_LEVEL` | 日志级别 | `INFO` |
### 免费 LLM API Key 获取
平台默认使用 **GLM-4-Flash**(智谱 AI 免费模型):
1. 访问 [智谱 AI 开放平台](https://open.bigmodel.cn/)
2. 注册账号 → 控制台 → API Keys → 创建 API Key
3. 将 Key 填入环境变量 `GLM_API_KEY`
4. 登录平台后,在「设置 → LLM API 配置」页面填入 Key 即可
---
## 📡 API 概览
| 路由前缀 | 说明 |
|----------|------|
| `/api/auth` | 用户注册、登录、Token 刷新 |
| `/api/servers` | 服务器 CRUD、SSH 连接测试 |
| `/api/workflows` | 工作流模板 CRUD、执行、历史查询 |
| `/api/alerts` | Prometheus Webhook 接收、告警列表、统计、静默规则 |
| `/api/alerts/{id}/remediate` | 手动触发 AI 修复 |
| `/api/patrol` | 定时巡检记录查询 |
| `/api/chat` | AI 对话(SSE 流式 + RAG 上下文) |
| `/api/knowledge` | 知识库 CRUD、语义检索、预设数据导入 |
| `/api/notifications` | 通知渠道配置(钉钉/企微/飞书/邮件/Webhook) |
| `/api/user/llm-config` | 用户 LLM API Key 配置 |
| `/api/user/agent-config` | 用户 Agent 偏好设置 |
| `/api/dashboard` | 仪表盘统计数据 |
| `/api/audit` | 操作审计日志查询 |
| `/health/live` | Kubernetes Liveness Probe |
| `/health/ready` | Kubernetes Readiness Probe |
| `/health/startup` | Kubernetes Startup Probe |
| `/metrics` | Prometheus 指标端点 |
完整 API 文档启动后访问:**http://localhost:8000/docs**
---
## 📁 项目结构
```
Python_AIops/
├── backend/ # FastAPI 后端
│ ├── api/ # 路由模块
│ │ ├── auth.py # 认证(登录/注册/Token)
│ │ ├── servers.py # 服务器管理
│ │ ├── alerts.py # 告警接收 + 静默 + 修复
│ │ ├── workflows.py # 工作流 CRUD + 执行
│ │ ├── chat.py # AI 对话(SSE 流式)
│ │ ├── knowledge.py # 知识库 CRUD + 语义检索
│ │ ├── notifications.py # 通知渠道管理
│ │ ├── patrol.py # 巡检记录查询
│ │ ├── dashboard.py # 仪表盘统计
│ │ ├── audit.py # 审计日志
│ │ └── user_config.py # 用户 LLM / Agent 配置
│ ├── core/ # 中间件 & 基础设施
│ │ ├── middleware.py # RequestID / RateLimit / Prometheus
│ │ ├── logging_config.py # JSON 结构化日志
│ │ ├── redis.py # Redis 客户端
│ │ └── rate_limit.py # 固定窗口限流
│ ├── services/ # 业务逻辑层
│ │ ├── agent_executor.py # 12 个 Agent 执行器(核心)
│ │ ├── workflow_engine.py # DAG 拓扑排序 + 并行执行引擎
│ │ ├── knowledge_service.py # RAG 语义检索(sentence-transformers)
│ │ ├── llm_service.py # LLM 调用封装
│ │ ├── notification_service.py# 多通道通知服务
│ │ ├── ssh_pool.py # SSH 连接池(AsyncSSH)
│ │ └── llm/ # LLM Provider 策略模式
│ │ ├── base.py # BaseLLMProvider 抽象基类
│ │ ├── openai_provider.py # OpenAI 兼容 Provider
│ │ ├── deepseek_provider.py# DeepSeek Provider
│ │ ├── glm_provider.py # GLM Provider
│ │ └── factory.py # Provider 工厂
│ ├── utils/ # 工具函数
│ │ └── security.py # JWT + bcrypt + RBAC
│ ├── models.py # SQLAlchemy 14 张表模型
│ ├── schemas.py # Pydantic v2 校验模型
│ ├── config.py # BaseSettings 配置管理
│ ├── database.py # async_sessionmaker + 自动建表
│ ├── main.py # FastAPI 入口 (lifespan)
│ └── requirements.txt # Python 依赖
├── frontend-next/ # Next.js 16 前端
│ └── src/
│ ├── app/ # App Router 页面
│ │ ├── layout.tsx # 根布局(暗色主题)
│ │ ├── page.tsx # 仪表盘首页
│ │ ├── login/page.tsx # 登录页
│ │ ├── settings/page.tsx # LLM / Agent 配置页
│ │ ├── alerts/page.tsx # 告警中心
│ │ ├── servers/page.tsx # 服务器管理
│ │ ├── workflows/page.tsx # 工作流列表
│ │ ├── patrol/page.tsx # 巡检记录
│ │ ├── knowledge/page.tsx # 知识库管理
│ │ ├── notifications/page.tsx # 通知渠道
│ │ └── chat/page.tsx # AI 对话
│ ├── components/ # React 组件
│ │ ├── WorkflowEditor.tsx # 工作流编辑器(核心)
│ │ ├── AgentNode.tsx # 自定义 Agent 节点卡片
│ │ ├── AgentPalette.tsx # 节点拖放面板
│ │ ├── ConfigPanel.tsx # 节点配置面板
│ │ └── Sidebar.tsx # 侧边导航栏
│ └── lib/ # 工具库
│ ├── agentTypes.ts # Agent 类型定义
│ ├── workflowTemplates.ts # 工作流预设模板
│ ├── auth.ts # 认证上下文 + authFetch
│ └── api.ts # API 调用封装
├── nginx/ # Nginx 反向代理配置
├── k8s/ # Kubernetes 部署清单
│ ├── kustomization.yaml # kubectl apply -k 一键部署
│ ├── namespace.yaml
│ ├── configmap.yaml # 非敏感配置
│ ├── secret.yaml # 密钥(⚠️ 生产环境务必修改)
│ ├── postgres-deployment.yaml # PostgreSQL StatefulSet
│ ├── redis-deployment.yaml # Redis Deployment
│ ├── backend-deployment.yaml # Backend Deployment + Service
│ ├── frontend-deployment.yaml # Frontend Deployment + Service
│ └── ingress.yaml # Nginx Ingress 路由
├── helm/ # Helm Chart
│ └── itops-platform/
├── scripts/ # 部署脚本
├── tests/ # 后端测试 (pytest + pytest-asyncio)
├── docker-compose.yml # Docker Compose 编排
├── Dockerfile.backend # 后端多阶段构建
├── Dockerfile.frontend # 前端多阶段构建
├── .github/workflows/ # CI/CD 管道
│ ├── ci.yml # PR → lint + test + build
│ └── docker-publish.yml # Push main → 构建镜像 → 推送 ACR
└── README.md
```
---
## 🐳 部署
### Docker Compose 生产部署
```bash
# 拉取预构建镜像(阿里云 ACR)
docker compose pull
# 启动
docker compose up -d
# 查看状态
docker compose ps
# 查看日志
docker compose logs -f backend frontend
```
### Kubernetes 部署
```bash
# 一键部署全部资源(kustomize)
kubectl apply -k k8s/
# 或逐个部署
kubectl apply -f k8s/namespace.yaml
kubectl apply -f k8s/configmap.yaml
kubectl apply -f k8s/secret.yaml
kubectl apply -f k8s/postgres-deployment.yaml
kubectl apply -f k8s/redis-deployment.yaml
kubectl apply -f k8s/backend-deployment.yaml
kubectl apply -f k8s/frontend-deployment.yaml
kubectl apply -f k8s/ingress.yaml
# 查看 Pod 状态
kubectl get pods -n itops
# 查看服务
kubectl get svc -n itops
```
### Helm 部署
```bash
helm install itops ./helm/itops-platform \
--set secrets.glmApiKey=your-glm-key \
--set secrets.secretKey=your-jwt-secret \
--set ingress.host=your-domain.com
```
### 健康检查
K8s 部署包含三级健康探针:
| 探针 | 端点 | 说明 |
|------|------|------|
| **Liveness** | `/health/live` | 进程是否存活 |
| **Readiness** | `/health/ready` | DB + Redis 是否可用 |
| **Startup** | `/health/startup` | 慢启动保护,就绪前不接收流量 |
---
## 🔄 CI/CD
GitHub Actions 自动管道:
```
Pull Request → Backend Job (pytest + ruff) + Frontend Job (eslint + tsc + build)
↓
Push to main → Docker Build → 推送镜像到阿里云 ACR
```
---
## 🔐 安全说明
- **认证**:JWT(HS256)Token + bcrypt 密码哈希(SHA-256 预哈希,绕过 bcrypt 72 字节限制)
- **权限控制**:角色字段(`admin` / `viewer`)+ 多租户归属校验,双层控制
- **LLM Key 隔离**:API Key 按用户独立存储,不全局共享,任何用户都看不到别人的 Key
- **危险命令拦截**:13 条正则规则,禁止 `rm -rf`、`mkfs`、`dd if=`、fork 炸弹、`curl | sh` 等危险操作
- **完整审计**:所有服务器操作记录用户名、动作、IP、时间,全链路可追溯
- **生产建议**:务必修改 `SECRET_KEY`,通过 Nginx + HTTPS 反向代理,启用强密码策略
---
## ❓ 常见问题 FAQ
**Q1:后端启动为什么慢?**
A:首次启动要加载 RAG 向量模型(`sentence-transformers/all-MiniLM-L6-v2`,约 80MB),耗时约 20 秒,属正常现象。模型加载失败会自动降级为空上下文,不影响服务启动(fail-open)。
**Q2:AI 功能提示"没有 API Key"?**
A:LLM API Key 是**按用户隔离**的。登录后在「设置 → LLM API 配置」页面填入自己的 Key(支持 GLM / DeepSeek / OpenAI 兼容接口,可免费申请:https://open.bigmodel.cn/)。不配置 Key 时,非 LLM 功能(巡检、`shell_command`、`health_check`、`webhook` 等)仍可正常使用。
**Q3:国内服务器下载模型很慢?**
A:设置环境变量 `HF_ENDPOINT=https://hf-mirror.com`,使用 HuggingFace 国内镜像。
**Q4:告警触发了但没收到通知?**
A:先到「通知管理」页配置并点击**测试**自己的渠道(钉钉/企微/飞书/邮件),测试通过后告警才会推送。注意通知渠道只对本用户生效(多租户隔离)。
**Q5:看不到别人添加的服务器/数据?**
A:这是多租户隔离的预期行为——每个账号只能看到自己名下服务器的数据(含管理员)。想给某个账号分配数据,请用该账号自己添加。
**Q6:修改 `.env` 后不生效?**
A:Docker Compose 部署需要 `docker compose up -d` 重建容器;环境变量在容器启动时读取。
**Q7:如何重置/找回管理员密码?**
A:连接数据库执行 `UPDATE users SET hashed_password='' WHERE username='admin';`,哈希可用后端 `hash_password()` 生成(sha256 + bcrypt)。
---
## 🤝 参与贡献
欢迎贡献代码!以下方向特别需要帮助:
| 方向 | 说明 |
|------|------|
| 🔌 **新 Agent 类型** | 实现新的运维 Agent(数据库巡检、SSL 证书检查、K8s Pod 诊断等) |
| 📢 **新通知通道** | Telegram、Slack、企业微信应用号、PagerDuty |
| 📚 **知识库条目** | 贡献更多运维场景的 RAG 知识片段 |
| 🌐 **国际化** | 英文 UI 翻译、文档翻译 |
| 🧪 **测试覆盖** | 补充单元测试和集成测试 |
| 📖 **文档完善** | API 文档示例、部署最佳实践 |
**贡献流程:**
1. Fork 本仓库
2. 创建功能分支:`git checkout -b feat/your-feature`
3. 提交代码:`git commit -m "feat: 描述你的改动"`
4. 推送分支:`git push origin feat/your-feature`
5. 创建 Pull Request
---
## 📄 License
[MIT](LICENSE) © 2026 ITOps Platform
---
## ⭐ 项目统计
| 指标 | 数据 |
|------|------|
| Agent 类型 | 12 个(9 个 AI 驱动 + 3 个实用节点) |
| API 端点 | 60+ REST + SSE 流式 |
| 通知通道 | 5 种 |
| 安全检查规则 | 13 条危险命令黑名单 |
| 日志事件检测 | 8 类系统异常自动识别 |
| 数据库表 | 14 张(完整审计追踪) |
| 工作流模板 | 4 个真实运维场景 |
| 知识库条目 | 22+ 条预设 + 用户自定义 |
| 部署方式 | Docker Compose / K8s Manifest / Helm Chart |
---
一个人走得快,一群人走得远。
如果这个项目对你有帮助,请给一个 ⭐ Star