本文說明如何建立及管理記錄接收器,將源自 Google Cloud 專案的記錄項目傳送至支援的目的地。
接收器會執行寫入動作,因此必須授權寫入目的地。如果目的地是與接收器位於同一專案的記錄 bucket,系統會自動授權接收器。對於所有其他目的地,接收器必須附加至已獲授權的服務帳戶,該帳戶必須具備將資料寫入目的地所需的權限。
需要服務帳戶時,Cloud Logging 會自動建立及管理服務帳戶。不過,您可能需要修改授予服務帳戶的權限。您不必使用 Logging 建立的服務帳戶。您可以建立及管理服務帳戶,供多個專案中的接收器使用。詳情請參閱使用使用者管理的服務帳戶設定記錄接收器。
總覽
本頁說明如何建立接收器,以及如何設定使用 Google Cloud 控制台或 API 時可能看到的選項。
接收器屬於特定 Google Cloud 資源: Google Cloud 專案、帳單帳戶、資料夾或機構。當資源收到記錄項目時,資源中的每個接收器都會處理該記錄項目。如果記錄項目符合接收器的篩選條件,系統就會將該項目傳送至接收器的目的地。
一般來說,接收器只會將源自資源的記錄項目傳送至目的地。不過,您可以為資料夾和機構建立匯總接收器,轉送資料夾或機構及其所含資源的記錄項目。本文不會討論匯總接收器。詳情請參閱匯總接收器總覽。
如要建立及管理接收器,可以使用 Google Cloud 控制台、Cloud Logging API 和 Google Cloud CLI。建議您使用 Google Cloud 控制台:
- 「記錄檔路由器」頁面會列出所有接收器,並提供管理接收器的選項。
- 建立接收器時,您可以預覽符合接收器篩選器的記錄項目。
- 建立接收器時,您可以設定接收器目的地。
- 系統會為您完成部分授權步驟。
支援的目的地
接收器的目的地可以與接收器位於不同的資源中。 舉例來說,您可以使用記錄檔接收器,將一個專案的記錄檔項目傳送至儲存在另一個專案中的記錄檔值區。
系統支援下列目的地:
- Google Cloud 專案
如果希望目標專案中的記錄接收器重新導向記錄項目,或是已建立攔截匯總接收器,請選取這個目標位置。接收器目的地專案中的記錄檔接收器,可將記錄檔項目重新轉送至任何支援的目的地,但專案除外。
- 記錄檔值區
如要在 Cloud Logging 管理的資源中儲存記錄檔資料,請選取這個目的地。您可以使用 Logs Explorer 和 Log Analytics 等服務,查看及分析記錄 bucket 中儲存的記錄資料。
如要彙整記錄檔資料與其他業務資料,您可以將記錄檔資料儲存在記錄檔 bucket 中,並建立連結的 BigQuery 資料集。連結的資料集是唯讀資料集,可像其他 BigQuery 資料集一樣查詢。
- BigQuery 資料集
- 如要將記錄資料與其他業務資料合併,請選取這個目的地。您指定的資料集必須啟用寫入功能。 請勿將接收器的目的地設為連結的 BigQuery 資料集。連結的資料集為唯讀狀態。
- Cloud Storage 值區
- 如要長期儲存記錄資料,請選取這個目的地。Cloud Storage bucket 可以位於記錄檔項目來源的相同專案,也可以位於不同專案。記錄項目會儲存為 JSON 檔案。
- Pub/Sub 主題
- 如要從Google Cloud 匯出記錄資料,然後使用 Splunk 或 Datadog 等第三方整合服務,請選取這個目的地。記錄項目會格式化為 JSON,然後轉送至 Pub/Sub 主題。
目的地限制
本節說明目的地專屬限制:
- 如果將記錄檔項目轉送至其他 Google Cloud 專案的記錄檔值區,Error Reporting 就不會分析這些記錄檔項目。詳情請參閱「錯誤報告總覽」。
- 如果將記錄檔項目傳送至 BigQuery 資料集,BigQuery 資料集必須啟用寫入功能。您無法將記錄項目傳送至唯讀的已連結資料集。
- 將記錄檔資料傳送至 Cloud Storage 值區的新接收器,可能需要數小時才能開始傳送記錄檔項目。系統每小時會處理這些接收器。
如果記錄接收器目的地是 Google Cloud 專案,則適用下列限制:
- 有單一躍點限制。
- 只有當記錄項目來自目的地專案時,符合
_Required
記錄接收器篩選條件的記錄項目才會轉送至目的地專案的_Required
記錄 bucket。 - 只有記錄項目資源階層中的匯總接收器,才會處理記錄項目。
舉例來說,假設專案
A
中記錄接收器的目的地是專案B
。則下列情況屬實:- 由於單一躍點限制,專案
B
中的記錄接收器無法將記錄項目重新導向至 Google Cloud 專案。 - 專案
B
的_Required
記錄檔 bucket 只會儲存源自專案B
的記錄項目。這個記錄檔值區不會儲存來自任何其他資源的記錄檔項目,包括來自專案A
的項目。 - 如果專案
A
和專案B
的資源階層不同,專案A
中記錄接收器轉送至專案B
的記錄項目,就不會傳送至專案B
資源階層中的匯總接收器。 - 如果專案
A
和專案B
具有相同的資源階層,記錄檔項目就會傳送至該階層中的匯總接收器。如果記錄項目未遭匯總接收器攔截,記錄檔路由器就會將記錄項目傳送至專案A
中的接收器。
事前準備
本文的操作說明將介紹如何在Google Cloud 專案層級建立及管理接收器。您可以使用相同程序建立接收器,將源自機構、資料夾或帳單帳戶的記錄項目傳送至目的地。
如要開始使用,請按照下列步驟操作:
-
Enable the Cloud Logging API.
請確認 Google Cloud 專案包含可在記錄檔探索工具中查看的記錄項目。
-
如要取得建立、修改或刪除接收器所需的權限,請要求管理員為您授予專案的記錄設定寫入者 (
roles/logging.configWriter
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。如要瞭解如何授予 IAM 角色,請參閱 Logging 存取權控管指南。
您在支援的目的地中擁有資源,或有權建立資源。
如要將記錄項目轉送至目的地,您必須先建立目的地,才能建立接收器。您可以在任何機構的任何Google Cloud 專案中建立目的地。
建立接收器前,請先查看接收器目的地適用的限制。詳情請參閱本文的「目的地限制」一節。
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
-
前往 Google Cloud 控制台的「記錄檔路由器」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
選取要轉送的記錄項目所屬的 Google Cloud 專案。
舉例來說,如要將名為
Project-A
的專案中的資料存取記錄項目,轉送至名為Project-B
的專案中的記錄值區,請選取Project-A
。選取「建立接收器」。
在「接收器詳細資料」面板中,輸入下列詳細資料:
「Sink name」(接收器名稱):提供接收器的 ID。請注意,建立接收器後就無法重新命名,但可以刪除並建立新的接收器。
接收器說明 (選填):說明接收器的用途或用途。
在「接收器目的地」面板中,使用「選取接收器服務」選單選取接收器服務和目的地。請執行下列任一操作:
如要將記錄檔項目傳送至相同Google Cloud 專案中的服務,請選取下列其中一個選項:
- Cloud Logging bucket:選取或建立記錄檔值區。
- BigQuery 資料集:選取或建立可寫入的資料集,以接收已路由的記錄檔項目。您也可以選擇使用分區資料表。
- Cloud Storage bucket:選取或建立用於接收已路由記錄檔項目的特定 Cloud Storage bucket。
- Pub/Sub 主題:選取或建立用於接收已路由傳送記錄檔項目的特定主題。
- Splunk:選取 Splunk 服務的 Pub/Sub 主題。
如要將記錄項目轉送至其他 Google Cloud 專案,請選取「專案」Google Cloud ,然後輸入目標的完整名稱:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
如要將記錄檔項目傳送至其他專案中的服務,請按照下列步驟操作:Google Cloud
- 選取「其他資源」。
- 輸入目的地的完整名稱。如要瞭解語法,請參閱「目的地路徑格式」。
指定要納入的記錄項目:
前往「選擇要納入接收器的記錄檔」面板。
在「Build inclusion filter」(建立「包含」篩選器) 欄位中,輸入與您想納入的記錄項目相符的篩選器運算式。如要進一步瞭解如何撰寫篩選器的語法,請參閱「Logging 查詢語言」。
如未設定篩選器,所選資源的所有記錄檔項目都會轉送至目的地。
舉例來說,如要將所有資料存取記錄項目傳送至 Logging 儲存空間,可以使用下列篩選器:
log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")
篩選條件長度不得超過 20,000 個字元。
如要確認輸入的篩選條件正確無誤,請選取「預覽記錄」。 系統會在新的分頁中開啟記錄檔探索工具,並預先填入篩選條件。
(選用) 設定排除篩選器,排除部分納入的記錄項目:
前往「選擇要從接收器排除的記錄檔」面板。
在「排除篩選器名稱」欄位中輸入名稱。
在「建立排除篩選器」欄位中,輸入與您想排除的記錄項目相符的篩選器運算式。您也可以使用
sample
函式選取要排除的記錄項目部分。
每個接收器最多可建立 50 個排除篩選器。請注意,篩選器的長度不得超過 20,000 個字元。
選取「建立接收器」。
將記錄項目寫入接收器目的地所需的權限,授予接收器的服務帳戶。詳情請參閱「設定目的地權限」。
執行下列
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
參考資料。如果指令回應包含標示為
"writerIdentity"
的 JSON 金鑰,請授予接收器服務帳戶寫入接收器目的地的權限。詳情請參閱「設定目的地權限」一文。如果回應不含標示為
"writerIdentity"
的 JSON 鍵,則不需要設定目的地權限。如要在 Google Cloud 專案中建立記錄接收器,請使用 Logging API 中的
projects.sinks.create
。在LogSink
物件中,於方法要求主體中提供適當的必要值:name
:接收器的 ID。請注意,建立接收器後就無法重新命名,但可以刪除並建立新的接收器。destination
:要將記錄項目轉送至的服務和目的地。如要將記錄檔項目轉送至其他專案,或轉送至其他專案中的目的地,請按照「目的地路徑格式」一文的說明,使用適當的路徑設定destination
欄位。舉例來說,如果接收器目的地是 Pub/Sub 主題,則
destination
看起來會如下所示:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
在
LogSink
物件中,提供適當的選用資訊:呼叫
projects.sinks.create
建立接收器。如果 API 回應包含標示為
"writerIdentity"
的 JSON 金鑰,請授予接收器的服務帳戶寫入接收器目的地的權限。詳情請參閱「設定目的地權限」一文。如果 API 回應不含標示為
"writerIdentity"
的 JSON 金鑰,則不需要設定目的地權限。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
請確認您在Google Cloud 包含目的地的專案中,具備「擁有者」存取權。如果您不具有接收器目的地位置的擁有者存取權,請要求專案擁有者將寫入者身分新增為主體。
如要從新接收器取得該接收器的寫入者身分 (電子郵件地址),請按照下列步驟操作:
-
前往 Google Cloud 控制台的「記錄檔路由器」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
- 在工具列中,選取含有接收器的專案。
- 選取 more_vert「選單」,然後選取「查看接收器詳細資料」。寫入者身分會顯示在「接收器詳細資料」面板中。
-
如果
writerIdentity
欄位的值包含電子郵件地址,請繼續下一個步驟。如果值為None
,則不需要為接收器設定目的地權限。將接收器的寫入者身分複製到剪貼簿。
電子郵件地址可識別主體。前置碼「
serviceAccount:
」用於指定帳戶類型。將接收器寫入者身分中指定的主體,授予將記錄資料寫入目的地的權限:
-
前往 Google Cloud 控制台的「IAM」IAM頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM & Admin」的結果。
在工具列中,確認所選專案是儲存目的地的專案,或是接收器目的地。舉例來說,如果目的地是記錄值區,請確認工具列顯示儲存記錄值區的專案。
按一下「授予存取權」
。根據記錄接收器的目的地,將 IAM 角色授予接收器寫入者身分中指定的主體:
- Google Cloud 專案:授予記錄寫入者角色 (
roles/logging.logWriter
)。具體來說,主體需要logging.logEntries.route
權限。 - 記錄檔值區:授予記錄檔值區寫入者角色 (
roles/logging.bucketWriter
)。 - Cloud Storage 值區:授予Storage 物件建立者角色 (
roles/storage.objectCreator
)。 - BigQuery 資料集:授予
BigQuery 資料編輯者角色
(
roles/bigquery.dataEditor
)。 - Pub/Sub 主題 (包括 Splunk):授予 Pub/Sub 發布者角色 (
roles/pubsub.publisher
)。
- Google Cloud 專案:授予記錄寫入者角色 (
-
請確認您在Google Cloud 包含目的地的專案中,具備「擁有者」存取權。如果您不具有接收器目的地位置的擁有者存取權,請要求專案擁有者將寫入者身分新增為主體。
從接收器的「
writerIdentity
」欄位取得服務帳戶:gcloud logging sinks describe SINK_NAME
找出要修改權限的接收器,如果接收器詳細資料包含
writerIdentity
的行,請繼續下一個步驟。如果詳細資料不包含writerIdentity
欄位,則不需要為接收器設定目的地權限。服務帳戶的寫入者身分類似如下所示:
serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
呼叫
gcloud projects add-iam-policy-binding
指令,授予接收器的寫入者身分將記錄資料寫入目的地的權限。使用下列指令之前,請先替換以下項目:
- PROJECT_ID:專案的 ID。指定儲存記錄接收器目的地的專案。如果目的地是專案,請指定該專案。
- PRINCIPAL:要授予角色的主體 ID。主體 ID 通常採用以下格式:
PRINCIPAL-TYPE:ID
。 例如:user:my-user@example.com
。如需PRINCIPAL
可採用的完整格式清單,請參閱「主要 ID」。 ROLE:IAM 角色。根據記錄接收器的目的地,將 IAM 角色授予接收器的寫入者身分:
- Google Cloud 專案:授予記錄寫入者角色 (
roles/logging.logWriter
)。具體來說,主體需要logging.logEntries.route
權限。 - 記錄檔值區:授予記錄檔值區寫入者角色 (
roles/logging.bucketWriter
)。 - Cloud Storage 值區:授予Storage 物件建立者角色 (
roles/storage.objectCreator
)。 - BigQuery 資料集:授予
BigQuery 資料編輯者角色
(
roles/bigquery.dataEditor
)。 - Pub/Sub 主題 (包括 Splunk):授予 Pub/Sub 發布者角色 (
roles/pubsub.publisher
)。
- Google Cloud 專案:授予記錄寫入者角色 (
執行
gcloud projects add-iam-policy-binding
指令:gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
- 查看詳細資料
- 更新
停用
- 您無法停用
_Required
接收器。 - 您可以停用
_Default
接收器,停止將記錄項目傳送至_Default
Logging 值區。 - 如要為機構中建立的任何新
_Default
Google Cloud 專案或資料夾停用接收器,請考慮設定預設資源設定。
- 您無法停用
刪除
- 您無法刪除
_Default
或_Required
接收器。 - 刪除接收器後,系統就不會再將記錄項目傳送至該接收器。
- 如果接收器有專屬服務帳戶,刪除接收器也會一併刪除服務帳戶。2023 年 5 月 22 日前建立的接收器有專屬服務帳戶。在 2023 年 5 月 22 日當天或之後建立的接收器,會使用共用服務帳戶。刪除接收器不會刪除共用服務帳戶。
- 您無法刪除
排解失敗問題
- 查看記錄檔資料量和錯誤率
-
前往 Google Cloud 控制台的「記錄檔路由器」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
在工具列中,選取含有接收器的資源。資源可以是專案、資料夾、機構或帳單帳戶。
- 已啟用:指出接收器的狀態為啟用或停用。
- 類型:接收器的目的地服務,例如
Cloud Logging bucket
。 - 名稱:接收器的 ID,是在建立接收器時提供,例如
_Default
。 - 說明:接收器的說明,是在建立接收器時提供。
- 目的地:要將已路由記錄項目傳送至的目的地完整名稱。
- 建立:接收器建立的日期和時間。
- 上次更新時間:上次編輯接收器的日期和時間。
- 資料量:回報轉送至記錄檔接收器的記錄檔總資料量。這個值包含轉送至記錄檔值區、專案或其他目的地的資料量。
- 查看接收器詳細資料:顯示接收器的名稱、說明、目的地服務、目的地,以及納入和排除篩選器。選取「編輯」會開啟「編輯接收器」面板。
- 「編輯接收器」:開啟「編輯接收器」面板,供您更新接收器的參數。
- 停用接收器:停用接收器,並停止將記錄項目傳送至接收器的目的地。如要進一步瞭解如何停用接收器,請參閱停止將記錄儲存在記錄值區中。
- 啟用接收器:啟用已停用的接收器,並重新開始將記錄檔項目傳送至接收器目的地。
- 「刪除接收器」:刪除接收器,並停止將記錄檔項目傳送至接收器的目的地。
- 排解接收器問題:開啟 Logs Explorer,您可以在其中排解接收器錯誤。
- 查看接收器記錄檔資料量和錯誤率:開啟 Metrics Explorer,您可以在其中查看及分析接收器的資料。
如要查看 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 bucket 目的地,指令如下: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
參考資料。如要查看 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
參考資料。-
前往 Google Cloud 控制台的「記錄檔路由器」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
- 如要找出所有將記錄項目轉送至
_Default
記錄檔儲存空間的接收器,請依目的地篩選接收器,然後輸入_Default
。 針對每個接收器,選取「選單」more_vert,然後選取「停用接收器」。
水槽現已停用,專案水槽也不會再將記錄檔項目轉送至
_Default
值區。 Google Cloud-
前往 Google Cloud 控制台的「記錄檔路由器」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
- 如要找出所有將記錄項目轉送至
_Default
記錄檔儲存空間的接收器,請依目的地篩選接收器,然後輸入_Default
。 - 針對每個接收器,選取「選單」more_vert,然後選取「啟用接收器」。
如要查看 Google Cloud 專案的接收器清單,請使用
gcloud logging sinks list
指令,這對應於 Logging API 方法projects.sinks.list
:gcloud logging sinks list
找出任何會將記錄檔傳送至
_Default
記錄檔儲存空間的接收器。 如要說明接收器,包括查看目的地名稱,請使用gcloud logging sinks describe
指令,這對應於 Logging API 方法projects.sinks.get
:gcloud logging sinks describe SINK_NAME
執行
gcloud logging sinks update
指令並加入--disabled
選項。舉例來說,如要停用_Default
接收器,請使用下列指令:gcloud logging sinks update _Default --disabled
_Default
接收器已停用,不再將記錄項目傳送至_Default
記錄值區。如要查看 Google Cloud 專案的接收器,請呼叫 Logging API 方法
projects.sinks.list
。找出任何會將資料傳送至
_Default
值區的接收器。舉例來說,如要停用
_Default
接收器,請將LogSink
物件中的disabled
欄位設為true
,然後呼叫projects.sink.update
。_Default
接收器已停用,不再將記錄檔項目傳送至_Default
值區。如果使用接收器將記錄項目傳送至其他目的地時發生問題,請參閱排解記錄檔傳送問題。
如要瞭解如何在目的地中查看記錄項目,以及記錄的格式和組織方式,請參閱「在接收器目的地中查看記錄」一文。
如要進一步瞭解如何使用 Logging 查詢語言查詢及篩選記錄,請參閱「Logging 查詢語言」。
In the Google Cloud console, 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 驗證說明文件中的「Authenticate for using REST」。
建立接收器
本節說明如何在 Google Cloud 專案中建立接收器。每個專案最多可建立 200 個接收器。 Google Cloud 如要查看已路由傳送的記錄項目數量和容量,請查看
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
陳述式時,建議您使用括號將子句分組。如要建立接收器,請按照下列步驟操作:
控制台
gcloud
如要建立接收器,請按照下列步驟操作:
REST
如要進一步瞭解如何使用 Logging API 建立接收器,請參閱
LogSink
參考資料。如果收到錯誤通知,請參閱「排解路由和接收器問題」。
目的地路徑格式
如果將記錄檔項目傳送至其他專案中的服務,則必須為接收器提供該服務的完整名稱。同樣地,如果將記錄項目轉送至其他 Google Cloud 專案,則必須為接收器提供目的地專案的完整名稱:
設定目的地權限
本節說明如何授予 Logging Identity and Access Management 權限,將記錄檔項目寫入接收器的目的地。如需 Logging 角色和權限的完整清單,請參閱存取權控管。
建立接收器時,Cloud Logging 會為資源建立共用服務帳戶,除非必要的服務帳戶已存在。如果基礎資源中的所有接收器都使用同一個服務帳戶,系統可能就會顯示該服務帳戶。資源可以是 Google Cloud 專案、機構、資料夾或帳單帳戶。
接收器的寫入者身分是與該接收器相關聯的服務帳戶 ID。除了寫入記錄檔項目來源專案的記錄檔值區以外,所有接收器都有寫入者身分。 Google Cloud 如果是後者,則不需要服務帳戶,因此接收器的寫入者身分欄位在控制台中會列為
None
。API 和 Google Cloud CLI 指令不會回報寫入者身分。下列操作說明適用於專案、資料夾、機構和帳單帳戶:
控制台
gcloud
REST
建議您使用 Google Cloud 控制台或 Google Cloud CLI,將角色授予服務帳戶。
管理接收器
建立接收器後,您可以對其執行下列動作。 對接收器所做的變更可能需要幾分鐘才會套用:
以下說明如何在 Google Cloud 專案中管理接收器。 您可以指定帳單帳戶、資料夾或機構,而非 Google Cloud 專案:
控制台
「記錄路由器」頁面會顯示所選資源中的接收器。 每個資料列都包含接收器的屬性資訊:
每個表格列的「更多動作」選單 more_vert 提供下列選項:
如要依資料欄排序表格,請選取資料欄名稱。
gcloud
REST
停止在記錄檔值區中儲存記錄項目
您可以停用
_Default
接收器和任何使用者定義的接收器。停用接收器後,接收器就不會再將記錄項目傳送至目的地。舉例來說,如果停用_Default
接收器,系統就不會將任何記錄項目轉送至_Default
值區。如果先前儲存的所有記錄項目都已達到 bucket 的保留期限,_Default
bucket 就會變成空白。以下說明如何停用將記錄項目傳送至
_Default
記錄值區的 Google Cloud 專案接收器:控制台
如要重新啟用已停用的接收器,並重新將記錄檔項目傳送至接收器的目的地,請按照下列步驟操作:
gcloud
如要停用專案中其他會將資料傳送至
_Default
bucket 的接收器,請重複執行上述步驟。 Google Cloud如要重新啟用接收器,請使用
gcloud logging sinks update
指令、移除--disabled
選項,並加入--no-disabled
選項:gcloud logging sinks update _Default --no-disabled
REST
如要停用專案中其他會將資料傳送至
_Default
bucket 的接收器,請重複執行上述步驟。 Google Cloud如要重新啟用接收器,請將
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"
如要查看儲存在記錄檔 bucket 中的 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"
) 寫入記錄檔 bucket。開發人員必須查看這些記錄檔,才能觀察及排解 Dataflow 管道問題,而使用者可能無法透過 Dataflow「工作詳細資料」頁面查看工作記錄。後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-10 (世界標準時間)。
-