Amazon EKS 控制层面日志记录 - Amazon EKS

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

Amazon EKS 控制层面日志记录

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

您可以通过选择您想要为每个新的或现有 Amazon EKS 集群启用的日志类型来开始使用 Amazon EKS 控制层面日志记录。您可以使用每个集群启用或禁用日志类型,使用AWS Management Console、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 唯一的身份验证器日志。这些日志代表亚马逊 EKS 用于 Kubernetes 的控制平面组件基于角色的访问控制(RBAC) 使用 IAM 证书进行身份验证。有关更多信息,请参阅 集群身份验证

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

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

启用和禁用控制层面日志

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

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

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

  1. 打开Amazon EKS 控制台

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

  3. 选择配置选项卡。

  4. Unts日志系统中,选择管理日志

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

  6. 选择保存更改。以完成操作。

使用 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 命令更新集群的控制层面日志导出配置。替换您的集群名称和所需的终端节点访问值。

    注意

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

    aws eks update-cluster-config \ --region <region-code> \ --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 describe-update \ --region <region-code>\ --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 用户指南

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

  1. 打开CloudWatch 控制台。此链接将打开控制台,显示您当前可用的日志组,并使用/aws/eksprefix.

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

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

    注意

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

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

    • 审计 (auditkube-apiserver-audit-<nnn...>

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

    • 控制器管理器 (controllerManagerkube-controller-manager-<nnn...>

    • 计划程序 (schedulerkube-scheduler-<nnn...>