azure-resource-health-diagnose

azure-resource-health-diagnose

熱門

分析 Azure 資源健康狀態,從記錄和遙測資料診斷問題,並為已識別的問題建立補救計畫。

3.7萬星標
4569分支
更新於 2026/7/14
SKILL.md
readonlyread-only
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 Apps/Function Apps:應用程式記錄、效能計量、相依性追蹤
      • 虛擬機器:系統記錄、效能計數器、開機診斷
      • Cosmos DB:要求計量、節流、分割區統計資料
      • 儲存體帳戶:存取記錄、效能計量、可用性
      • SQL Database:查詢效能、連線記錄、資源使用率
      • Application Insights:應用程式遙測、例外狀況、相依性
      • Key Vault:存取記錄、憑證狀態、祕密使用量
      • Service Bus:訊息計量、無效信件佇列、輸送量

步驟 3:健康狀態評估

動作:評估目前的資源健康狀態和可用性
工具:Azure MCP 監控工具 + Azure CLI
流程

  1. 基本健康狀態檢查

    • 檢查資源佈建狀態和操作狀態
    • 驗證服務可用性和回應能力
    • 檢閱最近的部署或設定變更
    • 評估目前的資源使用率(CPU、記憶體、儲存體等)
  2. 服務特定健康狀態指標

    • Web Apps:HTTP 回應碼、回應時間、運作時間
    • 資料庫:連線成功率、查詢效能、死結
    • 儲存體:可用性百分比、要求成功率、延遲
    • VM:開機診斷、客體 OS 計量、網路連線
    • Functions:執行成功率、持續時間、錯誤頻率

步驟 4:記錄與遙測分析

動作:分析記錄和遙測資料以識別問題和模式
工具:Azure MCP 監控工具(用於 Log Analytics 查詢)
流程

  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 角色
  • 無可用記錄:建議啟用診斷設定並等待資料
  • 查詢逾時:將分析分解為較小的時間視窗
  • 服務特定問題:提供一般健康狀態評估,並註明限制

成功條件

  • ✅ 準確評估資源健康狀態
  • ✅ 識別並分類所有重大問題
  • ✅ 完成主要問題的根本原因分析
  • ✅ 提供可操作的補救計畫,附帶具體步驟
  • ✅ 包含監控和預防建議
  • ✅ 根據業務影響明確排定問題優先順序
  • ✅ 實作步驟包含驗證和復原程序