排解轉送及儲存記錄的問題

本文說明常見的路由和儲存空間問題,以及如何使用Cloud de Confiance 控制台查看及排解設定錯誤或非預期結果。

如需查看記錄資料的一般資訊,請參閱「查看接收器目的地中的記錄檔」。

疑難排解記錄檔轉送問題

本節說明如何排解路由傳送記錄檔項目時的常見問題。

目的地含有不必要的記錄項目

您正在查看轉送至目的地的記錄項目,並判斷目的地包含不想要的記錄項目。

如要解決這個問題,請更新將記錄項目轉送至目的地的接收器排除篩選器。排除篩選器可讓您排除特定記錄項目,避免轉送至目的地。

舉例來說,假設您建立匯總接收器,將機構中的記錄項目轉送至目的地。如要排除特定專案的記錄項目,避免轉送至目的地,請在接收器中新增下列排除篩選器:

logName:projects/PROJECT_ID

您也可以使用邏輯 OR 運算子聯結 logName 子句,從多個專案排除記錄項目。

目的地缺少記錄項目

最常見的接收器相關問題,或許是記錄項目似乎未顯示在接收器的目的地中。

有時系統不會產生錯誤,但您可能會發現,嘗試在目的地存取記錄項目時,這些項目無法使用。如果您懷疑接收器未正確轉送記錄項目,請檢查接收器的系統記錄指標:

  • exports/byte_count:已轉送的記錄項目位元組數。
  • exports/log_entry_count:已路由的記錄項目數量。
  • exports/error_count:無法順利傳送的記錄項目數量。

指標具有標籤,可記錄依接收器名稱和目的地名稱分類的計數,並顯示接收器是否成功或無法順利轉送記錄項目。

如果接收器指標顯示接收器效能不如預期,可能原因和解決方法如下:

延遲時間

  • 建立或更新接收器後,系統未收到任何相符的記錄項目,只會傳送新的記錄項目。

    請稍候一小時,然後再次檢查目的地。

  • 相符的記錄項目遲到。

    您需要經過一段時間之後才能在目的地中看到記錄項目,請稍候幾小時,然後再次檢查目的地。

檢視範圍/篩選器不正確

  • 您用來查看儲存在記錄檔 bucket 中的記錄項目的範圍有誤。

    將搜尋範圍限定在一或多個記錄檢視,方法如下:

    • 如果您使用 Logs Explorer,請點選「縮小範圍」按鈕。

    • 如果您使用 gcloud CLI,請使用 gcloud logging read 指令並新增 --view=AllLogs 旗標。

  • 在接收器目的地中選取及查看資料時使用的時間範圍太窄。

    在接收器目的地中選取資料時,請嘗試擴大時間範圍。

接收器篩選器發生錯誤

  • 接收器的篩選器不正確,因此未擷取您預期會顯示在目的地中的記錄項目。

    在 Cloud de Confiance 控制台使用「記錄檔路由器」編輯接收器的篩選器。如要確認輸入的篩選器是否正確,請在「編輯接收器」面板中選取「預覽記錄」。這會在新的分頁中開啟 Logs Explorer,並預先填入篩選條件。如需查看及管理接收器的操作說明,請參閱「管理接收器」一節。

查看錯誤

針對每個支援的接收器目的地,記錄功能會提供設定不當的接收器錯誤訊息。

您可以透過幾種方式查看這些與接收器相關的錯誤,詳情請參閱下列章節:

錯誤記錄檔

如要詳細檢查接收器相關錯誤,建議查看接收器產生的錯誤記錄檔項目。如要進一步瞭解如何查看記錄項目,請參閱「使用 Logs Explorer 查看記錄檔」。

您可以在 Logs Explorer 的查詢編輯器窗格中使用下列查詢,查看接收器的錯誤記錄。這個查詢也適用於 Logging API 和 gcloud CLI。

複製查詢前,請將變數 SINK_NAME 替換為要排解問題的接收器名稱。您可以在 Cloud de Confiance 控制台的「Log Router」頁面找到接收器的名稱。

logName:"logging.googleapis.com%2Fsink_error"
resource.type="logging_sink"
resource.labels.name="SINK_NAME"

舉例來說,如果接收器的名稱為 my-sink-123,則記錄項目可能如下所示:

{
   errorGroups: [
   0: {
   id: "COXu96aNws6BiQE"
   }]
   insertId: "170up6jan"
   labels: {
      activity_type_name: "LoggingSinkConfigErrorV2"
      destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
      error_code: "topic_not_found"
      error_detail: ""
      sink_id: "my-sink-123"
   }
   logName: "projects/my-project/logs/logging.googleapis.com%2Fsink_error"
   receiveTimestamp: "2024-07-11T14:41:42.578823830Z"
   resource: {
   labels: {
      destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
      name: "my-sink-123"
      project_id: "my-project"
   }
   type: "logging_sink"
   }
   severity: "ERROR"
   textPayload: "Cloud Logging sink configuration error in my-project, sink my-sink-123: topic_not_found ()"
   timestamp: "2024-07-11T14:41:41.296157014Z"
}

LogEntry 欄位 labels 及其巢狀鍵值資訊可協助您找出接收器錯誤的來源,其中包含受影響的資源、受影響的接收器和錯誤碼。labels.error_code 欄位包含錯誤的簡短說明,可讓您瞭解需要重新設定接收器的哪個元件。

如要解決這項失敗問題,請編輯接收器。舉例來說,您可以使用「記錄檔路由器」頁面編輯接收器:

前往「記錄檔路由器」

電子郵件通知

重要聯絡人會傳送接收器設定錯誤電子郵件通知,給指派給 Cloud de Confiance 專案或其父項資源技術通知類別的聯絡人。如果資源未設定技術通知的聯絡人,系統會將電子郵件通知傳送給資源的 IAM 專案擁有者 roles/owner

針對每個記錄檔接收器名稱和錯誤的組合,系統每天會傳送一則通知。

電子郵件訊息包含下列資訊:

  • 資源 ID:設定接收器時的 Cloud de Confiance 專案Cloud de Confiance 或其他資源名稱。
  • 接收器名稱:含有設定錯誤的接收器名稱。
  • 接收器目的地:接收器路由目的地的完整路徑;例如:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
  • 錯誤代碼:錯誤類別的簡短說明,例如 topic_not_found
  • 錯誤詳細資料:錯誤的詳細資訊,包括排解根本錯誤的建議。

這封電子郵件的寄件者是 logging-noreply@google.com

主旨類似於:Subject: [ACTION REQUIRED] Cloud Logging sink configuration error in my-project

如要查看及管理接收器,請使用「記錄檔路由器」頁面:

前往「記錄檔路由器」

清單中會以 Cloud Logging sink configuration error 符號標示適用於資源的任何接收器設定錯誤。每個錯誤都包含連結,可連至有問題的接收器所產生的其中一個記錄項目。如要詳細檢查基礎錯誤,請參閱「錯誤記錄」一節。

接收器錯誤類型

以下各節說明與接收器相關的廣泛錯誤類別,以及如何排解這些錯誤。

目的地不正確

如果您已設定接收器,但 Logging 嘗試將記錄項目轉送至目的地時,卻顯示找不到目的地的設定錯誤,可能的原因如下:

  • 您指定的接收器目的地設定含有錯字或其他格式錯誤。

    您需要更新接收器的設定,才能正確指定現有目的地。

  • 指定的目的地可能已遭刪除。

    您可以變更接收器的設定,改用其他現有目的地,或是以相同名稱重新建立目的地。

如要解決這類失敗問題,請編輯接收器。舉例來說,您可以使用「記錄檔路由器」頁面編輯接收器:

前往「記錄檔路由器」

找到目的地後,接收器就會開始轉送記錄項目,而 Logging 收到符合篩選條件的新記錄項目時,也會轉送這些項目。

管理水槽問題

如果您停用接收器,停止在記錄檔 bucket 中儲存記錄項目,但仍看到系統傳送記錄項目,請稍待幾分鐘,讓接收器套用變更。

權限問題

如果接收器嘗試將記錄項目轉送至目的地,但沒有適當的 IAM 權限,接收器就會回報錯誤 (您可以查看),並略過該記錄項目。

建立接收器時,必須授予接收器服務帳戶適當的目的地權限。如果您在 Cloud de Confiance 控制台中建立接收器,且接收器與Cloud de Confiance 專案位於同一位置,則 Cloud de Confiance 控制台通常會自動指派這些權限。不過,如果您在其他Cloud de Confiance 專案中建立接收器,或是使用 gcloud CLI 或 Logging API 建立接收器,則必須手動設定權限。

如果接收器發生權限相關錯誤,請新增必要權限,或更新接收器以使用其他目的地。如需更新這些權限的操作說明,請參閱目的地權限

建立接收器後,需要稍待片刻,才能使用接收器的新服務帳戶授權寫入目的地。修正權限後,當 Logging 收到符合篩選條件的新記錄項目時,接收器就會開始傳送記錄項目。

組織政策問題

如果您嘗試將記錄項目轉送,但遇到機構政策限制 Logging 寫入接收器目的地,接收器就無法轉送至所選目的地,並會回報錯誤。

如果看到與組織政策相關的錯誤訊息,請採取下列行動:

  • 更新目的地適用的機構政策,移除導致接收器無法轉送記錄檔項目的限制。前提是您必須具備更新機構政策的適當權限。

    您可以檢查是否有資源位置限制 (constraints/gcp.resourceLocations)。這項限制會決定資料的儲存位置。此外,部分服務支援的限制可能會影響記錄檔接收器。舉例來說,選取 Pub/Sub 目的地時,可能會受到多項限制。如要查看可能的限制清單,請參閱「組織政策限制」。

    如需操作說明,請參閱「建立及編輯政策」。

  • 如果無法更新機構政策,請在「記錄檔路由器」頁面中更新接收器,改用符合規定的目的地。

    前往「記錄檔路由器」

當機構政策不再禁止接收器寫入目的地,且 Logging 收到符合篩選條件的新記錄項目時,接收器就會開始傳送記錄項目。

加密金鑰問題

如果您使用加密金鑰 (無論是透過 Cloud Key Management Service 管理,還是由您管理) 加密接收器目的地中的資料,可能會看到相關錯誤。以下列出一些可能的問題及修正方法:

  • 找不到 Cloud KMS 金鑰。

    • 找不到 Cloud de Confiance 含有設定用於加密資料的 Cloud KMS 金鑰的專案。

    • 請改用現有專案中的有效 Cloud KMS 金鑰。Cloud de Confiance

  • Cloud KMS 金鑰的位置與目的地位置不符。

    • 如果包含 Cloud KMS 金鑰的 Cloud de Confiance 專案位於與目的地不同的區域,加密就會失敗,且接收器無法將資料傳送至該目的地。

    • 請使用 Cloud de Confiance 專案中的 Cloud KMS 金鑰,該專案的區域與接收器的目的地相符。

  • 接收器的服務帳戶遭拒存取加密金鑰。

    • 即使已使用正確的服務帳戶權限成功建立接收器,如果接收器目的地使用的加密金鑰未授予服務帳戶足夠的權限來加密或解密資料,系統仍會顯示這則錯誤訊息。

    • 為接收器 writerIdentity 欄位中指定的服務帳戶,授予目的地所用金鑰的 Cloud KMS CryptoKey Encrypter/Decrypter 角色。此外,請確認已啟用 Cloud KMS API。

配額問題

接收器寫入記錄項目時,系統會對Cloud de Confiance 建立接收器的專案套用目的地專屬配額。如果配額用盡,接收器就會停止將記錄項目轉送至目的地。

舉例來說,接收器可能太快轉送過多的記錄項目。

如要修正配額用盡的問題,請更新接收器的篩選器,減少相符的記錄項目數量,藉此降低傳送的記錄檔資料量。您可以在篩選器中使用 sample 函式,選取記錄項目總數的一小部分。

配額充足時,接收器會將記錄項目轉送至接收器的目的地。

如要瞭解路由記錄項目時可能適用的限制,請參閱適當目的地的配額資訊:

除了常見的接收器錯誤類型,以下也列出最常見的特定目的地錯誤類型,以及修正方式。

轉送至 Cloud Logging 值區的錯誤

您可能會遇到這種情況:在記錄檔探索工具中,您看到透過接收器排除的記錄項目。如果符合下列任一條件,您仍可查看這些記錄項目:

  • 您在產生記錄項目的 Cloud de Confiance 專案中執行查詢。

    如要修正這個問題,請確認您是在正確的Cloud de Confiance 專案中執行查詢。

  • 排除的記錄項目已傳送至多個記錄檔儲存空間;您看到的是您要排除的記錄檔副本。

    如要修正這個問題,請在「記錄路由器」頁面中檢查接收器,確認您未在其他接收器的篩選器中納入記錄項目。

  • 您有權存取記錄項目傳送至的記錄檔 bucket 中的檢視畫面。在這種情況下,系統預設會顯示這些記錄項目。

    如要避免在 Logs Explorer 中看到這些記錄項目,可以縮小搜尋範圍,只搜尋來源 Cloud de Confiance 專案或 bucket。

排解記錄檔儲存問題

為什麼我無法刪除這個值區?

如要刪除值區,請按照下列步驟操作:

  • 確認您具備刪除值區的適當權限。如需所需權限清單,請參閱「使用 IAM 控管存取權」。

  • 列出 bucket 的屬性,判斷 bucket 是否已鎖定。如果 bucket 已鎖定,請檢查 bucket 的保留期限。鎖定的值區必須等到所有記錄檔都達到保留期限,才能刪除。

哪些服務帳戶正在將記錄檔轉送至我的值區?

如要判斷是否有任何服務帳戶具備將記錄檔轉送至值區的 IAM 權限,請按照下列步驟操作:

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

    前往 IAM

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

  2. 在「權限」分頁中,按「角色」查看。您會看到一個表格,其中列出與Cloud de Confiance 專案相關聯的所有 IAM 角色和主體。

  3. 在表格的「Filter」(篩選器)文字方塊 中,輸入「Logs Bucket Writer」(記錄檔 Bucket 寫入者)

    畫面上會顯示具備「記錄儲存空間寫入者」角色的所有主體。如果主體是服務帳戶,其 ID 會包含 s3ns-system.iam.gserviceaccount.com 字串。

  4. 選用:如要移除服務帳戶,使其無法將記錄檔傳送至 Cloud de Confiance 專案,請選取服務帳戶的核取方塊,然後按一下「移除」

Why do I see logs for a Cloud de Confiance project even though I excluded them from my _Default sink?

您可能正在集中 Cloud de Confiance 專案的記錄值區中查看記錄,該專案會匯總整個機構的記錄。

如果您使用 Logs Explorer 存取這些記錄,並看到從 _Default 接收器排除的記錄,則檢視畫面可能設為Cloud de Confiance 專案層級。

如要修正這個問題,請在「縮小範圍」選單中選取「記錄檢視」,然後選取與Cloud de Confiance 專案中 _Default 值區相關聯的記錄檢視。您應該不會再看到排除的記錄。