適用於此 Azure 架構完善的架構營運卓越檢查清單建議:
| OE:07 | 設計一個監控堆疊,能擷取工作負載基礎設施與程式碼的操作遙測、指標與日誌,以驗證設計決策並指導未來改進。 |
|---|
相關指南: 檢測應用程序的建議
可觀察性或監控是一項關鍵的營運實務,讓工作負載團隊能夠根據系統產生的外部資料來理解系統的內部狀態。 與實作業務邏輯與核心功能的功能堆疊不同,監控堆疊是平行運作的。 它收集並分析指標、日誌、痕跡與事件,顯示工作負載在真實條件下的表現。
設計監控堆疊需要謹慎規劃,因為它能洞察可靠性、效能、安全性及成本等跨領域議題。 良好架構的監控堆疊能及早偵測問題、有效事件回應及明智的營運決策。 它構成了主動管理與持續改進的基礎。
本指南說明設計監控堆疊以支援監控、偵測與警示功能的關鍵策略。
定義
| 術語 | 定義 |
|---|---|
| 遙測 | 日誌、指標、痕跡與事件的統稱。 遙測為可觀察性奠定基礎。 |
| 日志 | 記錄發生在系統內的事件。 日誌可以是結構化或帶有時間戳記的自由文字。 它們對於偵測和調查異常現象非常有用。 |
| Metrics | 以固定間隔收集的數值,描述系統效能。 指標有助於識別工作負載效能與可靠性的趨勢。 |
| 可檢視性 | 可觀察性幫助團隊偵測問題、追蹤績效趨勢並做出營運決策。 |
| 相關識別碼 | 唯一識別碼,追蹤多個元件間的相關事件,實現分散式系統中交易的端對端追蹤。 |
| 儀器儀表 | 為應用程式與基礎設施新增監控功能以捕捉遙測數據。 這包括記錄、數據收集和追蹤。 |
| 健康模型 | 一個利用指標、KPI及量測指標衡量工作負載健康狀況的框架,以反映業務與營運目標。 |
| 關鍵績效指標(KPI) | 可衡量的數值,顯示工作負載如何有效達成業務與營運目標。 KPI指引遙測數據的收集與分析。 |
| APM(應用程式效能管理) | 監控應用程式效能、可用性及使用者體驗的工具與實務。 APM 工具提供重要指標的即時及歷史可視性。 |
| Traces | 分散式系統中顯示請求路徑的紀錄。 追蹤有助於診斷跨越多個服務的問題。 |
將遙測數據與健康及關鍵績效指標模型對齊
定義工作負載健康指標、KPI及績效指標,使遙測收集策略反映這些目標。 這些指標會被追蹤以偵測異常,進而做出矯正行動的決策。
將遙測與系統及使用者流程連結。 這有助於將流量健康與收集到的數據以及整體工作量健康狀況相關聯。
AI 機會:團隊花時間手動定義 KPI 與遙測。 AI 輔助工具能根據架構、服務依賴性及程式碼建議常用遙測數據。 像 GitHub Copilot 或 Claude Code 這類工具也能協助新增儀器、產生查詢或基礎設施即程式碼範本。 確保有人工監督,確保 AI 驅動的可觀察性保持準確且符合標準。
收集各項工作負載的遙測數據
確保系統的所有元件,包括應用程式、基礎設施與平台,都能在所有層級中持續產生有意義的遙測數據,並持續捕捉日誌與指標。 日誌主要用於偵測與調查異常,而指標則主要用於識別工作負載趨勢,例如效能問題。
盡可能使用平台提供的監控工具。 它們只需最少的設定,卻能提供深刻的洞察。
權衡取捨:增加日誌細節以提升除錯性和可追溯性,但要注意儲存和處理成本較高。 為管理此權衡,開發時使用冗長記錄,生產時減少冗長,並依賴相關 ID 以維持端到端交易可視性,避免過多日誌量。
以結構化、機器可讀格式(如 JSON、MessagePack 或 Protobuf)擷取應用程式事件。 這使處理與整合更加簡便。
關於基礎建設:
- 收集日誌和指標。
- 對於 IaaS,請包含作業系統、應用程式和診斷日誌。
- 對於 PaaS,當底層基礎設施存取受限時,應最大化診斷日誌。
根據重要性優先處理資料傳輸。 較不緊急的資料可分批傳輸,而時間敏感的資訊則應立即傳送。
收集有兩種基本模式。 在 pull 模型中,遙測資料是作為查詢元件來收集,而推送遙測則是由元件向外發送資料時產生。 根據適用於你工作量的因素選擇模型。 例如,定期快照是否足夠,或是否需要接近即時的數據? 預期的遙測量是多少?資料類型是什麼?是狀態型還是日誌、事件和追蹤。
通常會採用組合方法。 例如,監控代理可以使用拉取模型,在每個應用程式實例旁本地執行,定期收集資料並寫入共享儲存。 同時,推送模型可用於應用程式遙測,每個實例在事件發生時向訊息佇列或事件串流發送日誌、追蹤和指標。
標準化資料整合
如果組織有規定,就把遙測數據從本地孤島移出,整合到中央資料庫。 對於多區域解決方案,先在區域收集並儲存資料,再集中彙整。 然而,對於關鍵任務負載,建議採用自主儲存資料。
使用一致的格式與收集方法,確保資料可用於分析、儀表板、警示及報告。 避免手動從元件中取用,因為這會增加負擔並導致不一致。
利用資料整合服務來:
- 資料去重複。
- 使用相關 ID 合併相關事件。
- 過濾不必要的資訊。
風險:請注意,擁有區域性且集中式資料儲存會帶來成本影響。
依使用模式量身調整儲存與保管
根據查詢需求和存取模式選擇儲存解決方案。 例如,產生警報的 dta 必須快速存取,因此應將其存放於快速資料儲存中,並進行索引或結構化以優化查詢
利用多語種持久化來儲存適合其使用的技術中不同的資料型態:
- SQL 資料庫用於效能計數器。
- 用於追蹤日誌的 Azure Monitor Logs 或 Azure Data Explorer。
- HDFS 用於安全資訊。
另外,資料儲存要依環境分開。 這避免了非關鍵環境資料使生產監控變得複雜。
規劃短期詳細資料的保存及長期趨勢的分析。 將較舊的遙測資料歸檔到較低成本的儲存裝置。 將頻繁存取的資料存放在更快的儲存系統中。 實施資源鎖定、軟刪除及基於角色的存取控制資料保護。
關聯數據以獲得端到端洞察
設計可觀測性,以連結所有元件間的指標、日誌與追蹤資料。 這使得跨服務的分散式營運追蹤成為可能,有助於診斷跨多層級的問題。
請一致使用關聯 ID 來追蹤交易,涵蓋呈現層、中間層及資料層。
彙整應用程式層級與資源層級日誌,以提升故障排除效率並快速偵測問題。 考慮使用統一解決方案,如 Azure Log Analytics,跨層級查詢與分析資料。
將遙測數據與系統及使用者流程對齊,以將流量健康與整體工作負載健康相關聯。 了解這些流程,確保您的可觀察性策略同時反映元件層級與端到端系統的行為。
分析與視覺化以支持可行決策
設計儀表板與報告,以營運健康模型為核心。 視覺化應讓團隊能快速識別問題、理解趨勢並優先排序回應。
使用經過驗證的監控模式與架構,而非自訂實作或臨時解決方案。 確保儀表板具有意義且可執行。 參數化儀表板讓分析師能探索底層資料。
AI 機會:儀表板通常聚焦於商業或工程指標。 AI 能分析所有相關來源的資料,並協助設計具備正確配置與視覺化功能的整合儀表板。 這減少了人工工作,並揭示了可能被忽略的洞見。
定義有關有意義操作條件的警示
根據工作負載健康狀況設定警報,而非隨意設定的數值。 警示應該是可執行的,並提供背景說明。 建立明確且負責任的警示流程,明確界定擁有者、行動範圍與範圍,並以適當的細節與冗長配置警示,以減少雜訊,同時確保關鍵問題能迅速被偵測。
利用過去經驗和定期測試來驗證門檻。 使用快速儲存儲存來產生警報資料,以實現快速通知。 針對明確定義的範圍設定警示,並調整冗長程度以減少雜訊。
自動化警示並將警示連結至工單系統。 監控雲端平台服務的健康狀況、中斷、維護及相關警示。
AI 機會:AI 可透過學習跨業務情境(如高峰客流、促銷、安靜時段及區域差異)的模式,動態定義「健康」系統行為。 AI 接著能分析指標、日誌與事件資料,預測問題並建議門檻。
設計可擴展且耐用的遙測管線
可觀察性系統必須能在高負載情況下運行,避免瓶頸或資料丟失。 包含緩衝、排隊及具可擴展性的數據收集管道,以在負載情況下維持遙測數據流。
在大規模環境中使用排隊機制來處理流量高峰。 實施冗餘以防止重要資料遺失。 設計時應規劃擴展,確保監控系統能隨工作負載需求成長。
對於複雜的工作負載,使用具有「至少一次」語意的訊息佇列。 執行多個儲存寫入服務來處理大量資料。 考慮使用事件集線器來分散遙測處理,避免單點 I/O 瓶頸。
利用可觀察性支持持續改進
把可觀察性當作一個回饋循環來處理。 利用生產資料優化工作負載設計、遙測擷取及監控閾值。
平衡自動化與人工監督,確保準確性。 隨著工作負載變化,持續檢視並演進監控方法。 利用遙測技術識別優化機會、驗證架構決策,並指導未來設計。
在整體工作負載測試中包含監控與警示。 自動化功能,同時保留分析趨勢以預測營運問題及規劃產能的能力。
Azure 支援
Azure 監視器 是一種監視解決方案,可用來收集、分析及回應來自雲端和內部部署環境的監視數據。
Log Analytics 是 Azure 入口網站 中的工具,可用來編輯及執行 Log Analytics 工作區中的數據記錄查詢。
如果您使用多個工作區,請參閱Log Analytics工作區 架構指南 以取得最佳做法。
Application Insights 是 Azure 監視器的延伸模組。 它提供應用程序性能監控(APM)功能。
Azure 監視器深入解析 是特定 Azure 技術的進階分析工具(例如 VM、應用程式服務和容器)。 這些工具是 Azure 監視器和 Log Analytics 的一部分。
適用於 SAP 解決方案 的 Azure 監視器是適用於在 Azure 上執行的 SAP 環境之 Azure 監視工具。
Azure 網路監看員 是一種工具,可監視、管理和稽核您的網路,以確保安全性、合規性和效能。
連線疑難排解 是網路監看員中的診斷工具。 它提供按需診斷和資料包捕獲(PCAP)以幫助調查連線問題。
連線監視器 是網路監看器中的監視工具。 它運行連續的綜合測試並發送有關連接和性能問題的實時警報。
流量分析 是網路監看員中的流量分析解決方案。 它可視化流量分佈,識別主要說話者,並揭示帶寬利用率趨勢。 這些功能提供網路健康情況的統一檢視。
相關連結
社群連結
- Azure 監視器基準警示 (AMBA) 是警示定義的中央存放庫, 客戶和合作夥伴可透過採用 Azure 監視器來改善其可檢視性體驗。
卓越營運檢查清單
請參閱一組完整的建議。