Amazon ECS ログコレクターを使用したコンテナログの収集 - Amazon Elastic Container Service

Amazon ECS ログコレクターを使用したコンテナログの収集

コンテナインスタンスのさまざまなログをすべて収集する方法がわからない場合は、Amazon ECS ログコレクターを使用できます。Linux 用と Windows 用のいずれも GitHub で入手できます。スクリプトは一般的なオペレーティングシステムログおよび Docker と Amazon ECS コンテナエージェントログを収集します。これらは、AWS Support ケースのトラブルシューティングに役立ちます。次に、収集された情報が、診断目的で簡単に共有することができる 1 つのファイルに圧縮およびアーカイブされます。また、Docker デーモン、および Amazon Linux バリアントで Amazon ECS コンテナエージェント (Amazon ECS 最適化 AMI など) に対してデバッグモードを有効にすることもできます。現在、Amazon ECS ログコレクターでは以下のオペレーティングシステムがサポートしています:

  • Amazon Linux

  • Red Hat Enterprise Linux 7

  • Debian 8

  • Ubuntu 14.04

  • Ubuntu 16.04

  • Ubuntu 18.04

  • Windows Server 2016

注記

Amazon ECS ログコレクターのソースコードは、Linux 用と Windows 用の両方を GitHub で入手できます。含めることを希望する変更について、プルリクエストを送信することをお勧めします。ただし、現在、Amazon Web Service では、このソフトウェアの変更されたコピーの実行をサポートしていません。

LinuxにAmazon ECS ログコレクターをダウンロードして実行するには
  1. コンテナインスタンスに接続します。

  2. Amazon ECS ログ コレクタースクリプトをダウンロードします。

    curl -O https://raw.githubusercontent.com/awslabs/ecs-logs-collector/master/ecs-logs-collector.sh
  3. スクリプトを実行してログを収集し、アーカイブを作成します。

    注記

    Docker デーモンと Amazon ECS コンテナエージェントに対してデバッグモードを有効にするには、次のコマンドに --mode=enable-debug オプションを追加します。これにより、Docker デーモンが再起動され、インスタンスで実行されているすべてのコンテナが強制終了されます。デバッグモードを有効にする前に、コンテナインスタンスをドレインし、重要なタスクを他のコンテナインスタンスに移動することを検討してください。詳細については、「Amazon ECS コンテナインスタンスをドレインする」を参照してください。

    [ec2-user ~]$ sudo bash ./ecs-logs-collector.sh
重要

ログを編集し、ファイルからすべての機密データを削除することをお勧めします。既知のデータを検索でき、ファイル内の AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN などの環境変数も検索できます。

スクリプトを実行した後、スクリプトによって作成された collect フォルダに収集されたログを調べることができます。collect.tgz ファイルはすべてのログの圧縮アーカイブであり、AWS Supportと共有することで診断に役立ちます。

WindowsでAmazon ECS ログコレクターをダウンロードして実行するには
  1. コンテナインスタンスに接続します。詳細については、「Amazon EC2 ユーザーガイド」の「Windows インスタンスに接続する」を参照してください。

  2. PowerShell を使用して、Amazon ECSログコレクターのスクリプトをダウンロードします。

    Invoke-WebRequest -OutFile ecs-logs-collector.ps1 https://raw.githubusercontent.com/awslabs/aws-ecs-logs-collector-for-windows/master/ecs-logs-collector.ps1
  3. スクリプトを実行してログを収集し、アーカイブを作成します。

    注記

    Docker デーモンと Amazon ECS コンテナエージェントに対してデバッグモードを有効にするには、次のコマンドに -RunMode debug オプションを追加します。これにより、Docker デーモンが再起動され、インスタンスで実行されているすべてのコンテナが強制終了されます。デバッグモードを有効にする前に、コンテナインスタンスをドレインし、重要なタスクを他のコンテナインスタンスに移動することを検討してください。詳細については、「Amazon ECS コンテナインスタンスをドレインする」を参照してください。

    .\ecs-logs-collector.ps1
重要

ログを編集し、ファイルからすべての機密データを削除することをお勧めします。既知のデータを検索でき、ファイル内の AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN などの環境変数も検索できます。

スクリプトを実行した後、スクリプトによって作成された collect フォルダに収集されたログを調べることができます。collect.tgz ファイルはすべてのログの圧縮アーカイブであり、診断に役立つように AWS サポートと共有できます。