{"skill":{"slug":"alert-to-fault-handling","displayName":"Lerwee Alert To Fault Handling","summary":"告警自动处理工作流 - 监听告警上下文，匹配处理脚本，提示用户执行故障处理操作","description":"---\nname: alert-to-fault-handling\ndescription: 告警自动处理工作流 - 监听告警上下文，匹配处理脚本，提示用户执行故障处理操作\n---\n\n# 告警自动处理工作流\n\n## Overview\n\n当检测到告警上下文时，根据群组和告警类型自动匹配对应的故障处理脚本，提示用户一键执行。\n\n## 工作流程\n\n```\n告警上下文检测 → 群组识别 → 关键词匹配 → 脚本推荐 → 用户确认 → 执行脚本 → 反馈结果 → (可选)自动关闭告警\n```\n\n## 触发条件\n\n当以下条件同时满足时触发：\n\n1. **对话上下文存在告警信息**（包含 eventid、IP、告警名称中的至少一个）\n2. **当前飞书群组**与告警分类匹配\n3. **告警内容**匹配脚本关键词\n4. **存在对应的预置脚本**\n\n## 配置文件\n\n### 脚本映射配置 (.scripts_map.json)\n\n```json\n{\n  \"nginx\": {\n    \"name\": \"nginx服务重启\",\n    \"script_id\": 187,\n    \"keywords\": [\"nginx\", \"Nginx\", \"NGINX\", \"web\", \"80端口\", \"http服务\"],\n    \"classifications\": [102],\n    \"chat_groups\": [\"\"],\n    \"description\": \"重启Nginx服务，适用于服务停止、无响应等场景\"\n  },\n  \"disk\": {\n    \"name\": \"主机磁盘空间清理\",\n    \"script_id\": 197,\n    \"keywords\": [\"磁盘\", \"disk\", \"空间\", \"storage\", \"/var\", \"/tmp\", \"使用率\", \"满\"],\n    \"classifications\": [101],\n    \"chat_groups\": [\"\"],\n    \"description\": \"清理日志文件和临时文件，释放磁盘空间\"\n  }\n}\n```\n\n### 执行日志配置 (.execution_log.json)\n\n```json\n{\n  \"executions\": [\n    {\n      \"timestamp\": \"2026-03-10T09:50:00Z\",\n      \"eventid\": \"32415666\",\n      \"ip\": \"192.168.3.137\",\n      \"script_id\": 187,\n      \"script_name\": \"nginx服务重启\",\n      \"status\": \"success\",\n      \"execution_id\": 970,\n      \"user\": \"\"\n    }\n  ]\n}\n```\n\n## 群组与分类映射\n\n| 飞书群 ID | 群组名称 | 监控分类 | 默认脚本 |\n|-----------|----------|----------|----------|\n|  | 操作系统告警群 | 101 | 主机磁盘空间清理 (197) |\n|  | 中间件告警群 | 102 | nginx服务重启 (187) |\n|  | 网络设备告警群 | 103 | (待配置) |\n\n## 用户交互\n\n### 场景1: 自动推荐\n\n```\n🤖 检测到 Nginx 服务停止告警\n📊 告警对象: 3.137-Nginx-1.14.2 (192.168.3.137)\n🔑 告警ID: 32415666\n\n💡 推荐操作: nginx服务重启 (脚本ID: 187)\n📝 说明: 重启Nginx服务，适用于服务停止、无响应等场景\n\n👉 回复「执行」或「确认」自动运行脚本\n```\n\n### 场景2: 用户指定脚本\n\n```\n用户: 执行脚本 197\n\n🔧 正在为主机 192.168.3.137 执行脚本...\n📋 脚本: 主机磁盘空间清理 (ID: 197)\n⏳ 执行中...\n```\n\n### 场景3: 确认后执行\n\n```\n用户: 确认\n\n🔧 提交执行任务...\n✅ 任务已提交 (Execution ID: 970)\n⏳ 等待执行结果...\n```\n\n## IP 获取规则\n\n优先级从高到低：\n\n1. **告警消息中的 IP 字段**（最优先）\n2. **通过 objectid 查询主机详情获取 IP**\n   ```bash\n   ./scripts/lerwee-api.sh monitor host-view '{\"hostid\": 11131}'\n   ```\n3. **用户手动指定**\n\n## 脚本执行\n\n使用 fault-handling skill 执行脚本：\n\n```bash\npython3 /home/node/.openclaw/workspace/skills/fault-handling/run_script.py \\\n  --hosts '192.168.3.137' \\\n  --script-id 187\n```\n\n## 执行结果反馈\n\n```\n🔧 故障处理执行报告\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n任务名称：nginx服务重启\n任务ID：970\n执行状态：成功\n执行耗时：15秒\n\n📋 步骤执行详情\n步骤              主机IP        主机名      状态    输出\nnginx服务重启     192.168.3.137  vm-3-137   ✅     nginx: [  OK  ]\n\n📌 执行结论\n● ✅ 1台主机执行成功\n● ❌ 0台主机执行失败\n\n💾 已记录到执行日志\n```\n\n## 可选: 自动关闭告警\n\n脚本执行成功后，可选自动关闭对应告警：\n\n```bash\n./scripts/lerwee-api.sh alert problem-ack '{\n  \"eventid\": \"32415666\",\n  \"action\": 1,\n  \"message\": \"脚本执行成功，自动关闭告警\"\n}'\n```\n\n## Hard Rules\n\n- 执行脚本前必须获取用户明确确认（回复「执行」「确认」「yes」）\n- 不能在没有主机 IP 的情况下猜测或使用占位 IP\n- 执行失败时必须明确说明失败原因\n- 所有执行必须记录到日志文件\n- 自动关闭告警前必须确认脚本执行成功\n\n## Files\n\n- 配置: `.scripts_map.json` - 脚本映射配置\n- 日志: `.execution_log.json` - 执行历史记录\n- 主逻辑: 由 Agent 动态处理，无需独立脚本\n\n## 扩展新脚本类型\n\n在 `.scripts_map.json` 中添加新条目：\n\n```json\n{\n  \"mysql\": {\n    \"name\": \"MySQL服务重启\",\n    \"script_id\": 198,\n    \"keywords\": [\"mysql\", \"MySQL\", \"数据库\"],\n    \"classifications\": [105],\n    \"chat_groups\": [\"oc_xxx\"],\n    \"description\": \"重启MySQL服务\"\n  }\n}\n```\n\n## 安全机制\n\n1. **确认机制**: 默认脚本需用户确认，自定义脚本ID需二次确认\n2. **白名单**: 只执行预置脚本或用户明确指定的脚本ID\n3. **日志审计**: 所有操作记录到日志文件\n4. **回滚支持**: 记录执行ID，支持查询历史结果\n","topics":["上下文","工作流"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":1218,"installsAllTime":45,"installsCurrent":0,"stars":2,"versions":1},"createdAt":1773399196673,"updatedAt":1779078096785},"latestVersion":{"version":"1.0.0","createdAt":1773399196673,"changelog":"- Initial release of the \"alert-to-fault-handling\" skill.\n- Automatically detects alert context and recommends matched fault-handling scripts.\n- Supports confirmation-based script execution with step-by-step user interaction.\n- Integrates script mapping and execution log configuration via JSON files.\n- Enforces strict rules for user confirmation and secure handling.\n- Provides clear result feedback and optional auto-closure of alerts after successful actions.","license":"MIT-0"},"metadata":null,"owner":{"handle":"lerwee","userId":"s179drnz45v8z453519b5s430583nh0a","displayName":"Lerwee","image":"https://avatars.githubusercontent.com/u/162661167?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089868943}}