Amazon EKS
ユーザーガイド

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 データの取り込みおよび保存の標準費用が発生します。また、Amazon EC2 インスタンスや Amazon EBS ボリュームなど、クラスターの一部としてプロビジョニングする AWS リソースに対しても料金が発生します。

以下のクラスターコントロールプレーンのログタイプが使用可能です。各ログタイプは、Kubernetes コントロールプレーンのコンポーネントに対応しています。これらのコンポーネントの詳細については、Kubernetes ドキュメントの Kubernetes Components (Kubernetes コンポーネント) を参照してください。

  • Kubernetes API サーバーコンポーネントログ (api) – クラスターの API サーバーは、Kubernetes API を公開するコントロールプレーンコンポーネントです。詳細については、Kubernetes ドキュメントの kube-apiserver を参照してください。

  • 監査 (audit) – Kubernetes 監査ログは、クラスターに影響を与えた個々のユーザー、管理者、またはシステムコンポーネントの記録を提供します。詳細については、Kubernetes ドキュメントの Auditing (監査) を参照してください。

  • 認証 (authenticator) – 認証ログは Amazon EKS に対して固有です。これらのログは、Amazon EKS が IAM 認証情報を使用して Kubernetes ロールベースアクセスコントロール (RBAC) 認証に使用するコントロールプレーンコンポーネントを表します。詳細については、「クラスター認証の管理」を参照してください。

  • コントローラーマネージャー (controllerManager) – コントローラーマネージャーが、Kubernetes に同梱されているコアコントロールループを管理します。詳細については、Kubernetes ドキュメントの kube-controller-manager を参照してください。

  • スケジューラ (scheduler) – スケジューラコンポーネントは、クラスターでポッドを実行するタイミングと場所を管理します。詳細については、Kubernetes ドキュメントの kube-scheduler を参照してください。

コントロールプレーンログの有効化と無効化

デフォルトでは、クラスターのコントロールプレーンログは CloudWatch Logs に送信されません。クラスターのログを送信するには、各ログタイプを個別に有効にする必要があります。CloudWatch Logs の取り込み、アーカイブストレージ、およびデータスキャンレートが、有効なコントロールプレーンログに適用されます。詳細については、「CloudWatch 料金表」を参照してください。

ログタイプを有効にすると、ログの詳細レベル 2 でログが送信されます。

コンソールを使用してコントロールプレーンログを有効または無効にするには

  1. Open the Amazon EKS console at https://console.aws.amazon.com/eks/home#/clusters.

  2. クラスターの名前を選択すると、そのクラスターの情報を表示されます。

  3. [ログ記録] の [更新] を選択します。

  4. ログタイプごとに、そのログタイプを [有効] にするか [無効] にするかを選択します。各ログタイプは、デフォルトで [無効] になっています。

  5. [更新] を選択して終了します。

AWS CLI を使用してコントロールプレーンログを有効または無効にするには

  1. 以下のコマンドを使用して、AWS CLI のバージョンを確認します。

    aws --version

    AWS CLI のバージョンが 1.16.139 以前である場合は、まず最新バージョンに更新する必要があります。AWS CLI をインストールまたはアップグレードするには、AWS Command Line Interface ユーザーガイドの「AWS コマンドラインインターフェイスのインストール」を参照してください。

  2. 次の AWS CLI コマンドを使用して、クラスターのコントロールプレーンログのエクスポート設定を更新します。クラスター名と必要なエンドポイントアクセス値を置き換えます。

    注記

    次のコマンドは、使用可能なすべてのログタイプを CloudWatch Logs に送信します。

    aws eks --region us-west-2 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 us-west-2 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)kube-apiserver-audit-nnn...

    • 認証システム (authenticator)authenticator-nnn...

    • コントローラーマネージャー (controllerManager)kube-controller-manager-nnn...

    • スケジューラー (scheduler)kube-scheduler-nnn...