在記錄檔 bucket 中建立連結的 BigQuery 資料集

如要使用 BigQuery 服務 (例如 BigQuery Studio 或數據分析) 分析記錄檔資料,請在記錄檔 bucket 中建立連結的 BigQuery 資料集。這個資料集可讓您彙整記錄檔資料與其他資料集。您也可以建立監控 SQL 查詢結果的警報政策。

連結的 BigQuery 資料集是記錄檔 bucket 的唯讀指標。您可以使用 BigQuery 服務查詢記錄資料,不必複製資料,也不必在 BigQuery 中支付額外的儲存空間費用。

您無法為分析檢視表建立連結的 BigQuery 資料集。

如果您不熟悉 Observability Analytics,請參閱Observability Analytics 總覽

何時需要連結的 BigQuery 資料集

如要查詢記錄檔資料,或查詢記錄檔和追蹤資料,不需要連結 BigQuery 資料集。在這些情況下,您可以使用「可觀測性分析」頁面。您也可以儲存及分享查詢,並將查詢儲存至自訂資訊主頁。如要瞭解如何查詢追蹤記錄資料,請參閱「查詢及分析追蹤記錄」。

如要執行下列任一操作,您必須連結 BigQuery 資料集:

記錄檔 bucket 的連結 BigQuery 資料集可讓 BigQuery 讀取記錄檔 bucket 中的資料。

記錄檔儲存空間和記錄檢視區塊如何對應至 BigQuery 物件

為記錄檔 bucket 建立已連結的 BigQuery 資料集時,BigQuery 會提供新的資料集。您可以在連結程序中指定連結的 BigQuery 資料集名稱。記錄檔 bucket 中的所有記錄檢視畫面,都會自動對應至資料集中的虛擬檢視畫面。虛擬檢視區塊的名稱與對應的記錄檢視區塊相同。

舉例來說,假設專案 my_project 有一個名為 example 的記錄檔 bucket,而這個記錄檔 bucket 有名為 _AllLogs 的記錄檢視區塊。如果您為該記錄檔 bucket 建立名為 my_dataset 的連結 BigQuery 資料集,BigQuery 的「Explorer」頁面就會顯示 my_project 項目。「my_project」項目的子項是名為「my_dataset」的資料集,而該資料集會列出名為「_AllLogs」的虛擬檢視區塊。

使用連結的 BigQuery 資料集時,存取控管的影響

主體查詢連結的 BigQuery 資料集中的檢視區塊時,查詢會透過 BigQuery 權限層執行,而非 Cloud Logging 權限層。因此,主體在連結的 BigQuery 資料集上獲得的 BigQuery 角色和權限,會決定主體是否可以查詢該資料集。

您無法將主體限制為連結資料集中的特定虛擬檢視畫面。如果主體已獲授權存取連結的 BigQuery 資料集,就能查詢該資料集中的每個檢視區塊。

建立連結資料集時發生的系統動作

在可觀測性資料集上建立連結時,會發生下列情況:

  • Google Cloud Observability 可能會建立下列服務帳戶,或修改其 IAM 角色授權:

    • 監控服務帳戶: 建立連結至連結的 BigQuery 資料集時,必須提供這個帳戶。 Google Cloud Observability 必須啟用 Cloud Monitoring API,才能建立這個服務帳戶。

    • Cloud Observability 服務帳戶: 建立可觀測性資料集的連結時,必須具備這個帳戶。

    • Cloud Logging 服務帳戶: 在記錄檔 bucket 中建立連結時需要這個帳戶。

  • 稽核記錄會記錄建立連結的要求,以及服務代理管理員發出的要求,將「監控服務代理」的 IAM 角色授予監控服務帳戶。這些記錄也會記錄長時間執行的作業是否完成。

事前準備

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. 如要取得建立連結資料集所需的權限,請要求管理員授予您專案的記錄設定寫入者 (roles/logging.configWriter) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

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

  7. 確認記錄檔 bucket 已升級為使用 Observability Analytics:

    1. 在 Google Cloud 控制台中,前往「Logs Storage」(記錄檔儲存空間) 頁面:

      前往「Logs Storage」(記錄檔儲存空間)

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

    2. 如果記錄檔 bucket 顯示 升級,請按一下 升級並完成對話方塊。

如要使用 BigQuery 的功能分析記錄檔資料,請升級記錄檔 bucket 以使用 Observability Analytics,然後建立連結的資料集。完成這項設定後,Logging 會儲存記錄資料,但 BigQuery 可以讀取記錄資料。

Google Cloud 控制台

如要為現有記錄檔 bucket 建立 BigQuery 資料集連結,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Logs Storage」(記錄檔儲存空間) 頁面:

    前往「Logs Storage」(記錄檔儲存空間)

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

  2. 找出記錄檔 bucket,並確認「可使用 Observability Analytics」欄顯示「開啟」

    如果這個資料欄顯示「升級」,表示記錄檔 bucket 尚未升級,無法使用 Observability Analytics。設定觀測能力分析:

    1. 按一下「升級」
    2. 在對話方塊中按一下「確認」

    升級完成後,請繼續執行下一個步驟。

  3. 在記錄檔 bucket 中,按一下「更多」,然後按一下「編輯 bucket」

    「編輯記錄檔 bucket」對話方塊隨即開啟。

  4. 選取「建立連至這個 bucket 的新 BigQuery 資料集」,然後輸入新資料集的名稱。

    每個 Google Cloud 專案的資料集名稱皆不得重複。如果輸入現有資料集的名稱,系統會顯示下列錯誤:Dataset name must be unique in the selected region.

  5. 依序按一下「完成」和「更新 bucket」

    Logging 在「記錄儲存空間」頁面顯示連結的資料集名稱後,BigQuery 可能需要幾分鐘才會辨識出該資料集。

gcloud

如要為已升級的記錄檔 bucket 建立連結的資料集,以使用 Observability Analytics,請執行 gcloud logging links create 指令:

gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION

您提供的 LINK_ID 會做為 BigQuery 資料集的名稱,且這個欄位的值在 Google Cloud 專案中不得重複。

links create 指令為非同步性質。非同步方法會傳回 Operation 物件,其中包含方法進度的相關資訊。方法完成後,Operation 物件會包含狀態。詳情請參閱「非同步 API 方法」。

links create 指令需要幾分鐘才能完成。

舉例來說,下列指令會為名為 my-bucket 的記錄檔 bucket 建立名為 mylink 的連結資料集:

gcloud logging links create mylink --bucket=my-bucket --location=global

每個 Google Cloud 專案的資料集名稱皆不得重複。如果您嘗試建立與現有資料集同名的資料集,就會收到下列錯誤訊息:

BigQuery dataset with name "LINK_ID" already exists.

如果您嘗試為未升級使用 Observability Analytics 的記錄檔 bucket 建立連結的資料集,系統會回報下列錯誤:

A link can only be created for an analytics-enabled bucket.

REST

如要為已升級以使用 Observability Analytics 的現有記錄檔 bucket 建立連結的 BigQuery 資料集,請呼叫 Cloud Logging API 的非同步 projects.locations.buckets.links.create 方法。

如下準備方法的引數:

  1. 建構 create 指令的要求主體。要求主體的格式為 Link 物件。
  2. 如要查詢指令的參數,請使用 linkId=LINK_ID。您提供的 LINK_ID 會做為 BigQuery 資料集的名稱,且這個欄位的值在 Google Cloud 專案中不得重複。

非同步方法的回應是 Operation 物件。這個物件包含方法進度的相關資訊。方法完成後,Operation 物件會包含狀態。詳情請參閱「非同步 API 方法」。

links.create 方法需要幾分鐘才會完成。

每個 Google Cloud 專案的資料集名稱皆不得重複。如果您嘗試建立與現有資料集同名的資料集,就會收到下列錯誤訊息:

BigQuery dataset with name "LINK_ID" already exists.

如果您嘗試為未升級使用 Observability Analytics 的記錄檔 bucket 建立連結的資料集,系統會回報下列錯誤:

A link can only be created for an analytics-enabled bucket.

後續步驟