本文件說明如何找出從 Cloud Logging 轉送至 Cloud Storage 值區的記錄項目。
系統會以小時為單位,將記錄項目分批儲存至 Cloud Storage 值區。第一批項目可能需要 2 到 3 個小時才會開始顯示出來。
事前準備
如要進一步瞭解接收端的概念,請參閱「轉送和儲存空間模式總覽:接收端」。
如需轉送記錄檔的操作說明,請參閱「將記錄檔轉送至支援的目的地」。
查看記錄
如要查看已路由至 Cloud Storage 的記錄,請按照下列步驟操作:
-
在 Google Cloud 控制台中,前往「Buckets」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Cloud Storage」的結果。
選取要做為轉送目的地的 Cloud Storage 值區。
記錄檔組織
將記錄轉送至 Cloud Storage 值區時,Logging 會將一組檔案寫入值區。
檔案會依據記錄類型和日期,以目錄階層方式排序。日誌類型 (在 LogEntry
參照中稱為 [LOG_ID]
) 可以是 syslog
等簡單名稱,也可以是 appengine.googleapis.com/request_log
等複合名稱。如果這些記錄儲存在名為 my-gcs-bucket
的值區中,則目錄名稱會如以下範例所示:
my-gcs-bucket/syslog/YYYY/MM/DD/
my-gcs-bucket/appengine.googleapis.com/request_log/YYYY/MM/DD/
單一 Cloud Storage 值區可包含多種資源類型的記錄。檔案大小上限為 3.5 GiB。
記錄功能無法保證從包含相同或重疊查詢的匯出端重複記錄項目,這些匯出端的記錄項目可能會多次寫入 Cloud Storage 值區。
分葉目錄 (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
這兩個檔案會同時包含所有例項的 syslog
記錄項目,時間範圍為世界標準時間 08:00:00 到 08:59:59。記錄項目的時間戳記以世界標準時間 (UTC) 表示。
在 timestamp
的 60 分鐘對齊時間範圍內,搭配 receiveTimestamp
抵達的記錄項目會寫入主要分片檔案。舉例來說,記錄項目的 timestamp
為 08:00:00,receiveTimestamp
為 08:10:00,就會儲存在主區塊檔案中。
這些檔案的後置字串中會包含編號主要分片:_Sn.json
。
如果記錄項目的 timestamp
與 receiveTimestamp
在 60 分鐘的對齊時間窗格中抵達,則會寫入附錄區塊檔案。舉例來說,如果記錄項目的 timestamp
為 08:00:00,而 receiveTimestamp
為 09:10:00,則會儲存在附錄資料分割檔案中。
這些檔案包含帶有後置字串 _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
如要取得所有記錄項目,您必須讀取每個時間間隔的所有區塊,在本例中為檔案區塊 0 和 1。每個時間範圍的寫入檔案區塊數量可能會有所不同。
在個別資料分割檔案內,系統會將記錄項目儲存為 LogEntry
物件的清單。如需 syslog
項目的範例,請參閱記錄項目組織。
請注意,檔案內記錄項目的排序順序不一定一致,也無法保證會依序顯示。
遲到的記錄項目
轉送的記錄項目會以每小時批次的形式儲存至 Cloud Storage 值區。第一批項目可能需要 2 到 3 小時才會開始出現。後置字串為 An
(「附加」) 的路由記錄檔資料分割會保留遲到的記錄項目。
如果目的地發生中斷,Cloud Logging 會緩衝資料,直到中斷結束為止。
如果接收器的目的地沒有任何記錄,請檢查匯出系統指標。匯出系統指標會顯示系統已轉送多少記錄項目,以及因錯誤而捨棄的記錄項目數量。如果匯出系統指標顯示沒有任何記錄項目已路由至目的地,請檢查 [filter][export-query],確認最近有符合篩選條件的記錄項目已抵達 Logging。
在 Google Cloud 控制台中,前往「Log Router」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
App Engine 記錄項目
App Engine 會針對造成記錄活動的要求,在 google.appengine.logging.v1.RequestLog
類型的主要記錄項目下,合併多個 google.appengine.logging.v1.LogLine
類型 (也稱為 AppLog 或 AppLogLine) 的子項目。每個記錄行都有一個「要求 ID」,用於識別主要項目。Logs Explorer 會顯示含有要求記錄項目的記錄列。記錄作業會嘗試將所有記錄行放入原始要求的批次中,即使記錄時間戳記會將記錄放入下一個批次也一樣。如果無法做到這點,請求記錄項目可能會缺少部分記錄行,且可能會有「孤立」記錄行,而這些記錄行在下一個批次中沒有對應的請求。如果您認為這項可能性很重要,請在處理記錄時,準備重新連結要求的各個部分。
疑難排解
如果接收器的目的地似乎缺少記錄檔,或是您懷疑接收器無法正確轉送記錄檔,請參閱「疑難排解:轉送記錄檔」。
定價
Cloud Logging 不會針對將記錄檔轉送至支援的目的地收費,但目的地可能會收取費用。除了 _Required
記錄檔值區,Cloud Logging 會針對將記錄檔串流至記錄檔值區,以及超過記錄檔值區預設保留期限的儲存空間收取費用。
複製記錄、建立記錄範圍或分析檢視畫面,或是透過 Logs Explorer 或 Log Analytics 頁面發出的查詢,Cloud Logging 不會收取費用。
如需詳細資訊,請參閱下列文件:
- Cloud Logging 定價摘要
目的地費用:
- 如果您傳送虛擬私人雲端流程記錄檔到 Cloud Logging 後又將其排除,系統會向您收取虛擬私人雲端流程記錄檔產生費用。