
标签#监控#钉钉#飞书#告警#自动化#团队协作当生产环境出现异常时时间就是金钱。你希望第一时间收到告警并且告警内容不仅仅是“服务挂了”而是包含初步分析、可能原因、甚至建议的修复命令。将 Claude Code 接入钉钉或飞书机器人可以让 AI 自动接收告警、分析日志、并推送结构化的问题报告到团队聊天软件。你不再是被动等待人工排查而是让 AI 先做一轮“急诊”。1. 为什么需要 AI 驱动的监控通知传统监控系统Prometheus Alertmanager、Zabbix、CloudWatch 等能告诉你“什么出了问题”如 CPU 飙升、错误率上升但不会告诉你“为什么”以及“怎么修”。工程师收到告警后需要登录服务器、查日志、分析代码耗时较长。将 Claude Code 集成到通知链路上可以实现自动分析告警触发时调用 Claude Code 分析最近的日志、指标、错误栈。结构化推送将分析结果可能原因、影响范围、建议操作推送到钉钉/飞书群。交互式修复团队成员可在群里回复“/fix”让 Claude Code 尝试自动修复需授权。事后总结问题解决后AI 自动生成复盘报告。2. 架构总览[监控系统] → Webhook → [Claude Code (运行在服务器/CI环境)] → 分析 → [钉钉/飞书机器人] → 群消息 ↑ (可触发自动修复)实现方式有两种轻量级监控系统直接调用 Claude Code 的 CLI通过 HTTP 或脚本传入告警信息Claude Code 分析后通过 Webhook 发送到钉钉/飞书。深度集成使用 MCP Server 让 Claude Code 主动拉取监控数据如 Prometheus并自动发送通知。本篇聚焦轻量级方案更易落地。3. 准备工作钉钉/飞书机器人3.1 钉钉机器人在钉钉群中点击“群设置”→“智能群助手”→“添加机器人”。选择“自定义机器人”命名如“Claude Code 告警”。安全设置选择“加签”推荐或“自定义关键词”如“告警”。复制 Webhook URL形如https://oapi.dingtalk.com/robot/send?access_tokenxxx和加签密钥如果选加签。3.2 飞书机器人在飞书群中点击“群设置”→“群机器人”→“添加机器人”。选择“自定义机器人”命名并设置描述。安全设置可选“签名校验”或“IP 白名单”。复制 Webhook URL形如https://open.feishu.cn/open-apis/bot/v2/hook/xxx。保存好 Webhook URL 和签名密钥如果启用。4. 让 Claude Code 发送钉钉/飞书消息Claude Code 本身可以执行curl命令因此你可以直接让它调用钉钉/飞书的 Webhook。4.1 定义发送消息的 Skill创建.claude/skills/send-alert.md--- name: send-alert description: 发送告警消息到钉钉/飞书群 parameters: - name: message description: 要发送的文本内容支持 Markdown required: true - name: platform description: dingtalk 或 feishu required: true - name: webhook_url description: 机器人的 Webhook URL从环境变量读取不硬编码 required: true --- # Skill: 发送告警 ## 步骤 1. 根据 platform 选择对应的消息格式 - **钉钉**使用 Markdown 类型结构为 {msgtype: markdown, markdown: {title: 告警, text: message}} - **飞书**使用富文本或 post 类型简单起见用 text 类型也能接受 2. 执行 curl 命令 bash curl -X POST $webhook_url \ -H Content-Type: application/json \ -d {msgtype: markdown, markdown: {title: Claude Code 告警, text: $message}}检查响应如果失败则重试一次。然后在 CLAUDE.md 中预置 Webhook URL从环境变量读取不写死 markdown ## 通知配置 - 钉钉 Webhook: 环境变量 DINGTALK_WEBHOOK - 飞书 Webhook: 环境变量 FEISHU_WEBHOOKAI 在执行时会自动读取这些变量。5. 集成监控告警触发 Claude Code假设你使用 Prometheus Alertmanager或阿里云监控或自建脚本。核心思路当告警触发时执行一个脚本该脚本调用 Claude Code 进行分析并发送通知。5.1 编写告警处理脚本创建一个脚本on-alert.sh在服务器上运行#!/bin/bash# 输入环境变量ALERT_TITLE, ALERT_MESSAGE, ALERT_LOGS_FILE (可选)# 调用 Claude Code 进行分析非交互模式echo请分析以下告警标题$ALERT_TITLE详情$ALERT_MESSAGE。相关日志见 $ALERT_LOGS_FILE。给出可能原因和解决建议然后使用 send-alert skill 发送到钉钉群。|\claude--print--no-tui --allowed-toolsRead,Bash,send-alert在 Alertmanager 的 webhook 配置中调用此脚本。5.2 更简单的办法让 Claude Code 直接读取告警信息你可以在监控系统中配置 webhook 直接调用 Claude Code 的 REST API如果自建了网关但更轻量的做法是让监控系统把告警信息写到某个文件然后 cron 调用 claude。但为了实时性建议使用 Alertmanager 的 webhook 配置receivers:-name:claude-codewebhook_configs:-url:http://localhost:5000/alert# 你写的一个简单的 HTTP 服务内部调用 claude编写一个简单的 Node.js 服务接收 webhook然后调用claude --print。6. 实战自动分析 nginx 错误日志并推送场景Nginx 错误日志中频繁出现504 Gateway Timeout监控系统每分钟检查一次如果最近 5 分钟内出现超过 10 次触发告警。步骤告警触发脚本如通过 cron 执行监测脚本# 检测日志中 504 次数COUNT$(tail-n1000/var/log/nginx/error.log|grep504 Gateway Timeout|wc-l)if[$COUNT-gt10];thenexportALERT_TITLENginx 504 高频告警exportALERT_MESSAGE最近5分钟出现$COUNT次 504 Gateway TimeoutexportALERT_LOGS_FILE/var/log/nginx/error.log./on-alert.shfion-alert.sh调用 Claude Code 分析echo请分析 $ALERT_LOGS_FILE中的 504 错误。提取最常见的 3 条 unique 错误消息并结合上游服务状态码给出可能原因。使用 send-alert 发送到钉钉。|claude--print--no-tuiClaude Code 读取日志文件分析模式生成报告调用send-alert发送。钉钉群收到消息示例[Claude Code 告警] **Nginx 504 高频告警** - 最近5分钟出现 23 次 504。 - 最常见错误upstream timed out (110: Connection timed out) while connecting to upstream - 可能原因后端服务器 10.0.1.22:8080 响应缓慢当前连接数过高。 - 建议检查后端服务器负载临时增加 nginx proxy_read_timeout或扩容后端。7. 交互式修复从钉钉/飞书触发 Claude Code进阶让团队成员在群里回复特定命令例如“/fix-504”触发 Claude Code 自动执行修复如重启后端、增加超时。这需要建立一个“bot 收消息”的能力。实现方案使用钉钉/飞书提供的“接收消息”功能配置消息回调地址为你自己的服务。该服务接收消息解析命令然后调用 Claude Code 执行修复动作例如修改 nginx 配置并 reload并将结果推送回群。但这涉及复杂的权限和安全考虑谁可以触发自动修复。建议只在可信环境中开启并且限制命令范围。更安全的做法Claude Code 只生成修复建议由人工确认后执行。例如用户回复/suggest-fix Claude Code 生成一条具体命令如 sudo sed -i s/proxy_read_timeout 60s;/proxy_read_timeout 120s;/ /etc/nginx/nginx.conf sudo nginx -s reload 用户再确认是否执行。8. 使用 MCP Server 统一管理通知如果你已经配置了 MCP模型上下文协议可以使用官方的 Slack MCP 或通用 HTTP MCP 来发送消息。钉钉和飞书没有官方 MCP但你可以自己实现一个简单的 MCP Server 封装 webhook 调用。创建mcp-dingtalk服务器伪代码// mcp-dingtalk serverserver.setRequestHandler(ListToolsRequestSchema,async()({tools:[{name:send_dingtalk,description:发送消息到钉钉群,inputSchema:{type:object,properties:{message:{type:string}},required:[message]}}]}));server.setRequestHandler(CallToolRequestSchema,async(request){if(request.params.namesend_dingtalk){const{message}request.params.arguments;awaitfetch(webhook_url,{method:POST,body:JSON.stringify({msgtype:text,text:{content:message}})});return{content:[{type:text,text:发送成功}]};}});然后在 Claude Code 中配置此 MCPAI 就可以使用send_dingtalk工具。这种方式更结构化适合频繁使用。9. 安全与成本方面建议Webhook 安全使用加签或 IP 白名单不要将 Webhook URL 暴露在公开仓库权限限制Claude Code 运行时尽量使用只读权限自动修复命令需要额外授权消息频率避免告警风暴导致 AI 频繁调用可在脚本中加入去重和冷却例如 10 分钟内相同告警只分析一次Token 成本每次分析消耗 token视日志大小典型一次分析约 $0.05-0.30。对于频繁告警考虑先 grep 预过滤10. 完整案例接入飞书 Prometheus Claude Code最终效果Prometheus 检测到http_requests_total{status500}在 5 分钟内增长 500%。Alertmanager 触发 webhook调用本地服务。本地服务执行tail -n 2000 /var/log/app/error.log | grep 500将结果传给 Claude Code。Claude Code 分析后输出“发现空指针异常位于src/UserController.java:42原因是未校验用户输入。建议增加判空。”飞书机器人发送消息到#production-alerts群。SRE 看到消息后立即根据建议修改代码并上线。整个流程从告警到收到分析结果通常不超过 1 分钟。11. 下篇预告监控通知让 AI 成为你的 24/7 值班工程师。但要让 AI 更深入地参与开发流程还需要掌握更多工程化技能。下一篇我们将进入新的篇章工程与集成 · GitHub CI/CD36-43篇首先学习如何使用/install-github-app5分钟打通 Claude Code 与 GitHub。下一篇/install-github-app5分钟打通Claude Code与GitHub认证与集成思考题自测理解如果你希望 Claude Code 在发送告警时不仅分析日志还能查询 Prometheus 指标如当前 QPS、错误率应该如何扩展上述架构需要哪些额外组件钉钉/飞书消息有长度限制如 4096 字符。如果 Claude Code 生成的报告超过限制你应该让 AI 如何分段发送或压缩内容自动修复功能可能被滥用例如恶意发送/fix命令。你会设计怎样的授权机制比如需要特定用户或额外确认码监控不只是发现问题更是缩短问题的生命周期。AI 让每一次告警都变成一次学习。下一章我们把 Claude Code 和 GitHub 变成更亲密的战友。