azure-resource-health-diagnose

azure-resource-health-diagnose

热门

分析 Azure 资源运行状况,从日志和遥测数据诊断问题,并为已识别的问题制定修复计划。

3.7万Star
4569Fork
更新于 2026/7/14
SKILL.md
readonly只读
name
azure-resource-health-diagnose
description

分析 Azure 资源运行状况,从日志和遥测数据诊断问题,并为已识别的问题制定修复计划。

Azure 资源运行状况与问题诊断

此工作流分析特定 Azure 资源,评估其运行状况,使用日志和遥测数据诊断潜在问题,并为发现的问题制定全面的修复计划。

先决条件

  • 已配置并认证的 Azure MCP 服务器
  • 已识别目标 Azure 资源(名称,可选资源组/订阅)
  • 资源必须已部署并运行以生成日志/遥测数据
  • 优先使用 Azure MCP 工具(azmcp-*)而非直接 Azure CLI(当可用时)

工作流步骤

步骤 1:获取 Azure 最佳实践

操作:检索诊断和故障排除最佳实践
工具:Azure MCP 最佳实践工具
流程

  1. 加载最佳实践
    • 执行 Azure 最佳实践工具以获取诊断指南
    • 重点关注运行状况监控、日志分析和问题解决模式
    • 使用这些实践指导诊断方法和修复建议

步骤 2:资源发现与识别

操作:定位并识别目标 Azure 资源
工具:Azure MCP 工具 + Azure CLI 备用
流程

  1. 资源查找

    • 如果仅提供资源名称:使用 azmcp-subscription-list 跨订阅搜索
    • 使用 az resource list --name <resource-name> 查找匹配资源
    • 如果找到多个匹配项,提示用户指定订阅/资源组
    • 收集详细的资源信息:
      • 资源类型和当前状态
      • 位置、标签和配置
      • 关联的服务和依赖项
  2. 资源类型检测

    • 识别资源类型以确定适当的诊断方法:
      • Web 应用/函数应用:应用程序日志、性能指标、依赖项跟踪
      • 虚拟机:系统日志、性能计数器、启动诊断
      • Cosmos DB:请求指标、限制、分区统计信息
      • 存储帐户:访问日志、性能指标、可用性
      • SQL 数据库:查询性能、连接日志、资源利用率
      • Application Insights:应用程序遥测、异常、依赖项
      • Key Vault:访问日志、证书状态、密钥使用情况
      • Service Bus:消息指标、死信队列、吞吐量

步骤 3:运行状况评估

操作:评估当前资源运行状况和可用性
工具:Azure MCP 监控工具 + Azure CLI
流程

  1. 基本健康检查

    • 检查资源预配状态和操作状态
    • 验证服务可用性和响应能力
    • 审查最近的部署或配置更改
    • 评估当前资源利用率(CPU、内存、存储等)
  2. 特定服务的健康指标

    • Web 应用:HTTP 响应代码、响应时间、正常运行时间
    • 数据库:连接成功率、查询性能、死锁
    • 存储:可用性百分比、请求成功率、延迟
    • VM:启动诊断、来宾 OS 指标、网络连接
    • 函数:执行成功率、持续时间、错误频率

步骤 4:日志与遥测分析

操作:分析日志和遥测数据以识别问题和模式
工具:用于 Log Analytics 查询的 Azure MCP 监控工具
流程

  1. 查找监控源

    • 使用 azmcp-monitor-workspace-list 识别 Log Analytics 工作区
    • 定位与资源关联的 Application Insights 实例
    • 使用 azmcp-monitor-table-list 识别相关日志表
  2. 执行诊断查询
    使用 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)
    
  3. 模式识别

    • 识别重复出现的错误模式或异常
    • 将错误与部署时间或配置更改相关联
    • 分析性能趋势和下降模式
    • 查找依赖项失败或外部服务问题

步骤 5:问题分类与根本原因分析

操作:对已识别的问题进行分类并确定根本原因
流程

  1. 问题分类

    • 严重:服务不可用、数据丢失、安全漏洞
    • :性能下降、间歇性故障、高错误率
    • :警告、次优配置、轻微性能问题
    • :信息性警报、优化机会
  2. 根本原因分析

    • 配置问题:错误设置、缺少依赖项
    • 资源限制:CPU/内存/磁盘限制、限制
    • 网络问题:连接问题、DNS 解析、防火墙规则
    • 应用程序问题:代码错误、内存泄漏、低效查询
    • 外部依赖项:第三方服务故障、API 限制
    • 安全问题:身份验证失败、证书过期
  3. 影响评估

    • 确定业务影响和受影响的用户/系统
    • 评估数据完整性和安全影响
    • 评估恢复时间目标和优先级

步骤 6:生成修复计划

操作:创建全面的计划以解决已识别的问题
流程

  1. 立即行动(严重问题):

    • 紧急修复以恢复服务可用性
    • 临时变通方案以减轻影响
    • 复杂问题的升级流程
  2. 短期修复(高/中问题):

    • 配置调整和资源缩放
    • 应用程序更新和补丁
    • 监控和警报改进
  3. 长期改进(所有问题):

    • 架构更改以提高弹性
    • 预防措施和监控增强
    • 文档和流程改进
  4. 实施步骤

    • 按优先级排序的行动项,包含具体 Azure CLI 命令
    • 测试和验证流程
    • 每个更改的回滚计划
    • 监控以验证问题解决

步骤 7:用户确认与报告生成

操作:展示发现结果并获取修复行动的批准
流程

  1. 显示运行状况评估摘要

    🏥 Azure 资源运行状况评估
    
    📊 资源概览:
    • 资源:[名称]([类型])
    • 状态:[健康/警告/严重]
    • 位置:[区域]
    • 最后分析时间:[时间戳]
    
    🚨 已识别问题:
    • 严重:X 个问题需要立即关注
    • 高:Y 个问题影响性能/可靠性
    • 中:Z 个问题需要优化
    • 低:N 个信息性项
    
    🔍 主要问题:
    1. [问题类型]:[描述] - 影响:[高/中/低]
    2. [问题类型]:[描述] - 影响:[高/中/低]
    3. [问题类型]:[描述] - 影响:[高/中/低]
    
    🛠️ 修复计划:
    • 立即行动:X 项
    • 短期修复:Y 项
    • 长期改进:Z 项
    • 预计解决时间:[时间线]
    
    ❓ 是否继续执行详细修复计划?(y/n)
    
  2. 生成详细报告

    # 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 角色
  • 无可用日志:建议启用诊断设置并等待数据
  • 查询超时:将分析分解为更小的时间窗口
  • 特定服务问题:提供通用运行状况评估并注明限制

成功标准

  • ✅ 准确评估资源运行状况
  • ✅ 识别并分类所有重要问题
  • ✅ 完成主要问题的根本原因分析
  • ✅ 提供包含具体步骤的可操作修复计划
  • ✅ 包含监控和预防建议
  • ✅ 按业务影响明确问题优先级
  • ✅ 实施步骤包含验证和回滚流程