关于 azure-diagnostics
azure-diagnostics 是一个用于排查 Azure 生产问题的 skill,覆盖 Container Apps、App Service、Function Apps、AKS、虚拟机连接及消息服务等。它提供系统化的诊断流程、各服务的排障指南以及 AppLens、Azure Monitor 等 MCP 工具的使用方法。
主要功能
- 01系统化的诊断流程
- 02按服务类型选择排障指南
- 03资源健康与日志检查
- 04AppLens 与 Azure Monitor 诊断
- 05仅基于提供的证据进行分析
适用场景
- 01排查 App Service 高 CPU 或部署失败
- 02排查 Function App 调用失败与超时
- 03排查 Event Hubs 或 Service Bus 连接错误
MCP 相关
该 skill 使用 AppLens、Azure Monitor 与资源健康等 Azure MCP 工具进行诊断和日志查询。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ microsoft/ azure-skills --skill azure-diagnostics安装后在 Claude Code 中输入/azure-diagnostics确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/azure-resource-graph.mdkql-queries.mdreferences/app-service/README.mdreferences/container-apps/README.mdreferences/functions/durable.mdREADME.mdtriggers.mdscripts/aks-baseline.ps1aks-baseline.shappservice-diagnostics.ps1appservice-diagnostics.shcontainerapp-diagnostics.ps1containerapp-diagnostics.shpod-evidence.ps1pod-evidence.shrun-ig.ps1run-ig.shtest-messaging-connectivity.ps1test-messaging-connectivity.shtroubleshooting/aks/aks-troubleshooting.mdgeneral-diagnostics.mdload-balancer-and-ingress.mdnetwork-policy.mdnetworking.mdnode-issues.mdoptional-aks-operations.mdpod-failures.mdtroubleshooting/aks/references/aks-mcp.mdcommand-flows.mdinspektor-gadget.md详细介绍
Azure 诊断
权威指南——必须遵守
本文档是调试和排查 Azure 生产问题的官方来源。请遵循这些说明,系统地诊断和解决常见的 Azure 服务问题。
触发条件
当用户希望执行以下操作时,启用此技能:
- 调试或排查生产问题
- 诊断 Azure 服务中的错误
- 分析应用日志或指标
- 修复映像拉取、冷启动或运行状况探测问题
- 调查 Azure 资源故障的原因
- 查找应用错误的根本原因
- 排查 App Service 问题(CPU 使用率高、部署失败、崩溃、响应缓慢、TLS/自定义域名)
- 响应类似“排查 app service”“app service CPU 使用率高”或“app service 部署失败”的提示
- 排查 Azure Function Apps 问题(调用失败、超时、绑定错误)
- 查找与 Function App 关联的 App Insights 或 Log Analytics 工作区
- 排查 AKS 集群、节点、Pod、入口或 Kubernetes 网络问题
- 排查 Azure VM 连接问题(RDP/SSH 失败、端口 3389/22 超时、NSG 或防火墙阻止连接、凭据重置)
- 排查 Azure Messaging SDK 问题(Event Hubs、Service Bus 连接失败、AMQP 错误、消息锁问题)
- 查明看起来像是运行时正常、但目标位置错误的问题的根本原因(例如,更改配置后,遥测数据/消息不再流向预期资源)——即使 MCP 工具单独就能回答表面问题,也要调用此技能查看对照表
规则
- 从系统化诊断流程开始
- 优先使用提供的证据。如果用户要求仅基于证据进行分析,或禁止实时访问 Azure,则不要查询或修改 Azure。根据提供的日志、指标和时间线进行诊断;指出假设,并提供可选的验证步骤。
- 如果可用,请使用 AppLens(MCP)进行 AI 驱动的诊断
- 深入查看日志之前,先检查资源运行状况
- 根据服务类型选择合适的故障排查指南
- 记录调查结果和尝试过的修复步骤
- 在允许实时收集数据且已知标识符的情况下,优先使用打包的诊断脚本,而不是临时调用。如果提供的证据已足够,或禁止实时访问,则不要运行脚本;否则先运行适用的脚本。
- 将 AKS 事件转交给专用的 AKS 故障排查文档
- 即使缺少、被拒绝或不受宿主支持,可选的
aks-skills附加组件,也要保留基础 AKS 诊断功能
快速诊断流程
- 确认症状 - 哪些内容发生故障?
- 检查资源运行状况 - Azure 是否运行正常?
- 查看日志 - 日志显示了什么?
- 分析指标 - 性能模式如何?
- 调查近期变更 - 有什么变更?
按服务划分的故障排查指南
| 服务 | 常见问题 | 参考 |
|---|---|---|
| Container Apps | 映像拉取失败、冷启动、运行状况探测、端口不匹配 | container-apps/ |
| App Service | CPU 使用率高、部署失败、崩溃、响应缓慢、TLS/自定义域名 | app-service/ |
| Function Apps | 应用详情、调用失败、超时、绑定错误、冷启动、缺少应用设置 | functions/ |
| AKS | 集群访问、节点、kube-system、调度、崩溃循环、入口、DNS、升级 | AKS 故障排查 |
| Compute | VM RDP/SSH 连接、NSG/防火墙阻止连接、凭据重置、VM 代理/工具问题 | VM 连接故障排查 |
| Messaging | Event Hubs 和 Service Bus SDK 错误、AMQP 故障、消息锁、连接问题 | Messaging 故障排查 |
路由
- 在此父级技能中保留 Container Apps 和 Function Apps 诊断。
- 将 AKS 故障排查、AKS 专项问题受理、证据收集和修复指导转至 AKS 故障排查。
- 将 Azure VM RDP/SSH 连接、NSG/防火墙、凭据重置和 VM 代理故障排查转至 VM 连接故障排查。
- 将 Azure Messaging SDK 故障排查(Event Hubs、Service Bus)转至 Messaging 故障排查。
快速参考
常用诊断命令
# Check resource health
az resource show --ids RESOURCE_ID
# View activity log
az monitor activity-log list -g RG --max-events 20
# Container Apps logs
az containerapp logs show --name APP -g RG --follow
# Function App logs (query App Insights traces)
az monitor app-insights query --apps APP-INSIGHTS -g RG \
--analytics-query "traces | where timestamp > ago(1h) | order by timestamp desc | take 50"
AppLens(MCP 工具)
如需 AI 驱动的诊断,请使用:
mcp_azure_mcp_applens
intent: "diagnose issues with <resource-name>"
command: "diagnose"
parameters:
resourceId: "<resource-id>"
Provides:
- Automated issue detection
- Root cause analysis
- Remediation recommendations
Azure Monitor(MCP 工具)
如需查询日志和指标:
mcp_azure_mcp_monitor
intent: "query logs for <resource-name>"
command: "logs_query"
parameters:
workspaceId: "<workspace-id>"
query: "<KQL-query>"
常见诊断查询请参阅 kql-queries.md。
检查 Azure 资源运行状况
使用 MCP
mcp_azure_mcp_resourcehealth
intent: "check health status of <resource-name>"
command: "get"
parameters:
resourceId: "<resource-id>"
使用 CLI
# Check specific resource health
az resource show --ids RESOURCE_ID
# Check recent activity
az monitor activity-log list -g RG --max-events 20
参考资料
评论
支持 Markdown