SKILL.md
readonly只读
name
azure-resource-health-diagnose
description
分析 Azure 资源运行状况,从日志和遥测数据诊断问题,并为已识别的问题制定修复计划。
Azure 资源运行状况与问题诊断
此工作流分析特定 Azure 资源,评估其运行状况,使用日志和遥测数据诊断潜在问题,并为发现的问题制定全面的修复计划。
先决条件
- 已配置并认证的 Azure MCP 服务器
- 已识别目标 Azure 资源(名称,可选资源组/订阅)
- 资源必须已部署并运行以生成日志/遥测数据
- 优先使用 Azure MCP 工具(
azmcp-*)而非直接 Azure CLI(当可用时)
工作流步骤
步骤 1:获取 Azure 最佳实践
操作:检索诊断和故障排除最佳实践
工具:Azure MCP 最佳实践工具
流程:
- 加载最佳实践:
- 执行 Azure 最佳实践工具以获取诊断指南
- 重点关注运行状况监控、日志分析和问题解决模式
- 使用这些实践指导诊断方法和修复建议
步骤 2:资源发现与识别
操作:定位并识别目标 Azure 资源
工具:Azure MCP 工具 + Azure CLI 备用
流程:
-
资源查找:
- 如果仅提供资源名称:使用
azmcp-subscription-list跨订阅搜索 - 使用
az resource list --name <resource-name>查找匹配资源 - 如果找到多个匹配项,提示用户指定订阅/资源组
- 收集详细的资源信息:
- 资源类型和当前状态
- 位置、标签和配置
- 关联的服务和依赖项
- 如果仅提供资源名称:使用
-
资源类型检测:
- 识别资源类型以确定适当的诊断方法:
- Web 应用/函数应用:应用程序日志、性能指标、依赖项跟踪
- 虚拟机:系统日志、性能计数器、启动诊断
- Cosmos DB:请求指标、限制、分区统计信息
- 存储帐户:访问日志、性能指标、可用性
- SQL 数据库:查询性能、连接日志、资源利用率
- Application Insights:应用程序遥测、异常、依赖项
- Key Vault:访问日志、证书状态、密钥使用情况
- Service Bus:消息指标、死信队列、吞吐量
- 识别资源类型以确定适当的诊断方法:
步骤 3:运行状况评估
操作:评估当前资源运行状况和可用性
工具:Azure MCP 监控工具 + Azure CLI
流程:
-
基本健康检查:
- 检查资源预配状态和操作状态
- 验证服务可用性和响应能力
- 审查最近的部署或配置更改
- 评估当前资源利用率(CPU、内存、存储等)
-
特定服务的健康指标:
- Web 应用:HTTP 响应代码、响应时间、正常运行时间
- 数据库:连接成功率、查询性能、死锁
- 存储:可用性百分比、请求成功率、延迟
- VM:启动诊断、来宾 OS 指标、网络连接
- 函数:执行成功率、持续时间、错误频率
步骤 4:日志与遥测分析
操作:分析日志和遥测数据以识别问题和模式
工具:用于 Log Analytics 查询的 Azure MCP 监控工具
流程:
-
查找监控源:
- 使用
azmcp-monitor-workspace-list识别 Log Analytics 工作区 - 定位与资源关联的 Application Insights 实例
- 使用
azmcp-monitor-table-list识别相关日志表
- 使用
-
执行诊断查询:
使用azmcp-monitor-log-query根据资源类型执行目标 KQL 查询:通用错误分析:
// 最近的错误和异常 union isfuzzy=true AzureDiagnostics, AppServiceHTTPLogs, AppServiceAppLogs, AzureActivity | where TimeGenerated > ago(24h) | where Level == "Error" or ResultType != "Success" | summarize ErrorCount=count() by Resource, ResultType, bin(TimeGenerated, 1h) | order by TimeGenerated desc性能分析:
// 性能下降模式 Perf | where TimeGenerated > ago(7d) | where ObjectName == "Processor" and CounterName == "% Processor Time" | summarize avg(CounterValue) by Computer, bin(TimeGenerated, 1h) | where avg_CounterValue > 80特定应用程序查询:
// Application Insights - 失败的请求 requests | where timestamp > ago(24h) | where success == false | summarize FailureCount=count() by resultCode, bin(timestamp, 1h) | order by timestamp desc // 数据库 - 连接失败 AzureDiagnostics | where ResourceProvider == "MICROSOFT.SQL" | where Category == "SQLSecurityAuditEvents" | where action_name_s == "CONNECTION_FAILED" | summarize ConnectionFailures=count() by bin(TimeGenerated, 1h) -
模式识别:
- 识别重复出现的错误模式或异常
- 将错误与部署时间或配置更改相关联
- 分析性能趋势和下降模式
- 查找依赖项失败或外部服务问题
步骤 5:问题分类与根本原因分析
操作:对已识别的问题进行分类并确定根本原因
流程:
-
问题分类:
- 严重:服务不可用、数据丢失、安全漏洞
- 高:性能下降、间歇性故障、高错误率
- 中:警告、次优配置、轻微性能问题
- 低:信息性警报、优化机会
-
根本原因分析:
- 配置问题:错误设置、缺少依赖项
- 资源限制:CPU/内存/磁盘限制、限制
- 网络问题:连接问题、DNS 解析、防火墙规则
- 应用程序问题:代码错误、内存泄漏、低效查询
- 外部依赖项:第三方服务故障、API 限制
- 安全问题:身份验证失败、证书过期
-
影响评估:
- 确定业务影响和受影响的用户/系统
- 评估数据完整性和安全影响
- 评估恢复时间目标和优先级
步骤 6:生成修复计划
操作:创建全面的计划以解决已识别的问题
流程:
-
立即行动(严重问题):
- 紧急修复以恢复服务可用性
- 临时变通方案以减轻影响
- 复杂问题的升级流程
-
短期修复(高/中问题):
- 配置调整和资源缩放
- 应用程序更新和补丁
- 监控和警报改进
-
长期改进(所有问题):
- 架构更改以提高弹性
- 预防措施和监控增强
- 文档和流程改进
-
实施步骤:
- 按优先级排序的行动项,包含具体 Azure CLI 命令
- 测试和验证流程
- 每个更改的回滚计划
- 监控以验证问题解决
步骤 7:用户确认与报告生成
操作:展示发现结果并获取修复行动的批准
流程:
-
显示运行状况评估摘要:
🏥 Azure 资源运行状况评估 📊 资源概览: • 资源:[名称]([类型]) • 状态:[健康/警告/严重] • 位置:[区域] • 最后分析时间:[时间戳] 🚨 已识别问题: • 严重:X 个问题需要立即关注 • 高:Y 个问题影响性能/可靠性 • 中:Z 个问题需要优化 • 低:N 个信息性项 🔍 主要问题: 1. [问题类型]:[描述] - 影响:[高/中/低] 2. [问题类型]:[描述] - 影响:[高/中/低] 3. [问题类型]:[描述] - 影响:[高/中/低] 🛠️ 修复计划: • 立即行动:X 项 • 短期修复:Y 项 • 长期改进:Z 项 • 预计解决时间:[时间线] ❓ 是否继续执行详细修复计划?(y/n) -
生成详细报告:
# Azure 资源运行状况报告:[资源名称] **生成时间**:[时间戳] **资源**:[完整资源 ID] **总体运行状况**:[带颜色指示的状态] ## 🔍 执行摘要 [运行状况和主要发现的简要概述] ## 📊 健康指标 - **可用性**:过去 24 小时 X% - **性能**:[平均响应时间/吞吐量] - **错误率**:过去 24 小时 X% - **资源利用率**:[CPU/内存/存储百分比] ## 🚨 已识别问题 ### 严重问题 - **[问题 1]**:[描述] - **根本原因**:[分析] - **影响**:[业务影响] - **立即行动**:[所需步骤] ### 高优先级问题 - **[问题 2]**:[描述] - **根本原因**:[分析] - **影响**:[性能/可靠性影响] - **建议修复**:[解决方案步骤] ## 🛠️ 修复计划 ### 阶段 1:立即行动(0-2 小时) ```bash # 恢复服务的紧急修复 [带解释的 Azure CLI 命令]阶段 2:短期修复(2-24 小时)
# 性能和可靠性改进 [带解释的 Azure CLI 命令]阶段 3:长期改进(1-4 周)
# 架构和预防措施 [Azure CLI 命令和配置更改]📈 监控建议
- 要配置的警报:[建议的警报列表]
- 要创建的仪表板:[监控仪表板建议]
- 定期健康检查:[建议的频率和范围]
✅ 验证步骤
- [ ] 通过日志验证问题解决
- [ ] 确认性能改进
- [ ] 测试应用程序功能
- [ ] 更新监控和警报
- [ ] 记录经验教训
📝 预防措施
- [防止类似问题的建议]
- [流程改进]
- [监控增强]
错误处理
- 资源未找到:提供资源名称/位置指定的指导
- 身份验证问题:引导用户完成 Azure 身份验证设置
- 权限不足:列出访问资源所需的 RBAC 角色
- 无可用日志:建议启用诊断设置并等待数据
- 查询超时:将分析分解为更小的时间窗口
- 特定服务问题:提供通用运行状况评估并注明限制
成功标准
- ✅ 准确评估资源运行状况
- ✅ 识别并分类所有重要问题
- ✅ 完成主要问题的根本原因分析
- ✅ 提供包含具体步骤的可操作修复计划
- ✅ 包含监控和预防建议
- ✅ 按业务影响明确问题优先级
- ✅ 实施步骤包含验证和回滚流程






