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

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

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

排解記錄檔轉送問題

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

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

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

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

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

logName:projects/PROJECT_ID

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

目的地缺少記錄項目

最常見的接收器相關問題,或許是記錄檔項目似乎從接收器的目的地消失了。

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

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

這些指標會記錄接收器名稱和目的地名稱的計數,並顯示接收器是否成功或無法順利傳送記錄項目。

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

延遲時間

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

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

  • 相符的記錄項目遲到。

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

檢視範圍/篩選器不正確

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

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

    • 如果您使用記錄檔探索工具,請點選「縮小範圍」按鈕。

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

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

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

接收器篩選器發生錯誤

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

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

查看錯誤

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

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

  • 查看接收器產生的錯誤記錄。
  • 透過電子郵件接收接收器錯誤通知。這封電子郵件的寄件者是「logging-noreply@google.com」。

錯誤記錄檔

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

您可以在記錄檔探索工具的查詢編輯器窗格中使用下列查詢,查看接收器的錯誤記錄。相同的查詢適用於 Logging API 和 gcloud CLI。

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

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 欄位包含錯誤的簡短說明,可讓您瞭解需要重新設定接收器的哪個元件。

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

前往「記錄檔路由器」

電子郵件通知

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

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

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

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

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

前往「記錄檔路由器」

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

接收器錯誤類型

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

目的地不正確

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

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

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

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

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

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

前往「記錄檔路由器」

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

管理接收器問題

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

權限問題

如果接收器嘗試傳送記錄項目,但缺少接收器目的地適用的 IAM 權限,接收器就會回報錯誤 (您可以查看),並略過記錄項目。

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

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

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

機構政策問題

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

如果看到與機構政策相關的錯誤,請採取下列行動:

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

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

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

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

    前往「記錄檔路由器」

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

加密金鑰問題

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

  • 找不到 Cloud KMS 金鑰。

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

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

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

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

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

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

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

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

配額問題

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

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

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

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

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

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

轉送至 Cloud Logging 值區的錯誤

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

  • 您在 Trusted Cloud 專案中執行查詢,該專案產生了記錄項目。

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

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

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

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

    如要避免在記錄檔探索器中看到這些記錄項目,可以縮小搜尋範圍,只搜尋來源 Trusted Cloud 專案或 bucket。

排解記錄儲存問題

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

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

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

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

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

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

  1. 前往 Trusted Cloud 控制台的「IAM」(身分與存取權管理) 頁面:

    前往 IAM

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

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

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

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

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

即使我已從 _Default接收器排除專案,為什麼還是會看到該專案的記錄? Trusted Cloud

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

如果您使用記錄檔探索工具存取這些記錄,並看到從 _Default 接收器排除的記錄,則檢視畫面可能設為Trusted Cloud 專案層級。

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