このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
コントロールプレーンログを CloudWatch Logs に送信する
Amazon EKS コントロールプレーンのログ記録により、アカウント内で Amazon EKS コントロールプレーンから CloudWatch Logs に対し、監査および診断ログを直接送れるようになります。これらのログを使用すると、クラスターの保護と実行が容易になります。必要なログタイプを正確に選択することで、CloudWatch 内で各 Amazon EKS クラスターのためのグループに対し、ログストリームの形態でログを送信できます。CloudWatch サブスクリプションフィルタを使用して、ログをリアルタイムで分析したり、他のサービスに転送したりできます (ログは Base64 でエンコードされ、gzip 形式で圧縮されます)。詳細については、「Amazon CloudWatch logging」(Amazon CloudWatch ログ記録) を参照してください。
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 のデータ取り込みおよび保存に関する標準料金が発生します。また、Amazon EC2 インスタンスや Amazon EBS ボリュームなど、クラスターの一部としてプロビジョニングしている AWS リソースに対しても料金が発生します。
以下のクラスターコントロールプレーンのログタイプが使用可能です。各ログタイプは、Kubernetes コントロールプレーンのコンポーネントに対応しています。これらのコンポーネントの詳細については、Kubernetes ドキュメントの「Kubernetes コンポーネント
- API サーバー (
api
) -
クラスターの API サーバーは、Kubernetes API を公開するコントロールプレーンコンポーネントです。クラスターを起動する際、またはその直後に API サーバーのログを有効にすると、ログには、API サーバーの起動に使用された API サーバーフラグが含まれます。詳細については、「Kubernetes ドキュメント」の「
kube-apiserver
」と「audit policy 」(監査ポリシー) を参照してください。 - 監査 (
audit
) -
Kubernetes 監査ログは、クラスターに影響を与えた個々のユーザー、管理者、またはシステムコンポーネントの記録を提供します。詳細については、Kubernetes ドキュメントの「Auditing
」(監査) を参照してください。 - Authenticator (
authenticator
) -
Authenticator ログは、Amazon EKS に固有です。これらのログは、IAM 認証情報を使用した Kubernetes [ロールベースのアクセスコントロール]
(RBAC) 認証のために Amazon EKS が使用する、コントロールプレーンコンポーネントを示します。詳細については、「クラスターリソースを整理およびモニタリングする」を参照してください。 - コントローラーマネージャー (
controllerManager
) -
コントローラーマネージャーは、Kubernetes に付属するコアコントロールループを管理します。詳細については、Kubernetes ドキュメントの「kube-controller-manager
」を参照してください。 - スケジューラ (
scheduler
) -
スケジューラコンポーネントは、クラスター内で Pods を実行するタイミングと場所を管理します。詳細については、Kubernetes ドキュメントの「kube-scheduler
」を参照してください。
コントロールプレーンログを有効または無効にする
デフォルトでは、クラスターコントロールプレーンのログは CloudWatch Logs に送信されません。クラスターのログを送信するには、各ログタイプを個別に有効にする必要があります。CloudWatch Logs で設定された取り込み、アーカイブストレージ、およびデータスキャンレートが、有効化されたコントロールプレーンログに適用されます。詳細については、「CloudWatch 料金表
コントロールプレーンのログ記録設定を更新するために、Amazon EKS は各サブネットで最大 5 つの使用可能な IP アドレスを必要とします。ログタイプを有効にすると、ログの詳細レベル 2
でログが送信されます。
クラスターのコントロールプレーンログを表示する
Amazon EKS クラスターのいずれかのコントロールプレーンログタイプを有効にすると、それらを CloudWatch コンソールで表示できるようになります。
CloudWatch でログを表示、分析、および管理する方法については、Amazon CloudWatch Logs ユーザーガイドを参照してください。
CloudWatch コンソールでクラスターのコントロールプレーンログを表示するには
-
CloudWatch コンソール
を開きます。このリンクでは、現在使用可能なロググループが表示され、プレフィックス /aws/eks
でフィルタリングされます。 -
ログを表示するクラスターを選択します。ロググループの名前の形式は
/aws/eks/
です。my-cluster
/cluster -
表示するログストリームを選択します。次のリストで、各ログタイプのログストリーム名の形式について説明します。
注記
ログストリームデータが大きくなるにつれて、ログストリーム名のローテーションが行われます。特定のログタイプのログストリームが複数存在する場合、最新のログストリームを表示するには、[最終のイベント時刻] が最新のログストリーム名を見つけ出します。
-
Kubernetes API サーバーコンポーネントログ (
api
) -kube-apiserver-
1234567890abcdef01234567890abcde
-
監査 (
audit
) –kube-apiserver-audit-
1234567890abcdef01234567890abcde
-
認証システム (
authenticator
) –authenticator-
1234567890abcdef01234567890abcde
-
コントローラーマネージャー (
controllerManager
) –kube-controller-manager-
1234567890abcdef01234567890abcde
-
スケジューラ (
scheduler
) –kube-scheduler-
1234567890abcdef01234567890abcde
-
-
ログストリームのイベントを確認してください。
たとえば、
kube-apiserver-
のトップを表示すると、クラスターの初期 API サーバーが表示されます。1234567890abcdef01234567890abcde
注記
ログストリームの先頭に API サーバーログが表示されない場合は、サーバーで API サーバーログ記録を有効にする前に API サーバーのログファイルがローテーションされた可能性があります。API サーバーのログ記録が有効になる前にローテーションされたログファイルは、CloudWatch にエクスポートできません。
ただし、同じ Kubernetes バージョンで新しいクラスターを作成し、クラスターの作成時に API サーバーログを有効にすることができます。同じプラットフォームバージョンを持つクラスターでは、同じフラグが有効になるため、フラグは新しいクラスターのフラグと一致する必要があります。CloudWatch で新しいクラスターのフラグを確認し終えたら、新しいクラスターを削除します。