使用記錄檢視器匯出記錄

本頁面說明如何使用 GCP 主控台匯出記錄項目。您也可以使用 Stackdriver Logging APIgcloud logging 指令列工具匯出記錄項目。

如果不熟悉如何匯出 Logging 的記錄檔,請參閱記錄檔匯出總覽。簡而言之,您需建立一個或多個接收器來匯出記錄,接收器包含記錄檔篩選器匯出目標位置。當 Stackdriver Logging 收到新記錄項目時,會與每個接收器比較。如果記錄項目符合接收器的篩選器,便會在匯出目標位置寫入一份記錄項目複本。

如要瞭解匯出記錄檔的格式設定和組織方式,請參閱使用匯出記錄檔一文。

入門指南

  1. 前往 GCP 主控台的「Stackdriver Logging」>「記錄匯出」頁面:

    前往「記錄匯出」

  2. 在頁面頂端選取現有的 GCP 專案,即會看見 GCP 專案中的記錄匯出清單。

    以下螢幕擷取畫面顯示的是「Logs Exports」(記錄匯出) 頁面的範例,其中已設定了數個記錄接收器:

匯出頁面

如果尚未設定任何記錄接收器,即會顯示「尚未設定記錄接收器」的訊息,而非上方顯示的清單。

事前準備

  • 專案:您必須擁有 Google Cloud Platform 專案,且能在記錄檢視器中檢視專案的記錄檔。

    您也必須是該專案的擁有者記錄/記錄設定寫入者 IAM 角色,才能建立、刪除或編輯接收器。如需更多資訊,請參閱權限與角色

  • 目標位置服務:如要匯出記錄檔,您必須註冊寫入記錄檔的服務:Cloud StorageBigQueryCloud Pub/Sub

記錄匯出使用者介面

「記錄匯出」內有匯出的摘要表。表格中的每列所含的資訊均可對應至記錄匯出總覽中所述的某些接收器屬性:

  • 接收器名稱:接收器在目前專案中的 ID。
  • 「Destination」(目標位置):記錄項目匯出後所到的位置。
  • 「Writer Identity」(寫入者身分):Logging 用於將記錄項目寫入目標位置的服務帳戶。此服務帳戶必須擁有寫入到接收器匯出目標位置的權限。

表格中每一列的最右側都有個溢位選單,具有下列選項:

  • [Edit sink] (編輯接收器):可開啟「Edit Export」(編輯匯出作業) 面板,供您變更接收器的參數。
  • [Delete sink] (刪除接收器):供您刪除接收器並停止匯出記錄檔。
  • [View filter] (查看篩選):顯示接收器的篩選器。按一下 [Edit] (編輯) 即可更改接收器的屬性或篩選器。

透過表格上方的搜尋篩選器方塊,則可使用文字搜尋功能或是「Sink Name」(接收器名稱)、「Destination」(目標位置) 和「Writer Identity」(寫入者身分) 等接收器屬性來加以篩選。例如,下方的螢幕擷取畫面顯示的是對「Destination」(目標位置)bigquery 的匯出項目進行搜尋,還有以 OR (預設為 AND) 串聯其他接收器屬性和引數的選項:

匯出篩選器

此外,點選任一個資料欄名稱,即可依遞增或遞減順序排序資料。也可以在表格底部選擇想要顯示的列數。

建立接收器

若要建立匯出接收器,請按一下「記錄匯出」頁面頂端的 [建立匯出作業] 按鈕。在「記錄檢視器」頁面頂端也可以找到此按紐。

如果您的帳戶沒有權限建立此專案的匯出,則會停用此按鈕。如需更多資訊,請參閱上方的事前準備一節。

下方的螢幕擷取畫面顯示的是「編輯匯出」面板,其中部分欄位已填寫:

設定匯出

若要建立接收器,請按照以下步驟填妥「編輯匯出」面板:

  1. (「filter」) (篩選器):輸入進階記錄檔篩選器。篩選器前後不需要引號,而且可以輸入多行。初始篩選器將由按下 [Create Export] (建立匯出作業) 時顯示的記錄項目決定。

    無論在何時編輯篩選器,按一下篩選器方框下方的 [Submit Filter] (提交篩選器),即會顯示符合的記錄項目。按一下頁面頂端的「跳到最新記錄」圖示,即可擷取最新的記錄檔。

    如果希望使用「基本檢視介面」選取記錄檔,請使用搜尋篩選器方塊右側的 ▾ 選單。

  2. 「Sink name」(接收器名稱):輸入您想要指派給接收器的 ID。

  3. 「Sink Service」(接收器服務):選擇目標位置服務:[Cloud Storage]、[Cloud Pub/Sub]、[BigQuery] 或 [Custom Destination](自訂寫入位置)

    自訂的匯出目標位置仍必須位於 Cloud Storage、BigQuery 或 Cloud Pub/Sub 內,但您可將記錄檔傳送至不同專案的接收器。

  4. 「Sink Destination」(接收器目標位置)

    1. [Cloud Storage]:選取或建立用於接收匯出記錄檔的特定值區。
    2. [Cloud Pub/Sub]:選取或建立用於接受匯出記錄檔的特定主題。
    3. [BigQuery]:選取或建立用於接收匯出記錄檔的特定資料集。
    4. [Custom Destination] (自訂寫入位置):以字串新增 Cloud Storage、Cloud Pub/Sub 或 BigQuery 專案。如需專案名稱格式設定的相關資訊,請參閱接收器屬性
  5. 按一下 [Update Sink] (更新接收器) 即可建立接收器。

    在建立接收器的過程中,Logging 會嘗試授予接收器的寫入者身分權限,以便寫入目標位置。如果您匯出的目標位置並非位於擁有記錄檔的專案,則必須由新目標位置的管理員授予權限。您需要向管理員傳送該接收器的寫入者身分,該屬性與接收器一併列於「匯出」頁面。

符合接收器的新記錄項目會開始匯出。寫入 BigQuery 或 Cloud Pub/Sub 的記錄項目會立即串流至對應匯出目標位置。寫入 Cloud Storage 的記錄項目會進行批次處理,大約每小時傳送一次。如需更多資訊,請參閱使用匯出的記錄檔一文。

如果 Logging 在嘗試將記錄檔匯出至目標位置時發生錯誤,錯誤會顯示在專案的「活動訊息串」內。請在 Google Cloud Platform 主控台中,選擇專案首頁頂端的 [活動]。如需診斷常見錯誤,請參閱疑難排解

更新接收器

若要更新接收器,請在接收器名稱右方的 [更多] 選單中,選擇「編輯接收器」指令。您可以變更下列任何參數:

  • 目標位置
  • 篩選器

若要變更接收器的其他參數,請使用 projects.sinks.update API 方法。

刪除接收器

若要刪除接收器,請在「匯出」頁面選擇接收器,並按一下頁面頂端的 [刪除]。或者,在接收器名稱右方的 [更多]選單中選擇 [刪除接收器]

目標位置權限

本節會說明授予 Logging 權限的方式,以便將記錄檔匯出到接收器的目標位置。

建立接收器時,Logging 會建立新的接收器服務帳戶,稱為「唯一寫入者身分」。由於這個服務帳戶是由 Stackdriver Logging 所擁有並負責管理,因此您無法直接管理這個服務帳戶。如果接收器遭到刪除,該服務帳戶也會跟著刪除。

您的匯出目標位置必須允許此服務帳戶寫入記錄項目。如要設定此權限,請按照以下步驟進行:

  1. 在 GCP 主控台、gcloud logging 指令列介面或 Logging API 中,建立新接收器。

  2. 如果已在 GCP 主控台建立接收器,且您具有目標位置的擁有者權限,則 Stackdriver Logging 應已代您設定好必要的權限。若確實如此,便已完成設定。如否,請繼續操作。

  3. 從新接收器取得該接收器的寫入者身分,也就是電子郵件地址:

    • 如果使用的是 GCP 主控台,可在「Exports」(匯出項目) 頁面所列的接收器中看見寫入者身分。
    • 如果使用的是 Logging API,可從 LogSink 物件取得寫入者身分。
    • 如果使用的是 gcloud logging,可在列出接收器時看見寫入者身分。
  4. 如果您具有目標位置的擁有者存取權,請以下列方式將服務帳戶新增到目標位置:

    • 如果為 Cloud Storage 的目標位置,請將接收器的寫入者身分新增至值區,並給予 Storage 物件建立者角色。
    • 如果為 BigQuery 目標位置,請將接收器的寫入者身分新增至資料集,並給予 BigQuery 資料編輯者角色。
    • 如果為 Cloud Pub/Sub,請將接收器的寫入者身分新增至主題,並給予 Pub/Sub 發佈者角色。

    這樣便授權完畢。

  5. 如果您不具有匯出目標位置的擁有者存取權,請將寫入者身分服務帳戶名稱傳送給具有權限的人員。請該人員依照前一步驟中的操作說明,將寫入者身分新增至匯出目標位置。

授權延遲

如果接收器嘗試匯出記錄項目,但沒有所需的匯出目標位置權限,接收器便會回報錯誤並跳過該記錄項目。這種情況會持續到授予權限為止,此時接收器才會開始匯出新記錄項目。

從建立接收器,到使用接收器的新服務帳戶授權寫入匯出目標位置之間,無可避免會有延遲。延遲期間,您可以選擇忽略接收器的任何錯誤訊息。

優點和限制

和使用 Logging API 相比,GCP 主控台有以下優點:

  • GCP 主控台會在單一位置顯示您所有的接收器。
  • 建立接收器之前,GCP 主控台會顯示符合接收器篩選器的記錄項目。
  • GCP 主控台可以為接收器建立和授權匯出目標位置。

然而,GCP 主控台只能建立或檢視專案中的接收器。若要在機構、資料夾或帳單帳戶中建立接收器,請參閱匯總匯出一文。

疑難排解

本節列出部分可能的錯誤和未預期的結果,並解釋解決方法。

接收器的錯誤會顯示於所屬專案或其他接收器建立的資源對應的「活動訊息串」。請參閱 GCP 主控台中資源首頁的活動訊息串。

一般問題

問題 原因 解決方案
新的記錄資訊已匯出,但舊的記錄資訊並未匯出。 Logging 只會匯出設定匯出後收到的記錄項目。 請使用 entries.list API 方法擷取舊的記錄項目,並使用目標位置服務的 API 將舊項目寫入至匯出目標位置。您只能擷取在 Stackdriver Logging 中尚未到期的記錄項目。如需更多資訊,請參閱記錄保留限制一文。

匯出至 Cloud Storage 時發生錯誤

下表列出了在設定 Logging 並將記錄匯出至 Cloud Storage 時的常見錯誤:

錯誤 原因 解決方案
[YOUR_BUCKET] 值區並不具有允許記錄群組建立新物件的權限。 接收器的寫入者身分並沒有存取值區的足夠權限。 新增必須的值區權限,或更新接收器以使用其他值區。請參閱目標位置權限一文。
找不到以下名稱的值區:[YOUR_BUCKET]. 值區名稱可能有錯,或值區已刪除。 使用正確的值區目標位置更新接收器。
已成功建立接收器,但我們無法將正確的權限授予目標位置。 建立值區時,系統已將該值區的存取權控管模型設為「Set permissions uniformly at bucket-level (Bucket Policy Only)」(統一設定值區層級的權限 (僅值區政策))

(在新增服務帳戶之後,系統仍會持續顯示這則錯誤訊息。)
在建立值區期間,為存取權控管模型選取 [Set object-level and bucket-level permissions] (設定物件層級和值區層級權限)。如為現有值區,您可以在值區建立之後的 90 天內,透過「Permissions」(權限) 分頁變更存取權控管模型。

匯出至 BigQuery 時發生錯誤

下表列出設定 Logging 並將記錄匯出至 BigQuery 時常見的錯誤:

錯誤 原因 解決方案
資料集 [YOUR-DATASET] 沒有允許記錄群組建立新表格的權限。 接收器的寫入者身分並沒有存取資料集的足夠權限。 為資料集新增權限。請參閱目標位置權限一文。
找不到以下名稱的資料集:[YOUR_DATASET]。 接受器目標位置可能有錯,或有人刪除了該資料集。 請重新建立資料集,或更新匯出接收器以使用不同的資料集。
串流至資料集 [YOUR_DATASET] 中表 [YOUR_TABLE] 表格的記錄檔與表格結構定義不符。 您嘗試匯出的記錄檔與目前表格的結構定義不相容。 請確保您的記錄項目符合表格的結構定義。常見問題包括傳送不同資料類型的記錄項目。例如,記錄項目中的其中一欄為整數,但結構定義中的對應欄卻是字串類型,或活動訊息串含有無效記錄項目的連結。修正錯誤來源後,便能將目前表格重新命名,並使用 Logging 重新建立表格。
資料集 [YOUR_DATASET] 中的 [YOUR_TABLE] 表格已超過單一表格的串流插入配額。 您匯出過多記錄項目,且速度過快。請參閱BigQuery 預設配額限制一文,該限制適用記錄串流。 請減少接收器產生的記錄資料量。您可以更新接收器的篩選器,以便符合較少的記錄項目,或使用 sample() 函數
串流至分區資料表 [YOUR_TABLE] 的記錄不在允許的時間範圍內。 BigQuery 並不支援過於久遠的過去或未來之項目。 超出允許時間範圍的記錄無法透過接收器匯出。您可以將這些記錄匯出至 Cloud Storage,並改為使用 BigQuery 載入工作。詳細指示請參閱 BigQuery 文件
因為機構政策禁止該作業,記錄無法串流至資料集 [YOUR_DATASET]。 既有的機構政策阻止寫入所選資料集。如需組織政策的詳細資訊,請參閱文件 請編輯匯出接收器,使用符合規定的資料集。

匯出至 Cloud Pub/Sub 時發生錯誤

下表列出設定 Logging 將記錄匯出至 Cloud Pub/Sub 時常見的錯誤:

錯誤 原因 解決方案
[ACCOUNT] 需要 [PROJECT] 的編輯權限才能發佈到 [TOPIC] 接收器的寫入者身分並沒有存取主題的足夠權限。 為專案新增足夠的權限。請參閱目標位置權限一文。
主題 [TOPIC] 不存在。 您可能刪除了設定來接收匯出記錄的主題。 重新建立相同名稱的主題,或變更匯出設定,使用不同的主題。

後續步驟

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

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

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