Azure 受控 Grafana 提供託管的 Grafana 工作區,用於建立儀表板與視覺化。 Microsoft 管理所有底層基礎設施,包括運算、網路、儲存及服務更新。
使用Azure時,可靠性是共同責任。 Microsoft 提供一系列功能以支援韌性與復原。 您有責任瞭解這些功能在您使用的所有服務中如何運作,並選取符合業務目標和正常運作時間目標所需的功能。
本文說明如何讓 Azure 受控 Grafana 對各種潛在的中斷與問題具備韌性,包括暫時性故障、可用性區域中斷及區域中斷。 它也說明了如何備份和恢復其他類型的問題,並強調 Azure 受控 Grafana 服務層級協議(SLA)的關鍵資訊。
可靠性的生產部署建議
為了提升使用 Azure 受控 Grafana 的生產部署可靠性,我們建議您採取以下步驟:
建立工作區時啟用區域冗餘,以提供對可用性區故障的韌性。
將儀表板及其他 Grafana 資源儲存為程式碼,例如從 Grafana API 或 CLI 匯出,並儲存在像 GitHub 這樣的原始碼控制倉庫中。 使用持續整合與持續交付(CI/CD)管線將儀表板部署至 Azure 受控 Grafana。 此方法支持復原情境。 同時也支援部署至多個 Grafana 實例,包括不同 Azure 區域的實例(如有需要)。
可靠性架構概觀
本節說明服務運作中從可靠性角度來看最為重要的部分。 本節介紹邏輯架構,包含你部署和使用的部分資源與功能。 它還討論了物理架構,其中提供了有關服務如何在幕後工作的詳細信息。
邏輯架構
你部署的主要Azure資源是 workspace。 部署工作區後,你會使用工作區的 Grafana 端點來配置並互動資料來源、儀表板、視覺化及其他 Grafana 資源。
實體架構
當你在內部建立工作區時,Azure 平台會配置以下底層元件:
Grafana 伺服器: 專門執行 Grafana 應用程式的虛擬機(VM)。 預設情況下,會配置兩台伺服器以維持高可用性與冗餘。 Microsoft 完全管理這些伺服器。 你在訂閱中看不到它們,無法存取,也不負責修補、擴展或維護它們。
負載平衡器: 一個網路負載平衡器,將收到的瀏覽器請求分散到各 Grafana 伺服器。 負載平衡器會監控伺服器健康狀況,並自動將流量從不健康的伺服器中導離。
後端資料庫: 一個適用於 PostgreSQL 的 Azure 資料庫資料庫,儲存工作區設定及其他持久化資料。 工作空間中的所有 Grafana 伺服器都共享此資料庫。 欲了解更多資料庫韌性資訊,請參閱 適用於 PostgreSQL 的 Azure 資料庫 中的
Reliability。
你看不到或管理這些元件。 Microsoft 代表你部署和管理這些軟體。
負載平衡器會追蹤哪些 Grafana 伺服器可用。 在雙伺服器架構中,若其中一台伺服器狀況不佳,負載平衡器會將所有請求發送給剩餘的伺服器。 該伺服器會根據共享資料庫中的資訊,接收先前失敗伺服器處理的瀏覽器會話。 同時,Azure 受控 Grafana 會修復或替換不健康的伺服器。
架構圖顯示共享閘道後方的 Azure 受控 Grafana 工作空間。 負載平衡器將流量分配到兩台連接共享資料庫的 Grafana 伺服器。
對瞬態故障的彈性
暫時性錯誤是元件中的短暫間歇性失敗。 它們經常出現在雲端等分散式環境中,而且是作業的一般部分。 暫時性錯誤會在短時間內自行修正。 請務必確保您的應用程式能妥善處理暫時性錯誤,通常透過重試受影響的請求來進行。
所有雲端託管應用程式在與任何雲端託管的 API、資料庫及其他元件通訊時,都應遵循 Azure 暫態故障處理指引。 如需詳細資訊,請參閱 處理暫時性錯誤的建議。
你可以透過 Grafana API 建立客戶端應用程式,與你的 Grafana 工作空間互動。 請確保這些應用程式遵循 Azure 對失敗請求的重試指引。
對可用性區域故障的抵抗力
可用性區域是Azure區域內物理上獨立的資料中心群組。 當某個區域發生故障時,服務可以切換至其他剩餘的區域。
在支援的 Azure 地區中,Azure 受控 Grafana 工作區支援區域冗餘。 啟用區域冗餘後,工作區的 Grafana 伺服器會分散於多個可用區域。 Microsoft 會選擇你工作空間使用的區域。 其他資源,如網路負載平衡器、資料庫及共享閘道器,也被設定為使用多個可用性區域。
下圖展示了 Microsoft 管理的區域冗餘工作空間元件在三個可用區域中的配置範例:
圖中顯示一個區域冗餘的 Azure 受控 Grafana 工作區,位於一個擁有三個可用區域的區域。 區域冗餘負載平衡器將流量路由至 Zone 1 與 2 的 Grafana 伺服器。 伺服器使用跨越三個區域的共用資料庫。
如果你沒有啟用區域冗餘,工作空間就是 非區域 性或 區域性,這表示伺服器和其他元件可能會被放置在該區域內或同一區域內的任何可用區域。 如果區域內任何可用區域出現問題,你的工作空間可能會出現停機。
需求
區域支援: 區域冗餘支援可在以下地區提供。
| 地理區域 | Region |
|---|---|
| 美洲 | 美國東部 |
| 美洲 | 美國中南部 |
| 美洲 | 美國西部 3 |
| 歐洲 | 北歐 |
| 亞太地區 | Australia East |
| 亞太地區 | 東亞 |
費用
區域冗餘會增加額外成本。 更多資訊請參閱Azure 受控 Grafana價格。
設定可用性區域支援
建立啟用可用區域的新工作區: 在建立工作區時,透過Azure入口網站、Azure CLI、Bicep或Azure Resource Manager模板(ARM模板)啟用區域冗餘。
更多資訊請參閱 Azure 受控 Grafana 中的
啟用區域冗餘。 在現有工作區設定區域冗餘: 你無法在現有工作區啟用或停用區域冗餘。 相反地,你需要建立一個使用你想要的區域冗餘配置的新工作區,遷移儀表板和設定,然後刪除現有的工作區。
所有區域都狀況良好時的行為
本節說明當你將工作空間設定為區域冗餘,且所有可用區域皆可運作時,會預期的情況。
區域間的流量路由: 區域冗餘負載平衡器會自動將收到的請求分配到各 Grafana 伺服器。 兩台伺服器都能處理流量。
區域間的資料複製: 工作區資料的變更會同步地在多個可用區域間複製。 適用於 PostgreSQL 的 Azure 資料庫 執行數據複製。 欲了解更多資訊,請參閱適用於 PostgreSQL 的 Azure 資料庫 中的可靠性。 Azure 受控 Grafana 並沒有實作超出資料庫平台提供的額外自訂複製邏輯。
區域失敗期間的行為
本節說明當你設定工作區為區域冗餘,且其中一個區域發生故障時,會發生什麼情況。
- 偵測與回應: Azure平台偵測並回應可用性區域的故障。 您不需要起始區域容錯移轉。
- Notification:當某個區域出現故障時,Microsoft不會自動發出通知。 不過,你可以用Azure 資源健康狀態監控單一資源的健康狀況,並設定資源健康狀態警示來通知你問題。 你也可以使用 Azure 服務健康狀態 來了解整體服務的健康狀況,包括任何區域故障,並且可以設定 Service Health 警示來通知你問題。
預期資料遺失: 在可用性區域中斷期間,預期不會有資料遺失。
預期的停機時間: 你的工作空間可能會有短暫的停機時間,通常只有幾秒鐘,流量會被重新導向健康的伺服器。 確保客戶端應用程式能妥善處理 暫時性故障 ,以減少停機的影響。
交通改道: 進來的流量會自動路由到健康區域內的伺服器。 在分區停電期間,服務以減少容量運行。 在停電期間,替代伺服器不會被配置在健康區域。
區域復原
Microsoft 會自動管理區域恢復,包括當受影響區域恢復正常時,還能恢復服務容量。
測試區域失敗
Azure 平台負責管理區域備援工作區的流量路由、容錯移轉與容錯回復。 此功能完全受控,因此您不需要起始或驗證可用性區域失敗程序。
對區域範圍故障的復原能力
Azure 受控 Grafana 是一個單一區域服務。 如果該區域無法使用,你的工作區也無法使用。
客製化多區域韌性解決方案
為了達到區域性停電的韌性,你可以在不同區域部署多個 Grafana 工作區。 在這種解決方案中,你負責:
區域間儀表板與設定的複製。 例如,你可以透過使用 CI/CD 和來源控制,在多個工作區間套用一致的設定。
在應用程式或用戶端層級實作流量路由與故障轉移。
備份與還原
Azure 受控 Grafana 不提供儀表板或其他資料平面實體的內建備份或還原功能。 防止意外刪除或損壞:
使用 Grafana API 或 CLI 來匯出儀表板及其他 Grafana 設定。
匯出後的儀表板儲存在原始碼控制儲存庫,例如 GitHub。
使用自動化工具或 CI/CD 管線來重新部署 Grafana 儀表板及其他配置。
服務維護的韌性
Microsoft 定期執行服務更新及其他維護。 Azure 平台自動處理這些活動,確保維護過程對您來說無縫且透明。 在維修作業期間,你可能會看到短暫的中斷。 通常這些中斷只會持續幾秒鐘。 確保用戶端應用程式能設定處理 暫時性故障 ,使其能抵抗短暫中斷。
服務等級協定
Azure 服務的服務層級協議(SLA)描述了每項服務的預期可用性,以及您的解決方案必須符合的條件,以達成該可用性預期。 欲了解更多資訊,請參閱線上服務的 SLA。