🧪 Skills
Lerwee Alert To Fault Handling
告警自动处理工作流 - 监听告警上下文,匹配处理脚本,提示用户执行故障处理操作
v1.0.0
Description
name: alert-to-fault-handling description: 告警自动处理工作流 - 监听告警上下文,匹配处理脚本,提示用户执行故障处理操作
告警自动处理工作流
Overview
当检测到告警上下文时,根据群组和告警类型自动匹配对应的故障处理脚本,提示用户一键执行。
工作流程
告警上下文检测 → 群组识别 → 关键词匹配 → 脚本推荐 → 用户确认 → 执行脚本 → 反馈结果 → (可选)自动关闭告警
触发条件
当以下条件同时满足时触发:
- 对话上下文存在告警信息(包含 eventid、IP、告警名称中的至少一个)
- 当前飞书群组与告警分类匹配
- 告警内容匹配脚本关键词
- 存在对应的预置脚本
配置文件
脚本映射配置 (.scripts_map.json)
{
"nginx": {
"name": "nginx服务重启",
"script_id": 187,
"keywords": ["nginx", "Nginx", "NGINX", "web", "80端口", "http服务"],
"classifications": [102],
"chat_groups": [""],
"description": "重启Nginx服务,适用于服务停止、无响应等场景"
},
"disk": {
"name": "主机磁盘空间清理",
"script_id": 197,
"keywords": ["磁盘", "disk", "空间", "storage", "/var", "/tmp", "使用率", "满"],
"classifications": [101],
"chat_groups": [""],
"description": "清理日志文件和临时文件,释放磁盘空间"
}
}
执行日志配置 (.execution_log.json)
{
"executions": [
{
"timestamp": "2026-03-10T09:50:00Z",
"eventid": "32415666",
"ip": "192.168.3.137",
"script_id": 187,
"script_name": "nginx服务重启",
"status": "success",
"execution_id": 970,
"user": ""
}
]
}
群组与分类映射
| 飞书群 ID | 群组名称 | 监控分类 | 默认脚本 |
|---|---|---|---|
| 操作系统告警群 | 101 | 主机磁盘空间清理 (197) | |
| 中间件告警群 | 102 | nginx服务重启 (187) | |
| 网络设备告警群 | 103 | (待配置) |
用户交互
场景1: 自动推荐
🤖 检测到 Nginx 服务停止告警
📊 告警对象: 3.137-Nginx-1.14.2 (192.168.3.137)
🔑 告警ID: 32415666
💡 推荐操作: nginx服务重启 (脚本ID: 187)
📝 说明: 重启Nginx服务,适用于服务停止、无响应等场景
👉 回复「执行」或「确认」自动运行脚本
场景2: 用户指定脚本
用户: 执行脚本 197
🔧 正在为主机 192.168.3.137 执行脚本...
📋 脚本: 主机磁盘空间清理 (ID: 197)
⏳ 执行中...
场景3: 确认后执行
用户: 确认
🔧 提交执行任务...
✅ 任务已提交 (Execution ID: 970)
⏳ 等待执行结果...
IP 获取规则
优先级从高到低:
- 告警消息中的 IP 字段(最优先)
- 通过 objectid 查询主机详情获取 IP
./scripts/lerwee-api.sh monitor host-view '{"hostid": 11131}' - 用户手动指定
脚本执行
使用 fault-handling skill 执行脚本:
python3 /home/node/.openclaw/workspace/skills/fault-handling/run_script.py \
--hosts '192.168.3.137' \
--script-id 187
执行结果反馈
🔧 故障处理执行报告
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
任务名称:nginx服务重启
任务ID:970
执行状态:成功
执行耗时:15秒
📋 步骤执行详情
步骤 主机IP 主机名 状态 输出
nginx服务重启 192.168.3.137 vm-3-137 ✅ nginx: [ OK ]
📌 执行结论
● ✅ 1台主机执行成功
● ❌ 0台主机执行失败
💾 已记录到执行日志
可选: 自动关闭告警
脚本执行成功后,可选自动关闭对应告警:
./scripts/lerwee-api.sh alert problem-ack '{
"eventid": "32415666",
"action": 1,
"message": "脚本执行成功,自动关闭告警"
}'
Hard Rules
- 执行脚本前必须获取用户明确确认(回复「执行」「确认」「yes」)
- 不能在没有主机 IP 的情况下猜测或使用占位 IP
- 执行失败时必须明确说明失败原因
- 所有执行必须记录到日志文件
- 自动关闭告警前必须确认脚本执行成功
Files
- 配置:
.scripts_map.json- 脚本映射配置 - 日志:
.execution_log.json- 执行历史记录 - 主逻辑: 由 Agent 动态处理,无需独立脚本
扩展新脚本类型
在 .scripts_map.json 中添加新条目:
{
"mysql": {
"name": "MySQL服务重启",
"script_id": 198,
"keywords": ["mysql", "MySQL", "数据库"],
"classifications": [105],
"chat_groups": ["oc_xxx"],
"description": "重启MySQL服务"
}
}
安全机制
- 确认机制: 默认脚本需用户确认,自定义脚本ID需二次确认
- 白名单: 只执行预置脚本或用户明确指定的脚本ID
- 日志审计: 所有操作记录到日志文件
- 回滚支持: 记录执行ID,支持查询历史结果
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!