這份文件說明混合雲與多雲端部署項目的監控和記錄架構,並提供使用 Google Cloud實作這些架構的最佳做法。您可以透過這份文件,找出最適合環境的模式和產品。
每家企業都有獨特的應用程式工作負載組合,會對混合式雲端或多雲端設定的架構設有相關需求與限制。雖然您必須精心設計並打造出符合這些限制與需求的架構,您仍可仰賴一些常用的模式。
本文件所涵蓋的模式分為兩類:
- 在單一主控台架構中,所有監控和記錄都會集中管理,目的是提供單一存取和控管點。
- 在分開的應用程式和作業架構中,機密應用程式資料會與較不敏感的作業資料分開,目的是為了符合機密資料的法規遵循要求。
選擇架構模式
您可以使用下圖中的決策樹,找出最適合用途的架構。
本文件將進一步探討各項架構的詳細資訊,但您可以從下列選項中進行選擇:
- 從 Monitoring 匯出至舊版解決方案。
- 直接匯出至舊版解決方案。
- 搭配使用 Monitoring 與 Prometheus 和 Fluentd 或 Fluent Bit。
- 搭配使用 Monitoring 和 observIQ BindPlane。
單一主控台架構
混合式系統的共同目標,是將來自多個應用程式和環境的不同來源監控和記錄資訊,整合至單一顯示畫面。這種顯示畫面稱為單一窗格。
下圖說明此模式,其中內部部署和雲端的所有應用程式監控和記錄資料都會集中到雲端託管的單一存放區。
此架構具備下列優點:
- 您可以透過單一一致的檢視畫面查看所有監控和記錄資料。
- 您可以在單一位置管理資料儲存和保留作業。
- 您可以集中控管存取權和稽核功能。不過,您仍需要確保傳輸至中央存放區的資料安全無虞。
透過單一主控台進行監控
Cloud Monitoring 是由 Google 代管,可監控及管理服務、容器、應用程式和基礎架構的解決方案。如要使用單一面板和強大的儲存解決方案,以便查看指標、記錄檔、追蹤記錄和事件,請使用 Google Cloud Observability。套件也提供完整的監控工具,例如資訊主頁、報表和快訊。
所有 Google Cloud 產品和服務都支援與 Monitoring 整合。此外,您可以使用多種整合工具,將監控功能擴及混合式雲端和內部資源。
下列最佳做法適用於所有以 Monitoring 做為單一平台的架構:
- 如要符合記錄保留的法規要求,請為貴機構設定記錄接收端。
- 如要快速分析記錄事件,請設定將記錄匯出至 BigQuery,以便進行安全性和存取分析。
- 如要分析儲存在記錄檔值區中的記錄,請透過 Log Analytics 執行 SQL 查詢。
- 如果專案含有機密資料,建議您啟用資料存取稽核記錄,以便追蹤誰存取了資料。
- 如要移除機密資訊 (例如身分證字號、信用卡號碼和電子郵件地址),您可以篩選記錄資料。您可以使用自訂 Fluent Bit 設定或使用記錄排除條件進行擷取來篩選資料。您也可以個別匯出未篩選的記錄,以符合法規遵循要求。
使用 Monitoring 和 observIQ 的 BindPlane 進行混合監控和記錄
您可以使用 Google 合作夥伴 observIQ 提供的 BindPlane,從內部部署 VM 和其他雲端供應商 (例如 Amazon Web Services (AWS)、Microsoft Azure、Alibaba Cloud 和 IBM Cloud) 匯入監控和記錄資料至 Google Cloud。下圖顯示 Monitoring 和 BindPlane 如何為混合雲提供單一資訊窗格。
此架構具備下列優點:
- 除了監控 VM 等資源,BindPlane 也內建了 超過 50 個熱門資料來源的深度整合功能。
- 使用 BindPlane 不需要額外支付授權費用。BindPlane 指標會以計費的自訂指標形式匯入 Monitoring。同樣地,BindPlane 記錄的收費標準與其他 Logging 記錄相同。
如要進一步瞭解如何導入此模式,請參閱「使用 BindPlane 記錄及監控地端部署資源」。
使用 Prometheus 和 Monitoring 進行混合式 Google Kubernetes Engine 監控
Google Cloud Managed Service for Prometheus 是 Google Cloud全權管理的熱門開源監控解決方案,可讓您透過 Monitoring 監控在多個 Kubernetes 叢集中執行的應用程式。當您在Google Cloud 上執行跨越 Google Kubernetes Engine (GKE) 和內部資料中心 Google Distributed Cloud 的 Kubernetes 工作負載時,這項架構就非常實用,因為它會在兩者之間提供統一的介面。下圖顯示如何使用 Prometheus 和 Monitoring 收集器收集資料。
此架構具備下列優點:
- 在雲端和地端部署環境中提供一致的 Kubernetes 指標。
- 您可以使用 Prometheus 監控全球工作負載並發出快訊,而無須大規模管理及操作 Prometheus。
- 使用 Prometheus 不會產生額外的授權費用。Prometheus 指標會匯入 Monitoring。匯入作業需付費,價格則取決於擷取的樣本數。
此架構有以下缺點:
- Prometheus 僅支援監控,因此必須另外設定記錄。下一個章節將說明使用 Fluentd 或 Fluent Bit 記錄的常見做法。
我們建議採用下列最佳做法:
- 根據預設,Prometheus 會收集所有公開的指標,每個指標都會成為可收費的指標。為避免產生非預期的費用,建議您導入Monitoring 成本控制。
使用 Fluentd 或 Fluent Bit 和 Cloud Logging 的混合式 GKE 記錄
您可以使用 Fluentd 或 Fluent Bit (熱門的開放原始碼記錄代理程式) 和 Cloud Logging,將在多個 GKE 叢集中執行的應用程式記錄檔匯入 Cloud Logging。在內部部署資料中心中,如果要執行在 GKE on- Google Cloud 和 Google Distributed Cloud 之間分散的 Kubernetes 工作負載,這類架構就很實用,因為它會在兩者之間提供統一的介面。下圖說明記錄的流程。
此架構具備下列優點:
- 您可以在雲端和地端部署環境中使用一致的 Kubernetes 記錄功能。
- 您可以自訂記錄功能,篩除機密資訊。
- 使用 Fluentd 或 Fluent Bit 不會產生額外的授權費用。使用 Fluentd 或 Fluent Bit 匯入 Logging 的記錄會產生費用。
此架構有以下缺點:
- Fluentd 和 Fluent Bit 僅支援記錄,因此必須另外設定監控。上一節討論了使用 Prometheus 進行監控的常見選項。
如要進一步瞭解如何實作此模式,請參閱「為 Google Kubernetes Engine 記錄自訂 Fluent Bit」一文。
合作夥伴服務的單一主控台
如果您已使用第三方監控或記錄服務 (例如 Datadog 或 Splunk),可能不想改用 Logging。在這種情況下,您可以將資料從 Google Cloud 匯出至許多常見的監控和記錄服務。您可以選擇使用整合式監控和記錄服務,也可以選擇最符合需求的個別監控和記錄服務。
從 Logging 匯出至合作夥伴服務
在這個模式中,您會授權合作夥伴的監控服務 (例如 Datadog) 連線至 Cloud Monitoring API。這項授權可讓服務擷取記錄功能可用的所有指標,讓 Datadog 可做為單一監控資訊主頁。
針對記錄資料,Logging 會提供匯出項目 (記錄接收器) 至 Pub/Sub。這些匯出功能可為合作夥伴記錄服務 (例如 Elastic 和 Splunk) 提供高效且彈性的方法,讓這些服務能夠即時擷取來自記錄的大量記錄,以便提供單一資訊窗格的記錄。
下圖顯示記錄和監控的綜合架構。
此架構具備下列優點:
- 您可以繼續使用熟悉的現有工具。
- Google Cloud 支援團隊仍可存取記錄檔,以便排解問題。
此架構有以下缺點:
- 合作夥伴解決方案通常是外部代管,也就是說,如果網路連線中斷,這些解決方案可能無法使用或收集資料。有時,您可以透過自行代管來降低這項風險,但代價是必須自行維護解決方案的基礎架構。
- Google Cloud 支援團隊無法直接存取外部代管的資訊主頁。這項缺少可用性可能會減緩疑難排解和緩解作業。
- 商業合作夥伴解決方案可能會收取更多授權費用。
以下是一些詳細的整合範例:
- Datadog:監控 Compute Engine 指標和收集記錄記錄
- Elastic:將記錄檔匯出至 Elastic Cloud
- Splunk:從 Logging 進行匯出作業的情境
使用 Grafana 分析 Prometheus 和記錄的指標
Grafana 是一款熱門的開放原始碼監控工具,通常會與 Prometheus 搭配使用,用於收集指標。在這個架構中,您會使用 Prometheus 做為內部部署的收集層,並使用 Grafana 做為Google Cloud 和內部部署資源的單一資訊窗格。下圖為範例架構,可分析來自 Google Cloud 和內部指標。
此架構具備下列優點:
- 這項功能適合混合環境,其中包含 VM 和容器。
- 如果貴機構已在使用 Prometheus 和 Grafana,使用者可以繼續使用這些工具。
此架構有以下缺點:
- Prometheus 僅支援監控,因此您必須另外設定記錄功能,例如使用 Fluentd 或 Grafana 的 Cloud Logging 外掛程式。
- Prometheus 是開放原始碼且可擴充,但只支援有限的企業軟體整合。
- Prometheus 和 Grafana 是第三方工具,而非 Google 官方產品。Google 不支援 Prometheus 或 Grafana。
詳情請參閱「使用 Grafana 的 Cloud Logging 外掛程式,更有效地排解問題」。
使用 Fluentd 匯出記錄
早期模式涵蓋使用 Fluentd 或 Fluent Bit 做為記錄記錄收集器。同樣的基本架構也適用於支援 Fluentd 或 Fluent Bit 的其他記錄或資料分析系統,包括 BigQuery、Elastic 和 Splunk。下圖說明瞭這個模式。
此架構具備下列優點:
- 這項功能適合混合環境,其中包含 VM 和容器。
- Fluentd 可從許多資料來源讀取資料,包括系統記錄。
- Fluentd 提供許多熱門第三方記錄和資料分析系統的輸出外掛程式。
- Fluent Bit 也可以從許多輸入來源讀取資料,包括系統記錄。
- Fluent Bit 提供許多熱門第三方記錄和資料分析系統的輸出內容。
此架構有以下缺點:
- Fluentd 和 Fluent Bit 僅支援記錄檔,因此必須另外設定監控功能。上一節討論了使用 Prometheus 和 Grafana 進行監控的常見選項。
- Fluentd 和 Fluent Bit 是第三方工具,而非 Google 官方產品。Google 不會為這些應用程式提供支援。
- 匯出的記錄檔無法供 Google Cloud 支援團隊用於疑難排解。特別注意,如果未啟用記錄功能,Google 就不會提供 Google Distributed Cloud 叢集支援服務。
分開應用程式和作業資料
透過單一主控台架構,您可以監控串流應用程式,並將記錄資料記錄到雲端。不過,您可能會受到法規或法規遵循要求的限制,例如必須將客戶資料保留在內部環境,或是嚴格限制可儲存在公用雲端的資料類型。
對於這些混合型環境而言,實用的模式是將機密應用程式資料與風險較低的作業資料分開,如下圖所示。
使用 GKE Enterprise 區分應用程式和系統資料
GKE Enterprise on VMware 是 GKE Enterprise 套件的一部分,其中包含 Grafana,可用於監控內部叢集。此外,您也可以選擇安裝合作夥伴解決方案 (例如 Elastic Stack 或 Splunk) 來記錄資料。透過這些解決方案,您可以在內部部署環境中擷取及查看敏感應用程式資料,同時將系統資料匯出至Google Cloud上的 Logging。下圖說明這個架構。
此架構具備下列優點:
- 私密應用程式資料完全儲存在內部。
- 地端監控和記錄功能不受雲端依附元件的影響,即使網路連線中斷,也能正常運作。
- 所有 GKE 系統資料 (包括內部部署和Google Cloud) 都會集中在 Logging 中, Google Cloud 支援團隊也可以視需要存取這些資料。
如需使用 Elastic Stack 做為合作夥伴解決方案的導入範例,請參閱「使用 Elastic Stack 監控 GKE Enterprise」。
後續步驟
- 請參閱混合式雲端和多雲端模式及實務做法系列文章,進一步瞭解混合式雲端和多雲端的最佳做法,包括架構模式和安全網路架構模式。
- 註冊 Cloud Kubernetes 最佳做法任務,瞭解 GKE 上可觀察性和其他功能的實際操作練習。
- 探索 Google Cloud 的參考架構、圖表和最佳做法。歡迎瀏覽我們的雲端架構中心。