由於現今雲端容器化管理技術的盛行,企業往往採用Google Kubernetes Engine (GKE) 的環境來管理應用程式,而在 GKE 生產 (Production) 環境往往會產生大量的日誌檔案,要怎麼經濟實惠且有效地儲存和管理這些日誌檔案在 Pay-as-you-go (PAYG) 的雲端環境中是重要的議題。在本篇文章中將會介紹如何透過 Cloud Logging 串接到 Cloud Storage 的設定來存放 Production 環境這種不需要即時除錯的日誌檔案,並以 Standard Cloud Storage 的儲存方式為例,可以節省約 20 倍以上的日誌檔案儲存成本。
GKE 生產環境產生龐大日誌檔案
Cloud Logging 是 Google Cloud 平台的即時日誌紀錄檔管理機制分析和故障排除的重要工具。企業往往會使用 Cloud Logging 來收集和存儲 Google Cloud 各個資源的日誌紀錄檔案,以利日後做進一步的分析。隨著 Kubernetes 技術的盛行[1],如何在 GKE 的環境中做日誌檔案管理也變成一個重要的議題。
GKE 預設會在每一個節點 (Node) 上安裝一個日誌紀錄代理器 (LogAgent) [2],來收集每個容器 (Container) 和系統的日誌檔案,其收集的日誌檔包含容器化程式的標準輸入 (Standard Output) 和標準錯誤 (Standard Error) 日誌檔,Kubelet 和容器的 Runtime 日誌檔,如虛擬機器啟動程式 (VM Startup Scripts) 這種系統元件日誌檔。在一般企業的 GKE Production 環境中,往往會產生龐大的日誌檔案,如何有效且經濟實惠地保存這些日誌檔成為重要的議題。
雖然 GKE 本身也會暫時儲存系統本身的日誌檔,但這些日誌檔可能會因為某些原因而被移除,例如應用程式重新啟動使得 Pod 被移除因而導致日誌檔消失,或者系統儲存空間不夠導致新的日誌檔無法儲存等。因此,GKE 會將所有日誌檔案送往 Cloud Logging 的專用永久儲存區來做保存。
Cloud Logging 預設儲存方式產生較高儲存成本
Cloud Logging 計價方式主要分成以下兩種方式[3][4]:
(1) Logging 的儲存空間
- 將日誌檔以串流的方式傳送到日誌檔的儲存空間作存儲,以便建立索引來提供日後查詢和分析。
- 其存儲費用為每 GiB 是$0.5美元,而其日誌檔最多可儲存 30 天(每個月每個專案的有50 GiB 的免費額度)。
(2) Logging 的保留功能
- 日誌記錄檔儲存超過30天時,每 GiB 每個月會酌收$0.01美元。
由於 Cloud Logging 的日誌檔案儲存費用頗高 (每 GiB 是$0.5美元),要如何經濟實惠且有效率地儲存 GKE 叢集中的龐大日誌檔案,就得針對企業的使用情境仔細斟酌。
舉例來說,對於 Production 環境中 GKE 叢集來說,將日誌記錄檔儲存在 Cloud Logging 中未必是一個好選項,因為 Production 環境中的 GKE 叢集所部屬的應用程式往往已經經過大量的測試,其應用程式運作比較穩定,不會像開發環境或測試環境中的 GKE 叢集那樣,常常有即時查看日誌紀錄檔案來除錯的需求;而且 Production 環境中的 GKE 叢集日誌紀錄檔案往往會需要能夠長期保存以供日後稽核。在這樣的情境下,將 Cloud Logging 中的日誌記錄檔導出到 Cloud Storage 來做儲存,等到有查詢需求的時候,再將日誌檔導入 BigQuery 來做查詢,反而是一個較經濟實惠的方式。
而對測試環境或者開發環境來說,因為在開發中過程往往需要一個像 Cloud Logging 這樣可以即時查看日誌檔案和輔助除錯的工具,而且開發和測試環境往往不會像 Production 環境那樣會產生大量的日誌檔案。
我們以台灣區 (asia-east1) 中 Cloud Storage 的 Standard Storage 價格[5]為例, Standard Storage 的儲存價格為每月每 GB 是$0.02美元,這個價格和 Cloud Logging 的儲存費用 (每月每 GiB 是$0.5元)相比,相對便宜很多。當然 Cloud Storage 的儲存價格會依照不同的儲存種類 (Standard、Nearline、Coldline 和 Archivce) 和區域位置 (Region、Dual-Region 和 Multi-Region) 會有不同的計價方式,但綜合來說,還是比 Cloud Logging 的費用便宜。
以下我們會針對 Production 的 GKE 叢集介紹,怎麼將 Cloud Logging 的日誌檔案導入 Cloud Storage 中。
串接 Cloud Logging 和 Cloud Storage 來降低儲存費用
建立 Cloud Storage Bucket 儲放不需即時除錯的日誌檔案
在 Cloud Storage 中根據自身的需求來建立合適的 Cloud Storage Bucket 存放日誌檔案。
- 點選進入 Cloud Storage 服務,並且點選 Buckets。