View a markdown version of this page

存取 EKS 功能控制器日誌 - Amazon EKS

協助改進此頁面

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

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

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

存取 EKS 功能控制器日誌

ACK、kro 和 Argo CD 的 EKS 功能控制器會在叢集外部執行受 AWS管基礎設施。您可以使用 Amazon CloudWatch Vended Logs 為這些控制器設定日誌交付,讓您了解控制器行為以進行監控和故障診斷。

日誌會以結構化 JSON 格式交付,並包含操作欄位,例如日誌層級、訊息、控制器名稱和對帳識別符。交付前會先篩選內部 AWS 中繼資料,您只會收到與功能控制器相關的操作日誌內容。

支援的日誌類型

每個 功能都有一或多個日誌類型,您可以獨立設定為 CloudWatch Vended Logs 交付來源。

ACK

  • EKS_CAPABILITY_ACK_LOGS

kro

  • EKS_CAPABILITY_KRO_LOGS

Argo CD

  • EKS_CAPABILITY_ARGOCD_APPLICATION_LOGS

  • EKS_CAPABILITY_ARGOCD_APPLICATIONSET_LOGS

  • EKS_CAPABILITY_ARGOCD_COMMITSERVER_LOGS

  • EKS_CAPABILITY_ARGOCD_REPOSERVER_LOGS

  • EKS_CAPABILITY_ARGOCD_SERVER_LOGS

ACK 使用涵蓋所有 ACK 服務控制器的單一日誌類型。日誌記錄包含 controllerGroup 欄位 (例如 s3.services.k8s.awsrds.services.k8s.aws),可識別哪些 ACK 服務控制器產生日誌。您可以使用此欄位來篩選 CloudWatch Logs Insights 或其他查詢工具中特定服務控制器的日誌。

Argo CD 有五種不同的日誌類型,每個控制器元件一個。這可讓您僅啟用所需控制器的記錄,並將其路由到不同的目的地。

設定日誌交付

若要設定功能控制器日誌交付,請使用 AWS 管理主控台 或 Amazon CloudWatch Logs API。如需詳細設定指示,請參閱《Amazon CloudWatch Logs 使用者指南》中的從 AWS 服務啟用記錄。每個功能控制器都可以設定為個別的 CloudWatch Vended Logs 交付來源,因此您可以選擇要接收的日誌。

主控台

  1. 在以下網址開啟 Amazon EKS 主控台:https://console.aws.amazon.com/eks/home#/clusters。

  2. 選取您的叢集名稱。

  3. 選擇功能索引標籤,然後選取您的功能。

  4. 日誌交付區段中,選擇新增

  5. 選取您 功能的日誌類型,然後選擇目的地。

  6. 選擇新增以建立交付。

使用 Amazon CloudWatch APIs

設定記錄需要三個步驟:

  1. 使用 CloudWatch PutDeliverySource API 建立 功能的交付來源。使用 功能 ARN 做為 ,resourceArn並指定所需的日誌類型。

  2. 使用 建立交付目的地PutDeliveryDestination。指定 CloudWatch 日誌群組、S3 儲存貯體或 Amazon Data Firehose 交付串流的 ARN。

  3. 建立交付以使用 連接來源和目的地CreateDelivery

您可以使用 describe-capability命令擷取功能 ARN:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-capability \ --query 'capability.capabilityArn' --output text

您可以設定單一功能 (交付來源),透過建立多個交付將日誌傳送至多個目的地。您也可以將日誌從多個功能傳送至相同的目的地。

IAM 許可

根據選取的目的地,您可能需要為 CloudWatch 日誌群組、S3 儲存貯體或 Data Firehose 交付串流設定 IAM 政策或角色,以確保日誌交付成功。如果您要跨 AWS 帳戶傳送日誌,請使用 PutDeliveryDestinationPolicy API 來設定允許交付至目的地的 IAM 政策。如需其他資訊,請參閱 CloudWatch Vended Logs 許可文件

範例:使用 CloudWatch Logs Insights 查詢日誌

若要檢視所有控制器的錯誤日誌:

fields @timestamp, controller, message, error | filter level = "error" | sort @timestamp desc | limit 50

如需更多查詢範例,包括依服務控制器篩選、追蹤對帳週期和 Argo CD 應用程式篩選,請參閱使用控制器日誌進行故障診斷

檢視您的日誌

設定日誌交付後,日誌會交付到您指定的目的地。存取日誌的方法取決於您選擇的目的地類型:

  • CloudWatch Logs — 在 CloudWatch Logs 主控台中檢視日誌、使用 AWS CLI 命令,或搭配 CloudWatch Logs Insights 進行查詢。

  • Amazon S3 — 透過 S3 主控台、 AWS CLI 或 Amazon Athena 等分析工具,將日誌作為 S3 儲存貯體中的物件存取。

  • Amazon Data Firehose — 日誌會串流到您設定的 Firehose 目標 (例如 S3、OpenSearch Service、Redshift 等)。

定價

根據您選擇的交付目的地,CloudWatch Vended Logs 會收取日誌交付和儲存的費用。與標準 CloudWatch Logs 相比,CloudWatch Vended Logs 以更低的價格使用內建 AWS 身分驗證和授權來實現可靠、安全的日誌交付。如需詳細資訊,請參閱 CloudWatch 定價頁面的已修訂日誌一節