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

Amazon EKS 控制面板日志记录

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

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

使用 Amazon EKS 控制层面日志记录时,您运行的每个集群将按标准 Amazon EKS 定价收费。对于从集群发送到 CloudWatch Logs 的任何日志,将向您收取标准 CloudWatch Logs 数据提取和存储费用。您还需要为预置为集群一部分的任何Amazon资源付费,如 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, Role based access control) 身份验证的控制面板组件。有关更多信息,请参阅集群管理

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

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

启用和禁用控制层面日志

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

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

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

  1. 打开 Amazon EKS console(Amazon EKS 控制台)

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

  3. Logging(日志记录)选项卡上,选择 Manage logging(管理日志记录)。

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

  5. 选择 Save changes(保存更改)以完成操作。

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

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

    aws --version

    如果您的 Amazon CLI 版本低于 1.16.139,则必须先更新到最新版本。要安装或升级 Amazon CLI,请参阅 Amazon Command Line Interface 用户指南中的安装 Amazon Command Line Interface

  2. 使用下面的 Amazon 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 console(CloudWatch 控制台)。此链接将打开控制台并显示您当前可用的日志组,并使用 /aws/eks 前缀筛选它们。

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

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

    注意

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

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

    • 审计 (audit)kube-apiserver-audit-<nnn...>

    • 身份验证器 (authenticator)authenticator-<nnn...>

    • 控制器管理器 (controllerManager)kube-controller-manager-<nnn...>

    • 调度器 (scheduler)kube-scheduler-<nnn...>