將控制平面日誌傳送至 CloudWatch 日誌 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將控制平面日誌傳送至 CloudWatch 日誌

Amazon EKS控制平面日誌可直接將稽核和診斷日誌從 Amazon EKS控制平面提供給帳戶中的 CloudWatch 日誌。這些日誌可讓您輕鬆執行叢集並確保叢集的安全。您可以選取所需的確切日誌類型,並將日誌作為日誌串流傳送至 中每個 Amazon EKS叢集的群組 CloudWatch。您可以使用 CloudWatch 訂閱篩選條件對日誌進行即時分析,或將其轉送至其他 服務 (日誌將以 Base64 編碼並以 gzip 格式壓縮)。如需詳細資訊,請參閱 Amazon CloudWatch 記錄

您可以選擇要為每個新的或現有的 Amazon EKS叢集啟用哪些日誌類型,以開始使用 Amazon EKS控制平面日誌記錄。您可以使用 AWS Management Console、 AWS CLI (版本1.16.139或更高版本) 或透過 Amazon 來啟用或停用每個叢集的每個日誌類型EKSAPI。啟用時,日誌會自動從 Amazon EKS叢集傳送至相同帳戶中的 CloudWatch 日誌。

當您使用 Amazon EKS控制平面記錄時,系統會針對您執行的每個叢集向您收取標準 Amazon EKS定價。對於從叢集傳送至 CloudWatch Logs 的任何日誌,您需要支付標準 CloudWatch Logs 資料擷取和儲存成本。您也需要支付作為叢集一部分佈建的任何 AWS 資源的費用,例如 Amazon EC2執行個體或 Amazon EBS磁碟區。

以下叢集控制平面日誌類型可供使用。每個日誌類型對應至 的元件 Kubernetes 控制平面。若要進一步了解這些元件,請參閱 Kubernetes 中的元件 Kubernetes 文件中)。

API 伺服器api

叢集的API伺服器是控制平面元件,可公開 Kubernetes API。如果您在啟動叢集時或之後不久啟用API伺服器日誌,日誌會包含用來啟動API伺服器的伺服器API旗標。如需詳細資訊,請參閱中的 kube-apiserver稽核政策 Kubernetes 文件中)。

稽核 (audit)

Kubernetes 稽核日誌提供個別使用者、管理員或影響叢集之系統元件的記錄。如需詳細資訊,請參閱中的稽核 Kubernetes 文件中)。

驗證器 (authenticator)

驗證器日誌對 Amazon 而言是唯一的EKS。這些日誌代表 Amazon EKS用於 的控制平面元件 Kubernetes 使用 IAM憑證進行角色型存取控制 (RBAC) 身分驗證。如需詳細資訊,請參閱組織和監視叢集資源

控制器管理員 (controllerManager)

控制器管理員會管理隨附於 的核心控制迴路 Kubernetes。 如需詳細資訊,請參閱kube-controller-manager中的 Kubernetes 文件中)。

排程器 (scheduler)

排程器元件會管理執行的時間和位置 Pods 在您的叢集中。如需詳細資訊,請參閱中的 kube-scheduler Kubernetes 文件中)。

啟用或停用控制平面日誌

根據預設,叢集控制平面日誌不會傳送至 CloudWatch 日誌。您必須個別啟用每個日誌類型,才能傳送叢集的日誌。 CloudWatch 日誌擷取、封存儲存和資料掃描速率適用於已啟用的控制平面日誌。如需詳細資訊,請參閱CloudWatch 定價

若要更新控制平面記錄組態,Amazon 在每個子網路中最多EKS需要五個可用的 IP 地址。當您啟用日誌類型時,將會以日誌詳細資訊等級 2 傳送日誌。

AWS Management Console
若要使用 啟用或停用控制平面日誌 AWS Management Console
  1. 開啟位於 https://console.aws.amazon.com/eks/home#/clusters 的 Amazon EKS主控台。

  2. 選擇叢集名稱以顯示您叢集的資訊。

  3. 選擇可觀測性索引標籤。

  4. 控制平面日誌記錄區段中,選擇管理日誌記錄

  5. 對於每個日誌類型,選擇其日誌類型為開啟或關閉。根據預設,系統會關閉每個日誌類型。

  6. 選擇 Save changes (儲存變更) 以完成操作。

AWS CLI
若要使用 啟用或停用控制平面日誌 AWS CLI
  1. 使用以下命令檢查您的 AWS CLI 版本。

    aws --version

    如果您的 AWS CLI 版本早於 1.16.139,您必須先更新至最新版本。若要安裝或升級 AWS CLI,請參閱《 AWS Command Line Interface使用者指南》中的安裝AWS Command Line Interface

  2. 使用以下 AWS CLI 命令更新叢集的控制平面日誌匯出組態。使用叢集名稱取代 my-cluster 並指定所需的端點存取值。

    注意

    下列命令會將所有可用的日誌類型傳送至 CloudWatch Logs。

    aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}'

    範例輸出如下。

    { "update": { "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9", "status": "InProgress", "type": "LoggingUpdate", "params": [ { "type": "ClusterLogging", "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}" } ], "createdAt": 1553271814.684, "errors": [] } }
  3. 使用以下命令以及上個命令傳回的叢集名稱和更新 ID,監控日誌組態更新的狀態。當狀態出現 Successful 時,您的更新就完成了。

    aws eks describe-update \ --region region-code\ --name my-cluster \ --update-id 883405c8-65c6-4758-8cee-2a7c1340a6d9

    範例輸出如下。

    { "update": { "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9", "status": "Successful", "type": "LoggingUpdate", "params": [ { "type": "ClusterLogging", "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}" } ], "createdAt": 1553271814.684, "errors": [] } }

檢視叢集控制平面日誌

為 Amazon EKS叢集啟用任何控制平面日誌類型後,您可以在 CloudWatch 主控台上檢視它們。

若要進一步了解如何檢視、分析和管理 中的日誌 CloudWatch,請參閱 Amazon CloudWatch Logs 使用者指南

在 CloudWatch 主控台上檢視叢集控制平面日誌
  1. 開啟CloudWatch 主控台 。此連結會開啟主控台及顯示目前可用的日誌群組,並以 /aws/eks 字首進行篩選。

  2. 選擇您要檢視日誌的叢集。日誌群組的名稱格式是 /aws/eks/my-cluster/cluster

  3. 選擇要檢視的日誌串流。以下清單說明每個日誌類型的日誌串流名稱格式。

    注意

    隨著日誌串流資料增加,日誌串流名稱將會輪換。當特定日誌類型有多個日誌串流時,您可以使用最新的 Last Event Time (上次事件時間) 來尋找日誌串流名稱,以檢視最新的日誌串流。

    • Kubernetes API 伺服器元件日誌 (apikube-apiserver-1234567890abcdef01234567890abcde

    • 稽核 (audit)kube-apiserver-audit-1234567890abcdef01234567890abcde

    • 驗證器 (authenticator)authenticator-1234567890abcdef01234567890abcde

    • 控制器管理員 (controllerManager)kube-controller-manager-1234567890abcdef01234567890abcde

    • 排程器 (scheduler)kube-scheduler-1234567890abcdef01234567890abcde

  4. 查看日誌串流事件。

    例如,檢視 頂端時,您應該會看到叢集的初始API伺服器旗標kube-apiserver-1234567890abcdef01234567890abcde

    注意

    如果您在日誌串流開始時未看到API伺服器日誌,則在您啟用API伺服器日誌之前,API伺服器日誌檔案可能會在伺服器上輪換。在啟用API伺服器記錄之前輪換的任何日誌檔案都無法匯出至 CloudWatch。

    不過,您可以建立具有相同 的新叢集 Kubernetes 版本,並在建立叢集時啟用API伺服器記錄。使用相同平台版本的叢集已啟用相同的旗標,因此您的旗標應符合新叢集的旗標。當您完成檢視 中新叢集的旗標時 CloudWatch,您可以刪除新叢集。