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 最佳做法工具
流程:
- 載入最佳做法:
- 執行 Azure 最佳做法工具以取得診斷指南
- 專注於健康狀態監控、記錄分析和問題解決模式
- 使用這些做法來指導診斷方法和補救建議
步驟 2:資源探索與識別
動作:找出並識別目標 Azure 資源
工具:Azure MCP 工具 + Azure CLI 備援
流程:
-
資源查詢:
- 如果只提供資源名稱:使用
azmcp-subscription-list跨訂用帳戶搜尋 - 使用
az resource list --name <resource-name>尋找相符的資源 - 如果找到多個相符項目,提示使用者指定訂用帳戶/資源群組
- 收集詳細的資源資訊:
- 資源類型和目前狀態
- 位置、標籤和設定
- 相關服務和相依性
- 如果只提供資源名稱:使用
-
資源類型偵測:
- 識別資源類型以決定適當的診斷方法:
- Web Apps/Function Apps:應用程式記錄、效能計量、相依性追蹤
- 虛擬機器:系統記錄、效能計數器、開機診斷
- Cosmos DB:要求計量、節流、分割區統計資料
- 儲存體帳戶:存取記錄、效能計量、可用性
- SQL Database:查詢效能、連線記錄、資源使用率
- Application Insights:應用程式遙測、例外狀況、相依性
- Key Vault:存取記錄、憑證狀態、祕密使用量
- Service Bus:訊息計量、無效信件佇列、輸送量
- 識別資源類型以決定適當的診斷方法:
步驟 3:健康狀態評估
動作:評估目前的資源健康狀態和可用性
工具:Azure MCP 監控工具 + Azure CLI
流程:
-
基本健康狀態檢查:
- 檢查資源佈建狀態和操作狀態
- 驗證服務可用性和回應能力
- 檢閱最近的部署或設定變更
- 評估目前的資源使用率(CPU、記憶體、儲存體等)
-
服務特定健康狀態指標:
- Web Apps:HTTP 回應碼、回應時間、運作時間
- 資料庫:連線成功率、查詢效能、死結
- 儲存體:可用性百分比、要求成功率、延遲
- VM:開機診斷、客體 OS 計量、網路連線
- Functions:執行成功率、持續時間、錯誤頻率
步驟 4:記錄與遙測分析
動作:分析記錄和遙測資料以識別問題和模式
工具:Azure MCP 監控工具(用於 Log Analytics 查詢)
流程:
-
尋找監控來源:
- 使用
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 角色
- 無可用記錄:建議啟用診斷設定並等待資料
- 查詢逾時:將分析分解為較小的時間視窗
- 服務特定問題:提供一般健康狀態評估,並註明限制
成功條件
- ✅ 準確評估資源健康狀態
- ✅ 識別並分類所有重大問題
- ✅ 完成主要問題的根本原因分析
- ✅ 提供可操作的補救計畫,附帶具體步驟
- ✅ 包含監控和預防建議
- ✅ 根據業務影響明確排定問題優先順序
- ✅ 實作步驟包含驗證和復原程序






