將控制平面記錄檔傳送至 CloudWatch 記錄 - Amazon EKS

協助改善此頁面

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

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

將控制平面記錄檔傳送至 CloudWatch 記錄

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

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

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

以下叢集控制平面日誌類型可供使用。每個日誌類型皆對應 Kubernetes 控制平面的某個元件。如需進一步了解這些元件的詳細資訊,請參閱 Kubernetes 文件中的 Kubernetes 元件

API服務器api

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

稽核 (audit)

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

驗證器 (authenticator)

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

控制器管理員 (controllerManager)

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

排程器 (scheduler)

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

啟用或停用控制平面記錄

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

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

AWS Management Console
若要啟用或停用控制平面記錄 AWS Management Console
  1. https://console.aws.amazon.com/eks/家裡 #/集群打開 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 記錄檔。

    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 日誌使用者指南

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

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

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

    注意

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

    • KubernetesAPI伺服器元件記錄檔 (api)kube-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伺服器記錄,則在您在伺服器上啟用APIAPI伺服器記錄之前,伺服器記錄檔可能已輪替伺服器上。在啟用API伺服器記錄之前輪換的任何記錄檔都無法匯出至 CloudWatch。

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