Amazon EKS 控制层面日志记录 - Amazon EKS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon EKS 控制层面日志记录

Amazon EKS 控制层面日志记录将审计和诊断日志直接从 Amazon EKS 控制层面提供到您账户中的 CloudWatch Logs。这些日志可让您轻松地保护和运行您的集群。您可以选择所需的确切的日志类型,日志将作为日志流发送到 CloudWatch 中的每个 Amazon EKS 集群的组。

您可以通过选择您想要为每个新的或现有 Amazon EKS 集群启用的日志类型来开始使用 Amazon EKS 控制层面日志记录。您可以使用 AWS 管理控制台、AWS CLI(版本 1.16.139 或更高版本)或通过 Amazon EKS API 按集群启用或禁用每种日志类型。启用后,日志将从 Amazon EKS 集群自动发送到同一账户中的 CloudWatch Logs。

使用 Amazon EKS 控制层面日志记录时,您运行的每个集群将按标准 Amazon EKS 定价收费。对于从集群发送到 CloudWatch Logs 的任何日志,将向您收取标准 CloudWatch Logs 数据提取和存储费用。您还需要为预配置为集群一部分的任何 AWS 资源付费,如 Amazon EC2 实例或 Amazon EBS 卷。

以下集群控制层面日志类型可用。每个日志类型对应一个 Kubernetes 控制层面组件。要了解有关这些组件的更多信息,请参阅 Kubernetes 文档中的 Kubernetes 组件

  • Kubernetes API 服务器组件日志 (api) – 集群的 API 服务器是公开 Kubernetes API 的控制层面组件。有关更多信息,请参阅 Kubernetes 文档中的 kube-apiserver

  • 审计 (audit) – Kubernetes 审计日志提供单个用户、管理员或影响集群的系统组件的记录。有关更多信息,请参阅 Kubernetes 文档中的审计

  • 身份验证器 (authenticator) – 身份验证器日志对于 Amazon EKS 是唯一的。这些日志表示 Amazon EKS 用于使用 IAM 凭证的 Kubernetes 基于角色的访问控制 (RBAC) 身份验证的控制层面组件。有关更多信息,请参阅 集群身份验证

  • 控制器管理器 (controllerManager) – 控制器管理器管理 Kubernetes 附带的核心控制环。有关更多信息,请参阅 Kubernetes 文档中的 kube-controller-manager

  • 计划程序 (scheduler) – 计划程序组件管理在集群中运行 Pod 的时间和位置。有关更多信息,请参阅 Kubernetes 文档中的 kube-scheduler

启用和禁用控制层面日志

默认情况下,集群控制层面日志不会发送到 CloudWatch Logs。您必须单独启用每个日志类型来为集群发送日志。CloudWatch Logs 接收、存档存储和数据扫描费率适用于启用的控制层面日志。有关更多信息,请参阅 CloudWatch 定价

启用日志类型后,发送的日志具有详细程度级别 2

使用控制台启用或禁用控制层面日志

  1. Open the Amazon EKS console at https://console.amazonaws.cn/eks/home#/clusters.

  2. 选择集群的名称可以显示集群信息。

  3. Select the Configuration tab.

  4. Logging (日志记录) 下,选择 Update (更新)

  5. 对于每个日志类型,选择日志类型应为 Enabled (已启用) 还是 Disabled (已禁用)。默认情况下,每个日志类型均为已禁用

  6. 选择 Update (更新) 完成操作。

使用 AWS CLI 启用或禁用控制层面日志

  1. 使用以下命令查看您的 AWS CLI 版本。

    aws --version

    如果您的 AWS CLI 版本低于 1.16.139,则必须先更新到最新版本。To install or upgrade the AWS CLI, see Installing the AWS command line interface in the AWS Command Line Interface 用户指南.

  2. 使用下面的 AWS CLI 命令更新集群的控制层面日志导出配置。替换您的集群名称和所需的终端节点访问值。

    注意

    以下命令将所有可用日志类型发送到 CloudWatch Logs。

    aws eks --region <region-code> update-cluster-config --name <prod> \ --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 --region <region-code> describe-update --name <prod> --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 User Guide

在 CloudWatch 控制台上查看集群控制层面日志

  1. 打开 CloudWatch 控制台 (https://console.aws.amazon.com/cloudwatch/home#logs:prefix=/aws/eks)。此 URL 将显示您当前可用的日志组,并使用 /aws/eks 前缀筛选它们。

  2. 选择您要查看日志的集群。日志组名称格式为 /aws/eks/<cluster-name>/cluster

  3. 选择要查看的日志流。以下列表介绍了每个日志类型的日志流名称格式。

    注意

    随着日志流数据增加,日志流名称将轮换。当某个日志类型存在多个日志流时,您可以通过查找包含最新的上次事件时间的日志流名称来查看最新的日志流。

    • Kubernetes API 服务器组件日志 (api)kube-apiserver-<nnn...>

    • Audit (audit)kube-apiserver-audit-<nnn...>

    • Authenticator (authenticator)authenticator-<nnn...>

    • Controller manager (controllerManager)kube-controller-manager-<nnn...>

    • Scheduler (scheduler)kube-scheduler-<nnn...>