將記錄檔轉送至支援的目的地

本文將說明如何建立及管理記錄接收端,將來自 Google Cloud 專案的記錄項目路由至支援的目的地。

sink 會執行寫入動作,因此必須具備寫入目的地的授權。如果目的地是與接收器位於相同專案中的記錄資料夾,系統會自動授權接收器。對於所有其他目的地,接收器必須連結至已獲授權寫入目的地所需權限的服務帳戶

當需要服務帳戶時,Cloud Logging 會自動建立及管理服務帳戶。不過,您可能需要修改授予服務帳戶的權限。您不必使用 Logging 建立的服務帳戶。您可以建立及管理服務帳戶,供多個專案的接收端使用。詳情請參閱「使用使用者管理的服務帳戶設定記錄匯出目的地」。

總覽

本頁面說明如何建立接收器,以及如何設定使用 Google Cloud 控制台或 API 時可能會看到的選項。

接收端屬於特定 Google Cloud 資源: Google Cloud 專案、帳單帳戶、資料夾或機構。當資源收到記錄項目時,資源中的每個接收端都會處理記錄項目。如果記錄項目符合接收器的篩選器,系統就會將記錄項目路由至接收器的目的地。

通常,接收器只會將來自資源的記錄項目進行路由。不過,您可以為資料夾和機構建立匯總接收器,以便轉送資料夾或機構的記錄項目,以及其中包含的資源。本文不會討論匯總匯出端。詳情請參閱匯總接收器總覽

如要建立及管理接收器,您可以使用 Google Cloud 控制台、Cloud Logging API 和 Google Cloud CLI。建議您使用 Google Cloud 控制台:

  • 「Logs Router」頁面會列出所有接收端,並提供管理接收端的選項。
  • 建立接收器時,您可以預覽接收器篩選器比對的記錄項目。
  • 您可以在建立接收器時設定接收器目的地。
  • 系統會為您完成部分授權步驟。

支援的目的地

接收器的目的地可以位於與接收器不同的資源中。舉例來說,您可以使用記錄檔匯出項目,將一個專案的記錄項目重新導向至儲存在其他專案中的記錄檔值區。

支援下列目的地:

Google Cloud 專案

如要讓目標專案中的記錄接收器重新導向記錄項目,或是已建立攔截的匯總接收器,請選取這個目標位置。專案中的記錄檔接收器 (即接收器目的地) 可將記錄項目重新導向至任何支援的目的地 (專案除外)。

記錄檔值區

如要將記錄資料儲存在由 Cloud Logging 管理的資源中,請選取這個目的地。您可以使用 Logs Explorer 和 Log Analytics 等服務,查看及分析儲存在記錄值區中的記錄資料。

如果您想將記錄檔資料與其他業務資料彙整,可以將記錄檔資料儲存在記錄檔 bucket 中,並建立已連結的 BigQuery 資料集。連結的資料集是唯讀資料集,可像任何其他 BigQuery 資料集一樣進行查詢。

BigQuery 資料集
如要彙整記錄資料與其他業務資料,請選取這個目的地。您指定的資料集必須啟用寫入權限。請勿將接收器的目的地設為已連結的 BigQuery 資料集。連結的資料集為唯讀。
Cloud Storage 值區
如要長期儲存記錄資料,請選取這個目的地。Cloud Storage 值區可以位於記錄項目來源的專案中,也可以位於其他專案中。記錄項目會儲存為 JSON 檔案。
Pub/Sub 主題
如要從Google Cloud 匯出記錄資料,然後使用 Splunk 或 Datadog 等第三方整合服務,請選取這個目的地。記錄項目會轉換為 JSON 格式,然後轉送至 Pub/Sub 主題。

目的地限制

本節將說明各個目的地的限制:

  • 如果您將記錄項目轉送至不同 Google Cloud 專案中的記錄檔值區,Error Reporting 就不會分析這些記錄項目。詳情請參閱「Error Reporting 總覽」。
  • 如果您將記錄項目導向 BigQuery 資料集,則 BigQuery 資料集必須啟用寫入權限。您無法將記錄項目導向連結的資料集,因為該資料集為唯讀。
  • 將記錄資料轉送至 Cloud Storage 值區的新接收器,可能需要數個小時才能開始轉送記錄項目。這些接收端會每小時處理一次。
  • 當記錄匯流程的目的地位於 Google Cloud 專案時,會受到下列限制:

    • 但有一次跳轉限制。
    • 只有來自目的地專案的記錄項目,才會符合 _Required 記錄檔接收器的篩選條件,並轉送至目的地專案的 _Required 記錄檔 bucket。
    • 只有位於記錄項目資源階層中的匯總接收端會處理記錄項目。

    舉例來說,假設專案 A 中的記錄檔接收器目的地是專案 B。則下列條件成立:

    • 由於單跳限制,專案 B 中的記錄接收器無法將記錄項目重新導向至 Google Cloud 專案。
    • 專案 B_Required 記錄檔值區只會儲存來自專案 B 的記錄項目。這個記錄檔值區不會儲存任何其他資源產生的記錄項目,包括來自 A 專案的項目。
    • 如果專案 A 和專案 B 的資源階層不同,則專案 A 中的記錄匯流程將記錄項目轉送至專案 B 時,不會傳送至專案 B 資源階層中的匯總匯流程。
    • 如果專案 A 和專案 B 有相同的資源階層,則記錄項目會傳送至該階層中的匯總接收器。如果記錄項目未遭到匯總接收器攔截,則記錄檔路由器會將記錄項目傳送至專案 A 中的接收器。

事前準備

本文件中的操作說明說明如何在Google Cloud 專案層級建立及管理接收器。您可以使用相同的程序建立接收器,以便將來自機構、資料夾或帳單帳戶的記錄項目重新導向。

如要開始使用,請按照下列步驟操作:

  1. Enable the Cloud Logging API.

    Enable the API

  2. 請確認您的 Google Cloud 專案包含可在 Logs Explorer 中查看的記錄項目。

  3. 如要取得建立、修改或刪除接收器所需的權限,請要求管理員為您授予專案的 Logs Configuration Writer (roles/logging.configWriter) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

    您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

    如要進一步瞭解如何授予身分與存取權管理角色,請參閱 Logging 的存取權控管指南

  4. 您在支援的目的地中擁有資源,或可以建立資源。

    如要將記錄項目轉送至目的地,您必須先建立接收器,然後才能將記錄項目轉送至目的地。您可以在任何機構的任何Google Cloud 專案中建立目的地。

  5. 建立匯流程之前,請先查看匯流程目的地適用的限制。詳情請參閱本文件的「目的地限制」一節。

  6. Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    詳情請參閱 Google Cloud 驗證說明文件中的「驗證以使用 REST」。

    建立接收器

    本節說明如何在 Google Cloud 專案中建立接收器。每個 Google Cloud 專案最多可建立 200 個接收器。如要查看已重新導向的記錄項目數量,請查看 logging.googleapis.com/exports/ 指標

    您可以使用Logging 查詢語言建立篩選器運算式,以便比對要納入的記錄項目。請勿在匯出篩選器中放入機密資訊。接收器篩選器會視為服務資料。

    如果查詢包含多個陳述式,您可以指定這些陳述式的彙整方式,也可以讓 Cloud Logging 在陳述式之間隱含地加入連接詞限制 AND。舉例來說,假設查詢或篩選對話方塊包含兩個陳述式:resource.type = "gce_instance"severity >= "ERROR"。實際查詢為 resource.type = "gce_instance" AND severity >= "ERROR"。Cloud Logging 支援非連接式限制 OR 和連接式限制 AND。使用 OR 陳述式時,建議您使用括號將子句分組。

    如要建立接收器,請執行下列步驟:

    控制台

    1. 在 Google Cloud 控制台中,前往「Log Router」頁面:

      前往「記錄檔路由器」

      如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

    2. 選取您要轉送記錄項目的 Google Cloud 專案。

      舉例來說,如果您想將資料存取記錄項目從名為 Project-A 的專案轉送至名為 Project-B 的專案中的記錄值區,請選取 Project-A

    3. 選取「Create Sink」(建立接收器)

    4. 在「Sink details」面板中,輸入下列詳細資料:

      • 接收器名稱:提供接收器的 ID。請注意,建立接收器後,您無法重新命名接收器,但可以刪除接收器並建立新的接收器。

      • Sink 說明 (選填):說明 Sink 的用途或用途。

    5. 在「Sink destination」面板中,使用「Select sink service」選單選取接收器服務和目的地。執行下列任一操作:

      • 如要將記錄項目轉送至同一個Google Cloud 專案中的服務,請選取下列任一選項:

        • BigQuery 資料集:選取或建立可寫入的資料集,用於接收已轉送的記錄項目。您也可以選擇使用分區資料表
        • Cloud Storage bucket:選取或建立用於接收已分派記錄項目的特定 Cloud Storage bucket。
        • Pub/Sub 主題:選取或建立用於接收已路由記錄項目的特定主題。
        • Splunk:選取 Splunk 服務的 Pub/Sub 主題。
      • 如要將記錄項目轉送至其他 Google Cloud 專案,請選取「Google Cloud project」,然後輸入目標的完全合格名稱:

        logging.googleapis.com/projects/DESTINATION_PROJECT_ID
        
      • 如要將記錄項目路由至其他Google Cloud 專案中的服務,請執行下列操作:

        1. 選取「其他資源」
        2. 輸入目的地的完整名稱。如需語法相關資訊,請參閱「目的地路徑格式」。
    6. 指定要納入的記錄項目:

      1. 前往「Choose logs to include in sink」面板。

      2. 在「Build inclusion filter」欄位中,輸入與您要納入的記錄項目相符的篩選器運算式。如要進一步瞭解撰寫篩選器的語法,請參閱「Logging 查詢語言」。

        如果您未設定篩選器,系統會將所選資源的所有記錄項目轉送至目的地。

        舉例來說,如要將所有資料存取記錄項目導向 Logging 儲存桶,您可以使用下列篩選器:

        log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")
        

        篩選器的長度不得超過 20,000 個半形字元。

      3. 如要確認您輸入的篩選條件正確無誤,請選取「預覽記錄」。系統會在新分頁中開啟 Logs Explorer,並預先填入篩選條件。

    7. (選用) 設定排除篩選器,排除部分記錄項目:

      1. 前往「Choose logs to filter out of sink」面板。

      2. 在「排除篩選器名稱」欄位中輸入名稱。

      3. 在「Build an exclusion filter」欄位中,輸入與您想排除的記錄項目相符的篩選器運算式。您也可以使用 sample 函式選取要排除的部分記錄項目。

      每個接收端最多可建立 50 個排除篩選器。請注意,篩選器的長度不得超過 20,000 個半形字元。

    8. 選取「Create Sink」(建立接收器)

    9. 請將寫入接收器目的地的記錄項目權限授予接收器的服務帳戶。詳情請參閱「設定目的地權限」。

    gcloud

    如要建立接收器,請執行下列步驟:

    1. 執行下列 gcloud logging sinks create 指令:

      gcloud logging sinks create SINK_NAME SINK_DESTINATION
      

      執行指令前,請先進行下列替換:

      • SINK_NAME:記錄接收器的名稱。建立後即無法變更接收器名稱。
      • SINK_DESTINATION:您要將記錄項目轉送至的服務或專案。請使用適當的路徑設定 SINK_DESTINATION,如「目的地路徑格式」一文所述。

        舉例來說,如果匯出目的地是 Pub/Sub 主題,SINK_DESTINATION 會如下所示:

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

      您也可以提供下列選項:

      • --log-filter:使用這個選項設定篩選器,以便與您要納入接收器的記錄項目相符。如果您未提供納入篩選器的值,則此篩選器會比對所有記錄項目。
      • --exclusion:使用這個選項,為要從轉送接收器中排除的記錄項目設定排除篩選器。您也可以使用 sample 函式選取要排除的部分記錄項目。這個選項可以重複使用,每個匯入點最多可建立 50 個排除篩選器。
      • --description:使用這個選項說明接收器的用途或用途。

      舉例來說,如要建立匯出至 Logging 桶的匯出地點,命令可能會像這樣:

      gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \
       --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"
      

      如要進一步瞭解如何使用 Google Cloud CLI 建立接收端,請參閱 gcloud logging sinks 參考資料。

    2. 如果指令回應包含標示為 "writerIdentity" 的 JSON 金鑰,請授予接收器的服務帳戶寫入接收器目的地的權限。詳情請參閱「設定目的地權限」。

      如果回應不包含標示為 "writerIdentity" 的 JSON 鍵,就不需要設定目的地權限。

    REST

    1. 如要在 Google Cloud 專案中建立記錄接收器,請使用 Logging API 中的 projects.sinks.create。在 LogSink 物件中,請在方法要求主體中提供適當的必要值:

      • name:匯流程的 ID。請注意,建立接銷後,您無法重新命名接銷,但可以刪除接銷並建立新的接銷。
      • destination:您要將記錄項目轉送至哪個服務和目的地。如要將記錄項目轉送至其他專案,或轉送至位於其他專案中的目的地,請按照「目的地路徑格式」一節的說明,將 destination 欄位設為適當的路徑。

        舉例來說,如果匯出目的地是 Pub/Sub 主題,則 destination 會如下所示:

        pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
        
    2. LogSink 物件中提供適當的選用資訊:

      • filter:設定 filter 欄位,以符合您要納入匯流器的記錄項目。如果您未設定篩選器,Google Cloud 專案中的所有記錄項目都會轉送至目的地。請注意,篩選器的長度不得超過 20,000 個半形字元。
      • exclusions:設定這個欄位,以便比對要從接收器中排除的記錄項目。您也可以使用 sample 函式選取要排除的部分記錄項目。每個接收端最多可建立 50 個排除篩選器。
      • description:設定這個欄位,說明接收器的用途或用途。
    3. 呼叫 projects.sinks.create 以建立接收器。

    4. 如果 API 回應包含標示為 "writerIdentity" 的 JSON 鍵,請授予匯入器的服務帳戶寫入匯入器目的地的權限。詳情請參閱「設定目的地權限」。

      如果 API 回應不包含標示為 "writerIdentity" 的 JSON 鍵,您就不需要設定目的地權限。

    如要進一步瞭解如何使用 Logging API 建立接收器,請參閱 LogSink 參考資料。

    如果您收到錯誤通知,請參閱「排解路由和接收器問題」。

    目的地路徑格式

    如果您將記錄項目路由至其他專案中的服務,則必須向接收端提供服務的完整名稱。同樣地,如果您將記錄項目轉送至其他 Google Cloud 專案,則必須向接收端提供目的地專案的完整名稱:

    • Cloud Logging 記錄值區:

      logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
      
    • 另一個 Google Cloud 專案:

      logging.googleapis.com/projects/DESTINATION_PROJECT_ID
      
    • BigQuery 資料集:

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      
    • Cloud Storage:

      storage.googleapis.com/BUCKET_NAME
      
    • Pub/Sub 主題:

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

    設定目的地權限

    本節說明如何授予記錄 Identity and Access Management 權限,以便將記錄項目寫入接收端的目的地。如需 Logging 角色和權限的完整清單,請參閱「存取權控管」。

    建立接收器時,Cloud Logging 會為資源建立共用服務帳戶,除非已存在必要的服務帳戶。服務帳戶可能會存在,因為相同的服務帳戶會用於基礎資源中的所有接收器。資源可以是 Google Cloud 專案、機構、資料夾或帳單帳戶。

    接收端的寫入者身分,是與該接收端相關聯的服務帳戶 ID。所有接收端都有寫入者身分,但如果是寫入記錄檔項目來源相同 Google Cloud 專案的記錄檔值區的接收端,則不在此限。在後者設定中,您不需要服務帳戶,因此接收器的 writer identity 欄位會在控制台中列為 None。API 和 Google Cloud CLI 指令不會回報寫入者身分。

    以下操作說明適用於專案、資料夾、機構和帳單帳戶:

    控制台

    1. 請確認您具備包含目的地的Google Cloud 專案的擁有者存取權。如果您沒有資料流目的地位置的擁有者存取權,請要求專案擁有者將寫入者身分新增為主要使用者。

    2. 如要從新接收器取得該接收器的寫入者身分 (電子郵件地址),請按照下列步驟操作:

      1. 在 Google Cloud 控制台中,前往「Log Router」頁面:

        前往「記錄檔路由器」

        如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

      2. 在工具列中,選取含有接收器的專案。
      3. 選取 「選單」,然後選取「查看匯流程詳細資料」。作家身分會顯示在「Sink details」面板中。
    3. 如果 writerIdentity 欄位的值含有電子郵件地址,請繼續執行下一個步驟。如果值為 None,您就不需要為接收端設定目的地權限。

    4. 將接收器的寫入者身分複製到剪貼簿。

      電子郵件地址可識別主體。前置碼 serviceAccount: 會指定帳戶類型。

    5. 請將寫入者身分中指定的使用者主體授予寫入目的地記錄資料的權限:

      1. 前往 Google Cloud 控制台的「IAM」頁面:

        前往「身分與存取權管理」頁面

        如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM 與管理」的結果

      2. 在工具列中,確認所選專案是儲存目的地的專案,或是匯出目的地。舉例來說,如果目的地是記錄值區,請確認工具列會顯示儲存記錄值區的專案。

      3. 按一下「授予存取權」圖示

      4. 根據記錄接收器的目的地,授予接收器寫入者身分中指定的主體 IAM 角色:

    gcloud

    1. 請確認您具備包含目的地的Google Cloud 專案的擁有者存取權。如果您沒有資料流目的地位置的擁有者存取權,請要求專案擁有者將寫入者身分新增為主要使用者。

    2. 從匯入器中的 writerIdentity 欄位取得服務帳戶:

      gcloud logging sinks describe SINK_NAME
      
    3. 找出要修改權限的接收器,如果接收器詳細資料包含含有 writerIdentity 的一行,請繼續執行下一個步驟。如果詳細資料不包含 writerIdentity 欄位,您就不需要為匯入端設定目的地權限。

      服務帳戶的寫入者身分如下所示:

      serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
      
    4. 呼叫 gcloud projects add-iam-policy-binding 指令,授予接收器的寫入者身分將記錄資料寫入目的地的權限。

      使用下列指令前,請先替換以下項目:

      • PROJECT_ID:專案的 ID。指定儲存記錄檔接收器目的地的專案。如果目的地是專案,請指定該專案。
      • PRINCIPAL:您要授予角色的主體 ID。主體 ID 通常採用以下格式:PRINCIPAL-TYPE:ID。例如:user:my-user@example.com。如需 PRINCIPAL 可用的完整格式清單,請參閱「主要識別碼」。
      • ROLE:IAM 角色。根據記錄接收器的目的地,授予接收器的寫入者身分 IAM 角色:

      執行 gcloud projects add-iam-policy-binding 指令:

      gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
      

    REST

    建議您使用 Google Cloud 控制台或 Google Cloud CLI 授予服務帳戶角色。

    管理接收端

    建立接收器後,您可以執行下列動作。對接收器所做的任何變更可能需要幾分鐘才會套用:

    • 查看詳細資料
    • 更新
    • 停用

      • 您無法停用 _Required 接收器。
      • 您可以停用 _Default 接收器,停止將記錄項目路由至 _Default Logging 值區。
      • 如果您想為機構中建立的任何新Google Cloud 專案或資料夾停用 _Default 匯流程,請考慮設定預設資源設定
    • 刪除

      • 您無法刪除 _Default_Required 接收器。
      • 刪除匯入後,匯入點就不會再轉送記錄項目。
      • 如果接收器有專屬的服務帳戶,刪除該接收器也會刪除服務帳戶。在 2023 年 5 月 22 日前建立的接收端具有專屬服務帳戶。在 2023 年 5 月 22 日當天或之後建立的接收端會使用共用服務帳戶。刪除匯流程並不會刪除共用服務帳戶。
    • 排解失敗問題

    • 查看記錄檔資料量和錯誤率

    以下是管理 Google Cloud 專案中接收器的操作說明。您可以指定帳單帳戶、資料夾或機構,而非 Google Cloud 專案:

    控制台

    1. 在 Google Cloud 控制台中,前往「Log Router」頁面:

      前往「記錄檔路由器」

      如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

    2. 在工具列中,選取含有接收器的資源。資源可以是專案、資料夾、機構或帳單帳戶。

    「Log Router」頁面會顯示所選資源中的接收器。每個表格資料列都包含有關接收器屬性的資訊:

    • 已啟用:指出接收端的狀態是否已啟用或停用。
    • 類型:接收器的目的地服務,例如 Cloud Logging bucket
    • 名稱:接收器的 ID,也就是在建立接收器時提供的 ID,例如 _Default
    • 說明:在建立接收器時提供的接收器說明。
    • 目的地:傳送已分派記錄項目的目的地完整名稱。
    • Created:建立接收器的日期和時間。
    • 上次更新時間:最後編輯匯流程的日期和時間。
    • 數量:回報轉送至記錄檔接收器的記錄檔總量。這個值包含轉送至記錄檔值區、專案或其他目的地的資料量。

    針對每個表格資料列,「更多動作」選單提供下列選項:

    • 查看接收器詳細資料:顯示接收器的名稱、說明、目的地服務、目的地,以及包含和排除篩選器。選取「Edit」會開啟「Edit Sink」面板。
    • 編輯接收器:開啟「Edit Sink」(編輯接收器) 面板,您可以在此更新接收器的參數。
    • 停用接收器:可讓您停用接收器,並停止將記錄項目路由至接收器的目的地。如要進一步瞭解如何停用匯入端,請參閱「停止將記錄儲存在記錄值區」。
    • 啟用接收器:可讓您啟用已停用的接收器,並重新將記錄項目路由至接收器的目的地。
    • Delete sink:可讓您刪除接收器,並停止將記錄項目轉送至接收器的目的地。
    • 排解接收器問題:開啟 Logs Explorer,以便排解接收器的錯誤。
    • 查看接收器記錄檔資料量和錯誤率:開啟 Metrics Explorer,您可以在其中查看及分析接收器的資料。

    如要依欄排序表格,請選取資料欄名稱。

    gcloud

    • 如要查看 Google Cloud 專案的接收器清單,請使用 gcloud logging sinks list 指令,這會對應至 Logging API 方法 projects.sinks.list

      gcloud logging sinks list
      

      如要查看匯總接收器清單,請使用適當的選項指定包含接收器的資源。舉例來說,如果您是在機構層級建立接收器,請使用 --organization=ORGANIZATION_ID 選項列出機構的接收器。

    • 如要說明接收端,請使用 gcloud logging sinks describe 指令,這與 Logging API 方法 projects.sinks.get 對應:

      gcloud logging sinks describe SINK_NAME
      
    • 如要更新接收器,請使用 gcloud logging sinks update 指令,該指令與 API 方法 projects.sink.update 對應。

      您可以更新接收器來變更目的地、篩選器和說明,也可以停用或重新啟用接收器:

      gcloud logging sinks update SINK_NAME NEW_DESTINATION --log-filter=NEW_FILTER

      如果這些部分未變更,請省略 NEW_DESTINATION--log-filter

      舉例來說,如要將名為 my-project-sink 的匯出端更新為名為 my-second-gcs-bucket 的新 Cloud Storage 值區,指令會如下所示:

      gcloud logging sinks update  my-project-sink storage.googleapis.com/my-second-gcs-bucket
      
    • 如要停用接收器,請使用 gcloud logging sinks update 指令 (對應至 API 方法 projects.sink.update),並加入 --disabled 選項:

      gcloud logging sinks update SINK_NAME --disabled
      

      如要重新啟用匯流裝置,請使用 gcloud logging sinks update 指令、移除 --disabled 選項,並加入 --no-disabled 選項:

      gcloud logging sinks update SINK_NAME --no-disabled
      
    • 如要刪除接收器,請使用 gcloud logging sinks delete 指令,這會對應至 API 方法 projects.sinks.delete

      gcloud logging sinks delete SINK_NAME
      

      如要進一步瞭解如何使用 Google Cloud CLI 管理接收管道,請參閱 gcloud logging sinks 參考資料。

    REST

    • 如要查看 Google Cloud 專案的接收器,請呼叫 projects.sinks.list

    • 如要查看匯流程的詳細資料,請呼叫 projects.sinks.get

    • 如要更新接收器,請呼叫 projects.sink.update

      您可以更新接收器的目的地、篩選器和說明。您也可以停用或重新啟用接收器。

    • 如要停用接收器,請將 LogSink 物件中的 disabled 欄位設為 true,然後呼叫 projects.sink.update

      如要重新啟用匯流裝置,請將 LogSink 物件中的 disabled 欄位設為 false,然後呼叫 projects.sink.update

    • 如要刪除接收器,請呼叫 projects.sinks.delete

      如要進一步瞭解如何使用 Logging API 管理接收器,請參閱 LogSink 參考資料。

    停止在記錄檔值區中儲存記錄項目

    您可以停用 _Default 匯流程和任何使用者定義的匯流程。停用接收器後,接收器就會停止將記錄項目轉送至目的地。舉例來說,如果您停用 _Default 接收器,則不會有任何記錄項目轉送至 _Default 值區。當先前儲存的所有記錄項目都已滿足 bucket 的保留期限時,_Default bucket 就會變空白。

    以下說明如何停用會將記錄項目導向 _Default 記錄值區的 Google Cloud 專案接收端:

    控制台

    1. 在 Google Cloud 控制台中,前往「Log Router」頁面:

      前往「記錄檔路由器」

      如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

    2. 如要找出將記錄項目轉送至 _Default 記錄桶的所有接收器,請依目的地篩選接收器,然後輸入 _Default
    3. 針對每個接收器,選取 「選單」,然後選取「停用接收器」

      接收器現在已停用, Google Cloud 專案接收器也不再將記錄項目轉送至 _Default 值區。

    如要重新啟用已停用的接收器,並重新將記錄項目路由至接收器的目的地,請執行下列操作:

    1. 在 Google Cloud 控制台中,前往「Log Router」頁面:

      前往「記錄檔路由器」

      如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

    2. 如要找出將記錄項目轉送至 _Default 記錄桶的所有接收器,請依目的地篩選接收器,然後輸入 _Default
    3. 針對每個接收端,選取 「Menu」,然後選取「Enable sink」

    gcloud

    1. 如要查看 Google Cloud 專案的接收器清單,請使用 gcloud logging sinks list 指令,這會對應至 Logging API 方法 projects.sinks.list

      gcloud logging sinks list
      
    2. 找出所有導向至 _Default 記錄資料集的接收器。如要說明匯流程,包括查看目的地名稱,請使用 gcloud logging sinks describe 指令,這會對應至 Logging API 方法 projects.sinks.get

      gcloud logging sinks describe SINK_NAME
      
    3. 執行 gcloud logging sinks update 指令並加入 --disabled 選項。例如,如要停用 _Default 匯流至,請使用下列指令:

      gcloud logging sinks update _Default  --disabled
      

      _Default 接收器已停用,不再將記錄項目轉送至 _Default 記錄值區。

    如要停用 Google Cloud 專案中導向 _Default 儲存桶的其他接收器,請重複執行上述步驟。

    如要重新啟用匯流裝置,請使用 gcloud logging sinks update 指令、移除 --disabled 選項,並加入 --no-disabled 選項:

    gcloud logging sinks update _Default  --no-disabled
    

    REST

    1. 如要查看 Google Cloud 專案的接收器,請呼叫 Logging API 方法 projects.sinks.list

      找出所有導向至 _Default 集區的接收器。

    2. 舉例來說,如要停用 _Default 匯流至,請將 LogSink 物件中的 disabled 欄位設為 true,然後呼叫 projects.sink.update

      _Default 接收器已停用,不再將記錄項目轉送至 _Default 值區。

    如要停用 Google Cloud 專案中導向 _Default 儲存桶的其他接收器,請重複執行上述步驟。

    如要重新啟用匯流裝置,請將 LogSink 物件中的 disabled 欄位設為 false,然後呼叫 projects.sink.update

    程式碼範例

    如要使用用戶端程式庫程式碼,以所選語言設定接收端,請參閱「記錄用戶端程式庫:記錄接收端」。

    篩選器範例

    以下是一些篩選器範例,在建立接收器時特別實用。如需其他範例,方便您建立包含篩選器和排除篩選器,請參閱查詢範例

    還原 _Default 接收器篩選器

    如果您編輯了 _Default 匯流程的篩選器,建議您將這個匯流程還原為原始設定。建立時,_Default 接收器會使用以下包含篩選器和空白排除篩選器進行設定:

      NOT log_id("cloudaudit.googleapis.com/activity") AND NOT \
      log_id("externalaudit.googleapis.com/activity") AND NOT \
      log_id("cloudaudit.googleapis.com/system_event") AND NOT \
      log_id("externalaudit.googleapis.com/system_event") AND NOT \
      log_id("cloudaudit.googleapis.com/access_transparency") AND NOT \
      log_id("externalaudit.googleapis.com/access_transparency")
    

    排除 Google Kubernetes Engine 容器和 Pod 記錄檔

    如要排除 Google Kubernetes Engine 容器和 Pod 記錄項目 (適用於 GKE 系統 namespaces),請使用下列篩選器:

    resource.type = ("k8s_container" OR "k8s_pod")
    resource.labels.namespace_name = (
    "cnrm-system" OR
    "config-management-system" OR
    "gatekeeper-system" OR
    "gke-connect" OR
    "gke-system" OR
    "istio-system" OR
    "knative-serving" OR
    "monitoring-system" OR
    "kube-system")
    

    如要排除 GKE 系統 logNames 的 Google Kubernetes Engine 節點記錄項目,請使用下列篩選器:

    resource.type = "k8s_node"
    logName:( "logs/container-runtime" OR
    "logs/docker" OR
    "logs/kube-container-runtime-monitor" OR
    "logs/kube-logrotate" OR
    "logs/kube-node-configuration" OR
    "logs/kube-node-installation" OR
    "logs/kubelet" OR
    "logs/kubelet-monitor" OR
    "logs/node-journal" OR
    "logs/node-problem-detector")
    

    如要查看儲存在記錄叢集中的 Google Kubernetes Engine 節點、Pod 和容器記錄項目的資料量,請使用 Metrics Explorer:

    排除不影響支援性的 Dataflow 記錄檔

    如要排除支援性不必要的 Dataflow 記錄項目,請使用下列篩選器:

    resource.type="dataflow_step"
    labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"
    

    如要查看儲存在記錄值區中的 Dataflow 記錄量,請使用 Metrics Explorer。

    支援性

    雖然 Cloud Logging 可讓您排除記錄項目,並防止記錄項目儲存在記錄值區中,但建議您保留有助於支援性的記錄項目。您可以使用這些記錄項目來排解問題,並找出應用程式的問題。

    舉例來說,GKE 系統記錄項目會針對叢集中發生的事件產生,因此可用於排解 GKE 應用程式和叢集的問題。這些記錄項目可協助您判斷應用程式錯誤是由應用程式程式碼或基礎 GKE 叢集造成。GKE 系統記錄檔也會包含 Kubernetes API 伺服器元件產生的 Kubernetes 稽核記錄,其中包含使用 kubectl 指令和 Kubernetes 事件所做的變更。

    針對 Dataflow,我們建議您至少將系統記錄 (labels."dataflow.googleapis.com/log_type"="system") 和支援性記錄 (labels."dataflow.googleapis.com/log_type"="supportability") 寫入記錄資料集。這些記錄對於開發人員觀察及排解 Dataflow 管道問題至關重要,使用者可能無法透過 Dataflow 工作詳細資料頁面查看工作記錄。

    後續步驟

    • 如果您在使用接收器將記錄項目轉送至路徑時遇到問題,請參閱「排解路由記錄問題」。

    • 如要瞭解如何查看記錄目的地的記錄項目,以及記錄的格式和組織方式,請參閱「在接收目的地查看記錄」一文。

    • 如要進一步瞭解如何使用 Logging 查詢語言查詢及篩選資料,請參閱「Logging 查詢語言」。