スキップしてコンテンツを表示

ECS ログコレクタースクリプトを使用して Amazon ECS コンテナインスタンスからログを収集する方法を教えてください。

所要時間1分
0

環境のトラブルシューティングを目的に、Amazon Elastic Container Service (Amazon ECS) からログを収集したいと考えています。

簡単な説明

オペレーティングシステム (OS)、Docker、および Amazon ECS コンテナエージェントの一般的なログを Amazon ECS ログコレクタースクリプトを使用して収集します。このスクリプトはログを圧縮し、問題のトラブルシューティング時に共有できる単一のファイルにアーカイブします。

または、AWS Systems Manager ランブック AWSSupport-CollectECSInstanceLogs を実行して ECS インスタンスからログを収集し、ログを Amazon Simple Storage Service (Amazon S3) バケットにアップロードしてもかまいません。入力パラメータ LogDestination に Amazon S3 バケットの場所を指定します。

注: AWSSupport-CollectECSInstanceLogs はデバッグモードに対応していません。詳細については、「Systems Manager オートメーションを活用して自動操作を実行する」を参照してください。

解決策

Amazon ECS ログコレクターのダウンロードとインストール

コンテナインスタンスに接続する方法については、「SSH を使用してコンテナインスタンスに接続する」を参照してください。Linux および Windows でログコレクターをダウンロードして実行する方法については、「Amazon ECS ログコレクターでコンテナログを収集する」を参照してください。

Linux では、curl を使用する必要があります。curl がインストールされたことを確認するには、次のコマンドを実行します。

curl --version

次の例に類似したコマンド出力が表示されます。

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3

注: コマンドが期待通りの結果を返さない場合は、curl パッケージをインストールしてください。

スクリプトを実行した後、スクリプトが作成した collect フォルダ内に収集したログが配置されます。Linux では、すべてのログの圧縮アーカイブは collect-i-ffffffffffffffffff-YYYYMMDDHHmm.tgz 形式です。Windows では、collect.tgz ファイルにアーカイブされます。

Amazon ECS ログ収集ツールをデバッグモードで実行する

デバッグモードでは、標準のログ詳細では対応できない可能性のある、ECS 環境の複雑な問題をトラブルシューティングできます。

Docker デーモンと Amazon ECS コンテナエージェントでデバッグログ記録を有効にするには、Linux では --mode=enable-debug を、Windows では -RunMode debug を指定します。

注: スクリプトは Docker デーモンと Amazon ECS エージェントを再起動し、インスタンス上で実行中のすべてのコンテナを破棄します。次のコマンドを実行する前に、コンテナインスタンスをドレインし、重要なタスクを他のコンテナインスタンスに移動してください。

Linux

デバッグモードは、Amazon Linux OS および Systemd init ベースのシステムでのみ機能します。

スクリプトの実行時、次のコマンドを実行します。

[ec2-user ~]$ sudo bash ./ecs-logs-collector.sh --mode=enable-debug

Windows

スクリプトの実行時に、管理者権限で Windows PowerShell を開き、次のコマンドを実行します。

.\ecs-logs-collector.ps1 -RunMode debug
コメントはありません

関連するコンテンツ