Amazon ECS ログファイルの場所 - Amazon Elastic Container Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon ECS ログファイルの場所

Amazon ECS によってログはコンテナインスタンスの /var/log/ecs フォルダに保存されます。Amazon ECS コンテナエージェントから得られるログと、コンテナインスタンスのエージェントの状態 (スタート/停止) を制御する ecs-init サービスから得られるログがあります。これらのログファイルは、コンテナインスタンスに SSH で接続することにより表示できます。

注記

コンテナインスタンスのログをすべて収集する方法がわからない場合は、Amazon ECS ログコレクターを使用できます。詳細については、「Amazon ECS ログコレクター」を参照してください。

Amazon ECS コンテナエージェントログ

Amazon ECS コンテナエージェントは、コンテナインスタンスのログを保存します。

コンテナエージェントバージョン 1.36.0 以降の場合、デフォルトでは、ログは Linux インスタンスの /var/log/ecs/ecs-agent.log および Windows インスタンスの C:\ProgramData\Amazon\ECS\log\ecs-agent.log にあります。

コンテナエージェントバージョン 1.35.0 以前の場合、デフォルトでは、ログは Linux インスタンスの /var/log/ecs/ecs-agent.log.timestamp および Windows インスタンスの C:\ProgramData\Amazon\ECS\log\ecs-agent.log.timestamp にあります。

デフォルトでは、エージェントログは 1 時間ごとにローテーションされ、最大 24 個のログが保存されます。

以下のコンテナエージェントの設定変数は、エージェントのデフォルトのログ記録動作を変更するために使用できます。詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。

ECS_LOGFILE

値の例: /ecs-agent.log

Linux のデフォルト値: Null

Windows のデフォルト値: Null

エージェントログを書き込む場所。Amazon ECS に最適化された AMI を使用する場合のデフォルトの方法である 経由でエージェントを実行している場合ecs-init、コンテナ内のパスは で/log、ホスト/var/log/ecs/上の にecs-initマウントします。

ECS_LOGLEVEL

値の例:criterrorwarninfodebug

Linux のデフォルト値: info

Windows のデフォルト値: info

ログに記録する詳細レベル。

ECS_LOGLEVEL_ON_INSTANCE

値の例:nonecriterrorwarninfodebug

Linux のデフォルト値:noneに明確に空でない値が設定されている場合はECS_LOG_DRIVER、それ以外の場合はECS_LOGLEVELと同じ値

Windows のデフォルト値:noneに明確に空ではない値が設定されている場合はECS_LOG_DRIVER、それ以外の場合はECS_LOGLEVELと同じ値

ECS_LOGLEVELをオーバーライドして、ロギングドライバーに記録されるレベルとは別に、オンインスタンスのログファイルに記録される必要のある詳細レベルを設定するために使用できます。ログドライバーが明示的に設定されている場合、インスタンス上のログはデフォルトでオフになっています。この変数を使用して再度オンにすることができます。

ECS_LOG_DRIVER

値の例: awslogsfluentdgelfjson-filejournaldlogentriessyslogsplunk

Linux のデフォルト値: json-file

Windows のデフォルト値: 該当しません

エージェントコンテナが使用するログドライバーを決定します。

ECS_LOG_ROLLOVER_TYPE

値の例: sizehourly

Linux のデフォルト値: hourly

Windows のデフォルト値: hourly

コンテナエージェントのログファイルを 1 時間ごとにローテーションするか、サイズに基づいてローテーションするかを決定します。デフォルトでは、エージェントのログファイルは 1 時間ごとに更新されます。

ECS_LOG_OUTPUT_FORMAT

値の例: logfmtjson

Linux のデフォルト値: logfmt

Windows のデフォルト値: logfmt

ログ出力形式を決定します。json 形式を使用する場合、ログの各行は構造化された JSON マップです。

ECS_LOG_MAX_FILE_SIZE_MB

値の例: 10

Linux のデフォルト値: 10

Windows のデフォルト値: 10

ECS_LOG_ROLLOVER_TYPE 変数が に設定されている場合size、この変数はローテーションされる前のログファイルの最大サイズ (MB) を決定します。ロールオーバータイプを hourly に設定すると、この変数は無視されます。

ECS_LOG_MAX_ROLL_COUNT

値の例: 24

Linux のデフォルト値: 24

Windows のデフォルト値: 24

更新済みログファイルを保持する数を決定します。この制限に達すると、より古いログファイルは削除されます。

コンテナエージェントバージョン 1.36.0 以降では、logfmt 形式を使用した場合のログファイルは以下の例のようになります。

level=info time=2019-12-12T23:43:29Z msg="Loading configuration" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-agent:latest" module=parse.go level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-pause:0.1.0" module=parse.go level=info time=2019-12-12T23:43:29Z msg="Amazon ECS agent Version: 1.36.0, Commit: ca640387" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Creating root ecs cgroup: /ecs" module=init_linux.go level=info time=2019-12-12T23:43:29Z msg="Creating cgroup /ecs" module=cgroup_controller_linux.go level=info time=2019-12-12T23:43:29Z msg="Loading state!" module=statemanager.go level=info time=2019-12-12T23:43:29Z msg="Event stream ContainerChange start listening..." module=eventstream.go level=info time=2019-12-12T23:43:29Z msg="Restored cluster 'auto-robc'" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Restored from checkpoint file. I am running as 'arn:aws:ecs:us-west-2:0123456789:container-instance/auto-robc/3330a8a91d15464ea30662d5840164cd' in cluster 'auto-robc'" module=agent.go

JSON 形式を使用した場合のログファイルは以下の例のようになります。

{"time": "2019-11-07T22:52:02Z", "level": "info", "msg": "Starting Amazon Elastic Container Service Agent", "module": "engine.go"}

コンテナエージェントバージョン 1.35.0 以前では、ログファイルの形式は以下のようになります。

2016-08-15T15:54:41Z [INFO] Starting Agent: Amazon ECS Agent - v1.12.0 (895f3c1) 2016-08-15T15:54:41Z [INFO] Loading configuration 2016-08-15T15:54:41Z [WARN] Invalid value for task cleanup duration, will be overridden to 3h0m0s, parsed value 0, minimum threshold 1m0s 2016-08-15T15:54:41Z [INFO] Checkpointing is enabled. Attempting to load state 2016-08-15T15:54:41Z [INFO] Loading state! module="statemanager" 2016-08-15T15:54:41Z [INFO] Detected Docker versions [1.17 1.18 1.19 1.20 1.21 1.22] 2016-08-15T15:54:41Z [INFO] Registering Instance with ECS 2016-08-15T15:54:41Z [INFO] Registered! module="api client"

Amazon ECSecs-initログ

ecs-init プロセスはログを /var/log/ecs/ecs-init.log に保存します。

ログファイルを表示するには、次のコマンドが使用できます。

cat /var/log/ecs/ecs-init.log

出力:

2018-02-16T18:13:54Z [INFO] pre-start 2018-02-16T18:13:56Z [INFO] start 2018-02-16T18:13:56Z [INFO] No existing agent container to remove. 2018-02-16T18:13:56Z [INFO] Starting Amazon Elastic Container Service Agent

タスク認証情報の監査ログ用の &IAM; ロール

IAM ロールの認証情報プロバイダーを使用してタスクに認証情報を提供すると、これらのリクエストは監査ログに保存されます。監査ログは、コンテナエージェントログと同じログローテーション設定を継承します。コンテナエージェントの設定変数 ECS_LOG_ROLLOVER_TYPEECS_LOG_MAX_FILE_SIZE_MB、および ECS_LOG_MAX_ROLL_COUNT を設定して、監査ログの動作に影響を与えることもできます。詳細については、「Amazon ECS コンテナエージェントログ」を参照してください。

コンテナエージェントバージョン 1.36.0 以降の場合、監査ログは /var/log/ecs/audit.log にあります。ログがローテーションされると、YYYY-MM-DD-HH 形式のタイムスタンプがログファイル名の最後に追加されます。

コンテナエージェントバージョン 1.35.0 以前の場合、監査ログは /var/log/ecs/audit.log.YYYY-MM-DD-HH にあります。

ログエントリの形式は以下のとおりです。

  • タイムスタンプ

  • HTTP レスポンスコード

  • リクエスト元の IP アドレスとポート番号

  • 認証情報プロバイダーの相対 URI

  • リクエストを行ったユーザーエージェント

  • リクエスト元のコンテナが属するタスクの ARN

  • GetCredentials API 名とバージョン番号

  • コンテナインスタンスが登録されている Amazon ECS クラスターの名前

  • コンテナインスタンス ARN

以下に示しているのは、ログエントリの例です。

ログファイルを表示するには、次のコマンドが使用できます。

cat /var/log/ecs/audit.log.2016-07-13-16

出力:

2016-07-13T16:11:53Z 200 172.17.0.5:52444 "/v1/credentials" "python-requests/2.7.0 CPython/2.7.6 Linux/4.4.14-24.50.amzn1.x86_64" TASK_ARN GetCredentials 1 CLUSTER_NAME CONTAINER_INSTANCE_ARN