89 lines
3.4 KiB
Markdown
89 lines
3.4 KiB
Markdown
|
|
# 铸渊运维守卫 · ZY-OPS-001 · 交付清单
|
|||
|
|
|
|||
|
|
### **新增文件(14个)**
|
|||
|
|
|
|||
|
|
| **文件** | **功能** |
|
|||
|
|
| --- | --- |
|
|||
|
|
| `ops-agent/index.js` | 主入口 · HTTP API (端口3950) + 定时巡检调度 |
|
|||
|
|
| `ops-agent/health-checker.js` | 三层健康检查 (快速5分钟 / 深度1小时 / 全量每天) |
|
|||
|
|
| `ops-agent/repair-engine.js` | 白名单自修复 (PM2重启 / 日志清理 / Nginx重载 / 依赖重装) |
|
|||
|
|
| `ops-agent/memory.js` | 永久记忆 (事件日志JSONL + 工单JSON + 统计) |
|
|||
|
|
| `ops-agent/notifier.js` | 邮件告警 + 工单通知 (QQ SMTP · HTML邮件) |
|
|||
|
|
| `ops-agent/llm-client.js` | LLM推理 (17个模式匹配 + DeepSeek深度分析) |
|
|||
|
|
| `ops-agent/cli.js` | 终端交互对话 (`zy-ops` 命令) |
|
|||
|
|
| `ops-agent/ecosystem.config.js` | PM2 常驻配置 |
|
|||
|
|
| `ops-agent/web/index.html` | 运维工单面板 UI |
|
|||
|
|
| `ops-agent/web/app.js` | 前端逻辑 (SSE实时推送 + 对话 + 工单管理) |
|
|||
|
|
| `ops-agent/web/style.css` | 深蓝主题样式 |
|
|||
|
|
| `ops-agent/package.json` | 依赖 (express + node-cron + nodemailer) |
|
|||
|
|
| `ops-agent/README.md` | 完整文档 |
|
|||
|
|
| `ops-agent/.gitignore` | 排除运行时 data/ |
|
|||
|
|
|
|||
|
|
### **部署到服务器后的使用方式**
|
|||
|
|
|
|||
|
|
**启动守卫:**
|
|||
|
|
|
|||
|
|
bash
|
|||
|
|
|
|||
|
|
`cd /opt/zhuyuan/ops-agent && npm install --production
|
|||
|
|
pm2 start ecosystem.config.js
|
|||
|
|
ln -s /opt/zhuyuan/ops-agent/cli.js /usr/local/bin/zy-ops`
|
|||
|
|
|
|||
|
|
**终端对话:**
|
|||
|
|
|
|||
|
|
bash
|
|||
|
|
|
|||
|
|
`zy-ops # 进入交互对话
|
|||
|
|
zy-ops --ask "为什么MCP连不上" # 单次提问
|
|||
|
|
zy-ops --check # 快速巡检`
|
|||
|
|
|
|||
|
|
**网页面板:** 访问 `http://服务器IP:3950/ops/`
|
|||
|
|
|
|||
|
|
### **自动行为(部署后立即生效)**
|
|||
|
|
|
|||
|
|
- ⏰ 每5分钟快速巡检(端口存活)
|
|||
|
|
- ⏰ 每小时深度巡检(内存/磁盘/PM2/Nginx)
|
|||
|
|
- ⏰ 每天早8点发送全量健康报告邮件
|
|||
|
|
- 🔧 服务崩溃 → 自动重启(最多3次)
|
|||
|
|
- 🎫 修不了 → 自动生成工单 + 邮件通知你
|
|||
|
|
- 💬 你随时可以和它对话问问题
|
|||
|
|
|
|||
|
|
Nodemailer upgraded from `^6.9.0` to `^7.0.11` (installed 7.0.13), fixing both vulnerabilities:
|
|||
|
|
|
|||
|
|
1. **DoS via recursive addressparser** (patched in 7.0.11)
|
|||
|
|
2. **Email routing to unintended domain** (patched in 7.0.7)
|
|||
|
|
|
|||
|
|
## **🛡️ 铸渊运维守卫 Phase 2 — 对话引擎增强**
|
|||
|
|
|
|||
|
|
### **核心能力升级**
|
|||
|
|
|
|||
|
|
| **功能** | **Phase 1** | **Phase 2** |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| **对话** | 单次问答 | ✅ **多轮对话**,记住上下文,可追问 |
|
|||
|
|
| **诊断** | 被动匹配 | ✅ **意图识别** → 自动执行工具 → LLM 分析 |
|
|||
|
|
| **日志** | 无 | ✅ 直接查看任意 PM2 进程日志 |
|
|||
|
|
| **系统监控** | 无 | ✅ 实时内存/磁盘/PM2/Nginx 面板 |
|
|||
|
|
| **CLI** | 基础命令 | ✅ `/logs`, `/sysinfo`, `/session`, `/new`, 打字动画 |
|
|||
|
|
| **Web面板** | 基础对话 | ✅ 打字指示器、系统信息面板、会话管理 |
|
|||
|
|
|
|||
|
|
### **对话体验**
|
|||
|
|
|
|||
|
|
冰朔问 **"MCP连不上"** → 运维守卫自动:
|
|||
|
|
|
|||
|
|
1. 识别意图 = `diagnose`
|
|||
|
|
2. 自动执行健康检查
|
|||
|
|
3. 将检查结果 + 上下文传给 LLM
|
|||
|
|
4. LLM 给出自然语言诊断
|
|||
|
|
5. 冰朔可以继续追问 **"刚才说的第二步怎么做?"** — 它记得上下文
|
|||
|
|
|
|||
|
|
### **新增 API**
|
|||
|
|
|
|||
|
|
- `GET /api/ops/sessions` — 列出活跃会话
|
|||
|
|
- `GET /api/ops/sessions/:id/history` — 获取会话历史
|
|||
|
|
- `GET /api/ops/pm2-logs/:name` — 查看 PM2 日志
|
|||
|
|
- `GET /api/ops/system-info` — 系统资源 + PM2 + Nginx
|
|||
|
|
|
|||
|
|
### **测试**
|
|||
|
|
|
|||
|
|
- 54 个冒烟测试全部通过 ✅
|
|||
|
|
- CodeQL 安全扫描已修复 ✅
|