Amazon Elastic Kubernetes Service (Amazon EKS) インスタンスのトラブルシューティングを行っています。そのインスタンスに関連するすべての Amazon EKS ログを収集する必要があります。
簡単な説明
AWSSupport-CollectEKSInstanceLogs Automation ドキュメントを使用して、Amazon EKS ログを収集します。.
重要: Automation が機能するには、Amazon EKS インスタンスに SSM エージェントをインストールして実行する必要があります。
解決方法
メモ: 以下の解決方法は、Linux 用 Amazon EKS のワーカーノードでのみ有効です。
1. AWS Systems Manager コンソールを開きます。
2. ナビゲーションペインで、[Automation] を選択します。
3. [Automation の実行] を選択します。
4. [Amazon が所有] タブで、[Automation ドキュメント] 検索ボックスに、EKSInstanceLogs と入力します。次に、AWSSupport-CollectEKSInstanceLogs ドキュメントを選択します。
5. [次へ] を選択します。
6. [Automation の入力] ページで、EKSInstanceId について、ターゲット Amazon EKS インスタンス ID を入力します。
7. LogDestination および AutomationAssumeRole パラメーターを設定します。.
メモ: ログバンドルは、LogDestination フィールドで指定されている Amazon Simple Storage Service (Amazon S3) バケットにアップロードされます。バケットを指定しなかった場合は、インスタンスからログバンドルを取得できます。ログバンドルは、ローカルで /var/log/ パスに保存されます。
8. [Automation の実行] を選択します。
上記の Automation ドキュメントを実行する際は、以下のベストプラクティスと要件に注意します:
- Amazon が管理する AmazonSSMManagedInstanceCore ポリシーを、関連する AWS Identity and Access Management (IAM) ロールにアタッチすることがベストプラクティスです。この IAM ロールは、Automation のターゲットとなる Amazon Elastic Compute Cloud (Amazon EC2) インスタンス用です。
- Automation を実行する前に LogDestination フィールドに S3 バケット名を指定すると、インスタンスプロファイルがバケットへの書き込みを行うことができます。
- Automation を実行してコマンドをインスタンスに送信するには、少なくとも ssm:ExecuteAutomation および ssm:SendCommand の権限が必要です。
- Automation 出力を読み取るには、ssm:GetAutomationExecution の権限が必要です。
関連情報
Systems Manager にインスタンスのアクセス許可を設定する
EKS ログコレクター (GitHub)