在EKS Kubernetes集群中启用CloudWatch日志记录

时间:2020-02-23 14:30:23  来源:igfitidea点击:

在AWS中安装EKS群集后,由于数据摄取和存储成本,默认情况下未为控制平面启用日志记录。 Amazon EKS控制平面日志记录直接从Amazon EKS控制平面向我们帐户中的CloudWatch Logs提供审计和诊断日志,从而轻松保护和运行集群。我们可以灵活选择所需的确切日志类型,并将它们作为日志流发送到CloudWatch中每个Amazon EKS集群的组。

我们之前已经完成了有关使用eksctl安装EKS Cluster的单独教程。确认AWS账户中是否有活动的Kubernetes EKS集群。

$eksctl get cluster
NAME			REGION
prod-eks-cluster	eu-west-1

我们可以为每个新的或者现有的Amazon EKS集群启用多种Amazon EKS控制平面日志类型。

Kubernetes API服务器组件日志(api)控制平面API日志审计(audit)日志Kubernetes审计日志提供了影响我们集群的单个用户,管理员或者系统组件的记录.Authenticator(authenticator)日志唯一到Amazon EKS。这些日志代表Amazon EKS使用IAM凭证用于Kubernetes基于角色的访问控制(RBAC)身份验证的控制平面组件。控制器管理器(controllerManager)日志控制器管理器管理Kubernetes随附的核心控制循环。计划程序日志)计划程序组件管理在集群中何时何地运行Pod。

在EKS群集中启用Control Plane CloudWatch日志记录

请注意,CloudWatch Logs的接收,归档存储和数据扫描速率适用于已启用的控制平面日志。有关更多信息,请参阅CloudWatch定价。

可以在AWS控制台上检查日志记录状态。

我们可以使用AWS CLI启用日志记录,也可以使用eksctl命令行工具。

使用eksctl启用EKS控制平面日志记录

使用的命令是:

eksctl utils update-cluster-logging [flags]

我们可以使用以下命令查看所有可用选项:

eksctl utils update-cluster-logging --help

要启用所有类型的日志,请使用all或者*

eksctl utils update-cluster-logging --enable-types all

支持的日志类型包括:allnoneapiauditauthenticatorcontrollerManagerscheduler

要启用审核日志,请运行:

eksctl utils update-cluster-logging --enable-types audit

要启用所有控制器控制器日志,请运行:

eksctl utils update-cluster-logging --enable-types=all --disable-types=controllerManager

对我来说,请启用prod-eks-cluster群集中的所有日志类型:

eksctl utils update-cluster-logging --enable-types all --cluster prod-eks-cluster --region eu-west-1 --approve

命令执行输出:

[ℹ]  eksctl version 0.25.0
[ℹ]  using region eu-west-1
[ℹ]  will update CloudWatch logging for cluster "prod-eks-cluster" in "eu-west-1" (enable types: api, audit, authenticator, controllerManager, scheduler & no types to disable)
c[✔]  configured CloudWatch logging for cluster "prod-eks-cluster" in "eu-west-1" (enabled types: api, audit, authenticator, controllerManager, scheduler & no types disabled)

日志记录状态应更改为已启用。

要禁用,请使用以下命令:

$eksctl utils update-cluster-logging --disable-types all --cluster prod-eks-cluster --region eu-west-1 --approve
[ℹ]  eksctl version 0.25.0
[ℹ]  using region eu-west-1
[ℹ]  will update CloudWatch logging for cluster "prod-eks-cluster" in "eu-west-1" (no types to enable & disable types: api, audit, authenticator, controllerManager, scheduler)
[✔]  configured CloudWatch logging for cluster "prod-eks-cluster" in "eu-west-1" (no types enabled & disabled types: api, audit, authenticator, controllerManager, scheduler)

使用AWS CLI启用EKS控制平面日志记录

启用所有日志:

aws eks --region eu-west-1 update-cluster-config --name prod-eks-cluster \
--logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}'

其中:prod-eks-cluster是集群的名称。west-1是创建集群的区域

禁用:

aws eks --region eu-west-1 update-cluster-config --name prod-eks-cluster \
--logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":false}]}'

输出示例:

{
    "update": {
        "id": "582a74a9-da01-4393-9169-3a3816965911",
        "status": "InProgress",
        "type": "LoggingUpdate",
        "params": [
            {
                "type": "ClusterLogging",
                "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":false}]}"
            }
        ],
        "createdAt": "2017-08-14T15:28:32.555000+03:00",
        "errors": []
    }
}

如何查看集群控制平面日志

启用集群日志记录后,我们可以使用CloudWatch Console查看集群控制平面日志。