您可以查看及擷取從 Cloud Logging 轉送至 Cloud Storage bucket 的記錄項目,以支援安全性稽核、法規遵循封存或外部分析。記錄項目會以每小時批次作業的方式儲存至 Cloud Storage bucket,通常會在匯出後 2 到 3 小時內顯示。
記錄檔接收器無法將記錄項目轉送至設為 Rapid Storage 的 Cloud Storage bucket。
事前準備
如要瞭解接收器的概念,請參閱「轉送和儲存空間模型總覽:接收器」。
如需轉送記錄檔的操作說明,請參閱「轉送記錄檔至支援的目的地」。
查看記錄
如要查看轉送至 Cloud Storage 的記錄,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「Bucket」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Cloud Storage」的結果。
選取要用做轉送目的地的 Cloud Storage bucket。
記錄檔組織
將記錄檔轉送至 Cloud Storage bucket 時,Logging 會將一組檔案寫入 bucket。
檔案會依記錄類型和日期,在目錄階層中整理。記錄類型在 LogEntry 參考資料中稱為 [LOG_ID],可以是 syslog 等名稱,也可以是 appengine.googleapis.com/request_log 等複合名稱。如果這些記錄儲存在名為 my-gcs-bucket 的 bucket 中,則目錄名稱會如下例所示:
my-gcs-bucket/syslog/YYYY/MM/DD/
my-gcs-bucket/appengine.googleapis.com/request_log/YYYY/MM/DD/
單一 Cloud Storage bucket 可包含多種資源類型的記錄。檔案大小上限為 3.5 GiB。
Logging 不保證會簡化來自包含相同或重疊查詢的接收器的記錄項目;來自這些接收器的記錄項目可能會多次寫入 Cloud Storage bucket。
分葉目錄 (DD/) 包含多個檔案,每個檔案都包含檔案名稱中指定時間範圍內的轉送記錄項目。檔案會分區,名稱結尾為分區編號 Sn 或 An (n=0、1、2、...)。舉例來說,以下是可能儲存在目錄 my-gcs-bucket/syslog/2015/01/13/ 中的兩個檔案:
08:00:00_08:59:59_S0.json 08:00:00_08:59:59_S1.json
這兩個檔案共同包含世界標準時間 08:00:00 至 08:59:59 之間,所有執行個體的 syslog 記錄項目。記錄項目時間戳記會以世界標準時間 (UTC) 表示。
如果記錄項目在 timestamp 的 60 分鐘對齊時間範圍內到達,且具有 receiveTimestamp,則會寫入主要 shard 檔案。舉例來說,timestamp 為 08:00:00、receiveTimestamp 為 08:10:00 的記錄項目會儲存在主要 shard 檔案中。
這些檔案的後置字串包含編號的主要 shard:_Sn.json。
如果記錄項目的 timestamp 與 receiveTimestamp 位於不同的 60 分鐘對齊時間範圍,則會寫入附加條款 shard 檔案。舉例來說,timestamp 為 08:00:00 且 receiveTimestamp 為 09:10:00 的記錄項目會儲存在附加條款 shard 檔案中。
這些檔案包含編號的附加條款 shard,後置字串為:_An:Unix_timestamp.json。
舉例來說,如果記錄項目的 timestamp 介於 08:00:00 和 08:59:59 之間,但 receiveTimestamp 位於不同的 60 分鐘對齊視窗,則會寫入具有 _An:Unix_timestamp.json 尾碼的檔案,其中 Unix 時間戳記會識別檔案轉送至 Cloud Storage 的時間。如果記錄項目的 timestamp 為 08:50:00,receiveTimestamp 為 09:10:00,且在 2021 年 3 月 25 日 09:15:00 轉送,則附加條款檔案會寫入如下:
08:00:00_08:59:59_A0:1616681700.json
如要取得所有記錄項目,您必須讀取每個時間範圍的所有 shard,在本例中為檔案 shard 0 和 1。每個時間範圍內寫入的檔案 shard 數量可能有所不同。
在個別 shard 檔案中,記錄項目會儲存為 LogEntry 物件清單。如需 syslog 項目範例,請參閱「記錄項目組織」。
請注意,檔案中記錄項目的排列順序不一致,也無法保證。
限制
這個目的地不支援「LogEntry.errorGroups」欄位。
記錄檔接收器會轉送傳送至專案的記錄項目,但這些記錄項目不含錯誤群組。
遲到的記錄項目
轉送的記錄項目會以每小時批次作業的方式,儲存至 Cloud Storage bucket。第一批項目可能需要 2 到 3 小時才會開始顯示。後置字串為 An (「Append」) 的轉送記錄檔 shard 會保留延遲抵達的記錄項目。
如果目的地發生中斷,Cloud Logging 會緩衝處理資料,直到中斷結束。
如果接收器目的地沒有任何記錄,請查看匯出系統指標。匯出系統指標會指出轉送的記錄項目數量,以及因錯誤而捨棄的記錄項目數量。如果匯出系統指標指出沒有任何記錄項目轉送至目的地,請檢查 [篩選器][export-query],確認符合篩選條件的記錄項目最近已抵達 Logging。
前往 Google Cloud 控制台的「Log Router」(記錄檔路由器) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
App Engine 記錄項目
App Engine 會將 google.appengine.logging.v1.LogLine 類型的多個子項目 (也稱為 AppLog 或 AppLogLine),合併到導致記錄活動的要求 google.appengine.logging.v1.RequestLog 類型主要記錄項目下。每行記錄都有一個「要求 ID」,用於識別主要項目。Logs Explorer 會顯示含有要求記錄項目的記錄行。Logging 會嘗試將所有記錄行與原始要求一起放入批次中,即使時間戳記會將記錄行放入下一個批次也一樣。如果無法做到,要求記錄項目可能會缺少部分記錄行,且下一批次中可能會有沒有要求的「孤立」記錄行。如果這項功能對您很重要,請準備好在處理記錄時重新連結要求片段。
疑難排解
如果接收器目的地似乎缺少記錄,或您懷疑接收器未正確轉送記錄,請參閱「排解記錄轉送問題」。