將記錄檔從 Cloud Storage 匯入至 Cloud Logging

Last reviewed 2025-02-19 UTC

這份參考架構說明如何將先前匯出至 Cloud Storage 的記錄檔匯回 Cloud Logging。

本參考架構適用於工程師和開發人員,包括開發運作、網站穩定性工程師 (SRE) 和安全調查人員,可協助他們設定及執行記錄匯入作業。本文假設您熟悉如何執行 Cloud Run 作業,以及如何使用 Cloud Storage 和 Cloud Logging。

架構

下圖顯示此參考架構中使用的服務: Google Cloud

工作流程圖:從 Cloud Storage 匯入記錄檔至 Cloud Logging。

這個工作流程包含下列元件:

  • Cloud Storage 值區:包含您要匯回 Cloud Logging 的先前匯出記錄。由於這些記錄檔先前已匯出,因此會以預期的匯出格式整理。
  • Cloud Run 工作:執行匯入記錄程序:
    • 從 Cloud Storage 讀取儲存記錄檔項目的物件。
    • 根據 Cloud Storage bucket 中匯出記錄的組織結構,在要求時間範圍內,找出指定記錄 ID 的匯出記錄。
    • 將物件轉換為 Cloud Logging API LogEntry 結構。多個 LogEntry 結構體會匯總成批次,以減少 Cloud Logging API 配額用量。架構會在必要時處理配額錯誤
    • 將轉換後的記錄項目寫入 Cloud Logging。 如果多次重新執行相同的工作,可能會導致項目重複。詳情請參閱「執行匯入工作」。
  • Cloud Logging:擷取並儲存轉換後的記錄項目。 系統會按照轉送功能和儲存空間簡介所述方式處理記錄項目。
    • 適用 Logging 配額與限制,包括 Cloud Logging API 配額與限制,以及 30 天的保留期限。這個參考架構的設計目的是搭配預設寫入配額使用,並提供基本重試機制。如果寫入配額低於預設值,實作作業可能會失敗。
    • 由於匯入的記錄檔時間戳記位於過去,因此不會計入以記錄檔為準的指標。不過,如果您選擇使用標籤,時間戳記會記錄匯入時間,記錄也會納入指標資料。
  • BigQuery:使用 SQL 對匯入的記錄執行分析查詢 (選用)。如要從 Cloud Storage 匯入稽核記錄,這個架構會修改記錄 ID;查詢匯入的記錄時,請務必將這項重新命名作業納入考量。

用途

如果貴機構需要針對事件調查或其他過去事件的稽核作業,進行額外的記錄分析,不妨選擇部署這項架構。舉例來說,您可能想分析去年第一季的資料庫連線,做為資料庫存取稽核的一部分。

設計替代方案

本節說明本參考架構文件所示預設設計的替代方案。

保留期限和匯入的記錄

Cloud Logging 規定傳入的記錄項目時間戳記不得超過 30 天的保留期限。系統不會儲存時間戳記早於匯入時間 30 天的匯入記錄項目。

這項架構會驗證 Cloud Run 作業中設定的日期範圍,避免匯入超過 29 天的記錄,並保留一天的安全緩衝期。

如要匯入 29 天前的記錄,您需要對實作程式碼進行下列變更,然後建構新的容器映像檔,用於 Cloud Run 工作設定。

  • 移除 30 天的日期範圍驗證
  • 將原始時間戳記新增為記錄項目的使用者標籤
  • 重設記錄檔項目的時間戳記標籤,以便使用目前的時間戳記擷取記錄檔

使用這項修改時,您必須在 Log Analytics 查詢中使用labels 欄位,而不是 timestamp 欄位。如要進一步瞭解 Log Analytics 查詢和範例,請參閱SQL 查詢範例

設計須知

下列指南可協助您開發符合貴機構需求的架構。

成本最佳化

使用這個參考架構匯入記錄的費用,取決於多項因素。

您會使用下列 Google Cloud的計費元件:

請考量以下可能導致費用增加的因素:

  • 記錄重複:為避免產生額外的記錄儲存空間費用,請勿多次執行相同設定的匯入工作。
  • 儲存在其他目的地:為避免產生額外的記錄檔儲存費用,請在目的地專案中停用路由政策,防止記錄檔儲存在其他位置,或轉送至其他目的地 (例如 Pub/Sub 或 BigQuery)。
  • 增加 CPU 和記憶體:如果匯入工作逾時,您可能需要在匯入工作設定中增加匯入工作的 CPU 和記憶體。增加這些值可能會導致 Cloud Run 費用增加。
  • 其他工作:如果時間範圍內每天要匯入的記錄檔數量預計會很高,您可能需要在匯入工作設定中增加工作數量。這項工作會將時間範圍平均分配給各項工作,因此每項工作都會同時處理範圍內相似的天數。增加工作數量可能會導致 Cloud Run 費用增加。
  • 儲存空間類別:如果 Cloud Storage 值區的儲存空間類別不是 Standard,而是 Nearline、Durable Reduced Availability (DRA) 或 Coldline,您可能需要支付額外費用。
  • 不同位置之間的資料流量:設定匯入工作,使其在與匯入記錄的 Cloud Storage bucket 相同的位置執行。否則可能會產生網路輸出費用

如要根據預測用量 (包括 Cloud Run 作業) 估算費用,請使用 Pricing Calculator

提升作業效率

本節說明部署解決方案後,管理分析查詢時的注意事項。

記錄檔名稱和查詢

記錄會儲存在記錄項目logName 欄位中定義的專案。如要將記錄匯入所選專案,這個架構會修改每個匯入記錄的 logName 欄位。匯入記錄檔會儲存在所選專案的預設記錄檔 bucket 中,記錄檔 ID 為 imported_logs (除非專案有記錄檔轉送政策,變更了儲存目的地)。logName 欄位的原始值會保留在 labels 欄位中,並使用 original_logName 鍵。

查詢匯入的記錄時,請務必考量原始 logName 值的位置。如要進一步瞭解 Log Analytics 查詢和範例,請參閱「SQL 查詢範例」。

效能最佳化

如果匯入的記錄量超過 Cloud Run 容量上限,工作可能會在匯入完成前逾時。為避免資料匯入不完整,請考慮在匯入工作中增加 tasks 值。增加 CPU記憶體資源,也有助於在增加工作數量時提升工作效能。

部署作業

如要部署這項架構,請參閱「部署工作,將記錄檔從 Cloud Storage 匯入 Cloud Logging」。

後續步驟

貢獻者

作者:Leonid Yankulin | 開發人員關係工程師

其他貢獻者: