記錄匯出總覽

您可以透過 Stackdriver Logging 以外的服務匯出部分或全部記錄的複本。您可能會基於下列原因匯出記錄:

  • 將記錄儲存較長的時間。Stackdriver Logging 通常會將記錄保存幾週的時間,而非幾年的時間。詳情請參閱配額政策一文。
  • 使用大數據分析工具來分析您的記錄內容。
  • 將記錄傳輸到其他應用程式、其他存放區或第三方。

如要瞭解如何匯出記錄,請參閱本頁底部的後續步驟部分。

匯出功能總覽

下方圖表說明 Stackdriver Logging 如何處理已匯出的記錄項目:

記錄的生命週期

匯出涉及編寫篩選器來選取您要匯出的記錄項目,以及在 Cloud Storage、BigQuery 或 Cloud Pub/Sub 中選擇目的地。篩選器與目的地會保存在名為接收器的物件中。接收器可在專案、機構、資料夾與帳單帳戶中建立。

在 Logging 中匯出記錄沒有任何費用或限制,但是匯出目的地會產生儲存或傳送記錄資料的費用。

接收器屬性與術語

接收器的屬性如下:

  • 接收器 ID:接收器的名稱。例如,"my-vm-error-sink"

  • 父項資源:您在其中建立接收器的資源。父項通常是專案,但也可以是下列任何項目:

    "projects/[PROJECT_ID]"
    "folders/[FOLDER_ID]"
    "billingAccounts/[BILLINGACCOUNT_ID]"
    "organizations/[ORGANIZATION_ID]"
    

    接收器只能匯出屬於其父項資源的記錄。如要瞭解這個規則的例外狀況,請參閱下列匯總匯出屬性。

    接收器的完整資源名稱包含其父項資源與接收器 ID。例如:

    "projects/[PROJECT_ID]/sinks/[SINK_ID]"
    
  • 記錄篩選器:選取要透過這個接收器匯出的記錄項目。詳情請參閱進階記錄篩選器一文。例如,下列篩選器可從指定的 Compute Engine VM 執行個體中,選取嚴重性為 ERROR 或更高的所有記錄項目:

    resource.type = gce_instance AND
       resource.labels.instance_id = "[INSTANCE_ID]" AND
       severity >= ERROR
    
  • 目的地:指定要將符合篩選條件的記錄項目傳送到哪裡 (只能指定一個目的地)。有 3 個支援的目的地:

    • Cloud Storage 值區,提供價格低廉且可長期使用的儲存空間:

      storage.googleapis.com/[BUCKET_ID]
      
    • BigQuery 資料集,提供大數據分析功能:

      bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET_ID]
      
    • Cloud Pub/Sub 主題,可將記錄項目傳輸到其他應用程式或存放區。

      pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]
      

    記錄檢視器中,您也可以在建立匯出項目時使用 [Custom Destination] (自訂寫入位置) 選項,將記錄從一個專案傳送至另一個專案的目的地。詳情請參閱建立接收器一文。

    只要匯出目的地將接收器的服務帳戶授權為寫入者,您就可以將記錄匯出至任何專案中的目的地。

  • 寫入者身分:服務帳戶名稱。匯出目的地的擁有者必須為這個服務帳戶授予寫入到匯出目的地的權限。匯出記錄時,Logging 會採用這個身分來進行授權。為了提高安全性,新接收器會取得專屬服務帳戶:

    [GENERATED_ID_1]@[GENERATED_ID_2].iam.gserviceaccount.com
    

    詳情請參閱目的地權限一文。

  • 匯總匯出includeChildren 屬性的說明請參閱匯總匯出一文。這個屬性只與為機構或資料夾建立的接收器有關。

如要進一步瞭解接收器,請參閱 LogSink 類型、projects.sinks.create API 方法及在 API 中匯出記錄等文。

接收器的運作方式

每當記錄項目到達專案、資料夾、帳單帳戶或機構資源時,Logging 都會將記錄項目與這個資源中的接收器進行比較。篩選器符合記錄項目的每個接收器都會將記錄項目的複本寫入接收器的匯出目的地。

由於系統只會匯出新記錄項目,因此,您無法匯出 Logging 在建立接收器之前收到的記錄項目。

存取權控制

如要建立或修改接收器,您必須擁有接收器父項資源的擁有者Logging/記錄設定寫入者身分與存取權管理角色。如要查看現有接收器,您必須擁有接收器父項資源的檢視者Logging/記錄檢視者身分與存取權管理角色。詳情請參閱存取權控制一文。

如要將記錄匯出至目的地,接收器的寫入者服務帳戶必須獲准寫入至目的地。如要進一步瞭解寫入者身分,請參閱上一節接收器屬性

為了防止匯出的記錄在未經授權的情況下遭到存取,您必須使用匯出目的地的存取權控制功能。接收器可匯出任何記錄項目,包括私人資料存取稽核記錄。

疑難排解

以下是您匯出記錄時可能遇到的一些常見問題,以及這些問題的解決方法:

  • 目的地中有錯誤:檢查接收器中匯出目的地的規格。使用 projects.sinks.get 尋找接收器的寫入者身分,並確保身分獲准寫入到匯出目的地。接收器會在修正錯誤時開始匯出記錄。

  • 未匯出任何記錄:以下是一些可能的原因:

    • 在您建立接收器之後,未接收到任何相符記錄項目。系統只會匯出新記錄項目。
    • 篩選器不正確。篩選器中拼錯的字詞可能導致無法比對任何記錄項目。請在記錄檢視器的進階篩選器介面中嘗試相同的篩選器,看看是否符合任何記錄項目。
    • 您需要經過一段時間之後才能在目的地中看到匯出的記錄,Cloud Storage 目的地尤為如此。請參閱已匯出記錄的可用性一文。

後續步驟

匯出記錄

如要瞭解如何匯出記錄,請參閱以下頁面:

尋找及使用匯出的記錄

如要瞭解匯出記錄項目的格式,以及匯出的記錄在目的地中的組織方式,請參閱使用匯出的記錄一文。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver Logging
需要協助嗎?請前往我們的支援網頁