在記錄檔 bucket 上連結 BigQuery 資料集,即可使用 BigQuery Studio 和數據分析等 BigQuery 服務,查詢及分析記錄檔資料。連結的 BigQuery 資料集是指向記錄檔 bucket 的唯讀指標,因此您可以彙整記錄檔資料與其他資料集,並建立以 SQL 為基礎的警告政策,不必複製資料或另外支付 BigQuery 儲存空間費用。
您無法為分析檢視表建立連結的 BigQuery 資料集。如果您不熟悉 Observability Analytics,請參閱「Observability Analytics 總覽」。
何時需要連結 BigQuery 資料集
如要查詢記錄資料,或查詢記錄和追蹤資料,則不需要連結 BigQuery 資料集。在這種情況下,您可以使用「Observability Analytics」頁面。您也可以儲存及分享查詢,並將查詢儲存至自訂資訊主頁。如要瞭解如何查詢追蹤記錄資料,請參閱「查詢及分析追蹤記錄」。
如要執行下列任一操作,則必須連結 BigQuery 資料集:
- 將記錄項目資料與其他 BigQuery 資料集彙整。
- 從 BigQuery Studio 或數據分析等其他服務查詢記錄資料。
- 建立警告政策,監控 SQL 查詢結果。詳情請參閱「使用警告政策監控 SQL 查詢結果」。
記錄檔 bucket 的連結 BigQuery 資料集可讓 BigQuery 讀取記錄檔 bucket 中的資料。
記錄檔 bucket 和記錄檔檢視表如何對應至 BigQuery 物件
為記錄檔 bucket 建立連結的 BigQuery 資料集後,BigQuery 就能使用新的資料集。您會在連結過程中指定連結的 BigQuery 資料集名稱。記錄檔值區中的任何記錄檔檢視表,都會自動對應至資料集中的虛擬檢視表。虛擬檢視的名稱與對應的記錄檢視相同。
舉例來說,假設專案 my_project 有一個名為 example 的記錄檔 bucket,且這個記錄檔 bucket 有一個名為 _AllLogs 的記錄檔檢視。如果您為該記錄檔 bucket 建立連結的 BigQuery 資料集,並命名為 my_dataset,則 BigQuery 的「Explorer」頁面會顯示 my_project 項目。my_project 項目底下有名為 my_dataset 的資料集,該資料集列有名為 _AllLogs 的虛擬檢視表。
使用連結的 BigQuery 資料集時,存取控管機制會受到的影響
當主體查詢連結 BigQuery 資料集上的檢視表時,該查詢會透過 BigQuery 權限層執行,而非 Cloud Logging 權限層。因此,主體是否能查詢資料集,取決於連結的 BigQuery 資料集授予主體的 BigQuery 角色和權限。
您無法將主體限制在連結資料集內的特定虛擬檢視表。如果主體已取得連結 BigQuery 資料集的存取權,就能查詢該資料集中的所有檢視表。
建立連結資料集時發生的系統動作
在觀測能力資料集建立連結時,會發生下列情況:
Google Cloud Observability 可能會建立下列服務帳戶,或修改其 IAM 角色授權:
Monitoring 服務帳戶:必須具備此角色,才能建立連結至 BigQuery 資料集的連結。必須啟用 Cloud Monitoring API,Google Cloud Observability 才能建立這個服務帳戶。
Cloud Observability 服務帳戶:必須具備這項權限,才能在觀測能力資料集建立連結。
Cloud Logging 服務帳戶:必須具備這個帳戶,才能在記錄檔 bucket 建立連結。
稽核記錄會記錄建立連結的要求,以及服務代理管理員要求授予 Monitoring 服務帳戶 Monitoring 服務代理 IAM 角色的要求。這些記錄也會記錄長時間執行的作業何時完成。
事前準備
- 登入 Google Cloud 帳戶。如果您未曾使用過 Google Cloud,歡迎 建立帳戶,親自體驗實際使用我們產品的成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
如要取得建立連結資料集所需的權限,請要求管理員授予您專案的記錄檔設定寫入者 (
roles/logging.configWriter) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。 請確認記錄檔 bucket 已升級為使用 Observability Analytics:
-
在 Google Cloud 控制台中,前往「Logs Storage」(記錄檔儲存空間) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
- 如果記錄檔 bucket 顯示「Upgrade」(升級),請按一下「Upgrade」(升級),然後完成對話方塊。
-
建立連結的 BigQuery 資料集
如要使用 BigQuery 的功能分析記錄檔資料,請升級記錄檔 bucket 以使用 Observability Analytics,然後建立連結資料集。採用這項設定時,Logging 會儲存記錄資料,但 BigQuery 可以讀取記錄資料。
Google Cloud 控制台
如要為現有記錄檔 bucket 建立 BigQuery 資料集連結,請按照下列步驟操作:
-
在 Google Cloud 控制台中,前往「Logs Storage」(記錄檔儲存空間) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
找到記錄檔 bucket,確認「Observability Analytics available」(可使用 Observability Analytics) 欄顯示「Open」(開啟)。
如果這個資料欄顯示「Upgrade」(升級),表示記錄檔 bucket 尚未升級為使用 Observability Analytics。設定 Observability Analytics:
- 按一下「升級」。
- 在對話方塊中,點選「確認」。
升級完成後,請繼續執行下一個步驟。
在記錄檔 bucket 上,按一下「More」(更多) more_vert,然後按一下「Edit bucket」(編輯 bucket)。
「Edit log bucket」(編輯記錄檔 bucket) 對話方塊隨即開啟。
選取「建立連至這個值區的新 BigQuery 資料集」,然後輸入新資料集的名稱。
每個 Google Cloud 專案的資料集名稱不得重複。如果輸入現有資料集的名稱,系統會顯示下列錯誤:
Dataset name must be unique in the selected region.依序點選「完成」和「更新 bucket」。
Logging 在「Logs Storage」(記錄檔儲存空間) 頁面顯示連結的資料集名稱後,BigQuery 可能需要幾分鐘才能辨識資料集。
gcloud
如要為升級後使用 Observability Analytics 的記錄檔 bucket 建立連結資料集,請執行 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 方法。
請按照下列方式準備方法的引數:
- 建構
create指令的要求主體。要求主體的格式為Link物件。 - 指令的查詢參數請使用
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.