查看 GKE 記錄檔


本頁面提供總覽,說明如何尋找及使用 Google Kubernetes Engine (GKE) 記錄。

存取記錄

您可以透過多種方式存取 GKE 記錄:

  • 您可以在 Google Cloud 控制台的下列頁面中查看記錄:

    • Kubernetes Engine

      • 在「叢集」頁面選取叢集,然後選取「記錄」分頁標籤。這個分頁也會提供叢集記錄檔的建議查詢。
      • 在「Workloads」(工作負載) 頁面中選取工作負載。然後按一下「總覽」分頁中的「容器記錄」或「稽核記錄」連結,即可在記錄探索工具中查看記錄,或是選取「記錄」分頁,在相關情境中查看記錄。
    • 記錄:選取「記錄探索器」,然後使用記錄篩選器選取 Kubernetes 資源,例如叢集、節點、命名空間、Pod 或容器記錄。如需入門查詢範例,請參閱「Kubernetes 相關查詢」。

    • 監控:GKE 資訊主頁會顯示叢集、節點和 Pod 等 GKE 資源的指標和記錄。詳情請參閱「查看可觀測性指標」。

  • 使用 Google Cloud CLI:使用 gcloud logging read 指令查詢叢集、節點、Pod 和容器的記錄。

如要自訂記錄檔匯總、記錄檔分析或與第三方系統整合,您也可以使用記錄檔接收器功能,將記錄檔匯出至 BigQuery、Cloud Storage 和 Pub/Sub。

瞭解記錄檔

Cloud Logging 中的記錄檔是記錄項目的集合,而每個記錄項目都對應到一個特定類型的記錄資源

資源類型

以下是 GKE 叢集專屬的資源類型:

記錄資源類型
gke_cluster GKE 叢集作業記錄
k8s_cluster Kubernetes 叢集記錄
k8s_node Kubernetes 節點記錄檔
k8s_pod Kubernetes Pod 記錄檔
k8s_container Kubernetes 容器記錄檔
k8s_control_plane_component Kubernetes 控制層元件記錄檔

GKE 寫入叢集記錄時,每個記錄項目都會包含資源類型。瞭解記錄檔的顯示位置,有助於在需要時輕鬆找到記錄檔。

系統記錄

系統記錄包含下列來源的記錄:

  • 在命名空間 kube-systemistio-systemknative-servinggke-systemconfig-management-system 中執行的所有 Pod。

  • 未容器化的重要服務,包括 docker/containerd 執行階段、kubeletkubelet-monitornode-problem-detectorkube-container-runtime-monitor

  • 如果 VM 執行個體中繼資料 serial-port-logging-enable 設為 true,則為節點序列埠的輸出內容。從 GKE 1.16-13-gke.400 開始,Logging 代理程式會收集節點的序列埠輸出內容。如要停用序列埠輸出記錄功能,請在建立叢集時設定 --metadata serial-port-logging-enable=false。序列埠輸出內容有助於排解 GKE 節點的當機、啟動失敗、開機或關機問題。停用這些記錄可能會限制疑難排解。

系統稽核記錄會顯示在 Cloud Logging 中,名稱如下:

  • projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access - 資料存取記錄
  • projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity - 管理員活動記錄
  • projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event - 系統事件記錄
  • projects/PROJECT_ID/logs/events - Events log (事件記錄)

如需進一步瞭解適用於 Kubernetes 叢集與 GKE 叢集作業資源類型的記錄項目,請參閱稽核記錄說明文件。

系統會寫入其他系統記錄,例如 kube-system 的記錄,詳情請參閱「控管應用程式記錄的收集作業」。

應用程式記錄檔

Kubernetes 容器會收集寫入 STDOUTSTDERR 的工作負載記錄。您可以使用 k8s_container 資源類型,找出工作負載應用程式記錄。記錄會顯示在「記錄」中,名稱如下:

  • projects/PROJECT_ID/logs/stderr:寫入標準錯誤的記錄

  • projects/PROJECT_ID/logs/stdout:寫入標準輸出的記錄

控制層元件記錄檔

如果已為 GKE 叢集啟用控制層記錄,系統就會將特定 Kubernetes 控制層元件 (例如 API 伺服器、排程器和控制器管理工具) 發出的記錄匯出至 Cloud Logging。

這些記錄會使用 k8s_control_plane_component 資源類型,並以以下名稱顯示在 Cloud Logging 中:

  • projects/PROJECT_ID/logs/container.googleapis.com%2Fapiserver

  • projects/PROJECT_ID/logs/container.googleapis.com%2Fscheduler

  • projects/PROJECT_ID/logs/container.googleapis.com%2Fcontroller-manager

控制層存取記錄

如果您使用 GKE 控制層授權,可以為控制層執行個體的所有連入網路連線,以及控制層執行個體中發生的 SSH 事件,啟用選用記錄。然後,您可以將這些控制層存取記錄與資料存取透明化控管機制記錄,以及 Kubernetes API 伺服器的記錄相互對照,選擇性地驗證與控制層例項的連線,是否是 Google 人員獲得授權的管理存取權所致。詳情請參閱「驗證 Google 與叢集控制層的連線」。

這些記錄使用 gke_cluster 資源類型,並以以下名稱顯示在 Cloud Logging 中:

  • projects/PROJECT_ID/logs/container.googleapis.com%2Fkcp_connection
  • projects/PROJECT_ID/logs/container.googleapis.com%2Fkcp_ssh

叢集身分發放記錄

如果您使用 GKE 控制平面授權,為叢集執行自己的憑證授權單位 (CA) 和簽署金鑰,當這些 CA 和金鑰用於在叢集中核發 X.509 憑證或 JSON Web Token (JWT) 時,GKE 會產生稽核記錄。然後,您可以將這些身分證核發記錄與 Kubernetes API 伺服器、憑證授權單位服務和 Cloud Key Management Service 的記錄建立關聯,追蹤叢集中這些憑證和 JWT 的使用情況。詳情請參閱「驗證身分證件核發和使用情形」。

這些記錄是系統事件稽核記錄,使用 gke_cluster 資源類型,並在 Cloud Logging 中顯示下列名稱:

  • projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event

在 Logging 使用者介面中尋找記錄

您可以在 Logging 使用者介面中,使用記錄檔探索工具查看記錄檔。

記錄檔探索工具

使用查詢產生器時,您可以從下拉式選單選取欄位,或手動新增查詢參數來建立查詢。舉例來說,如果您要查看 GKE 叢集的記錄,可以先選取或搜尋 Kubernetes 叢集資源類型,然後選取位置和叢集名稱。然後在「記錄名稱」選取器中選取「活動記錄」,即可縮小搜尋範圍。

您也可以使用 記錄檔欄位探索工具,在 Logs Explorer 中建構搜尋查詢。這個部分會顯示指定記錄檔欄位的記錄項目數量,並依數量遞減排序。使用記錄檔欄位探索工具查詢 GKE 記錄檔特別實用,因為記錄檔欄位探索工具可讓您選取資源的 Kubernetes 值來建構查詢。舉例來說,您可以使用「記錄檔欄位探索器」,選取特定叢集、命名空間、Pod 名稱的記錄檔,然後選取容器名稱。

如要進一步瞭解如何使用記錄檔探索工具,請參閱 Logging 說明文件。

查詢範例

如要尋找特定記錄,請使用下列查詢範例,協助您找出 GKE 記錄:

排解記錄檔問題

如果您從 GKE 叢集寫入大量記錄,可能會發現許多記錄持續未顯示在 Cloud Logging 中。可能原因是記錄資料量超過 GKE 支援的記錄處理量。

每個節點的記錄輸送量最多可達 100 KB/s。如果 GKE 叢集中的任何節點需要比這更高的記錄吞吐量,建議提高記錄代理程式的吞吐量