翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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.
および Windows インスタンスの timestamp
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
-
値の例:
crit
、error
、warn
、info
、debug
Linux のデフォルト値:
info
Windows のデフォルト値:
info
ログに記録する詳細レベル。
ECS_LOGLEVEL_ON_INSTANCE
-
値の例:
none
、crit
、error
、warn
、info
、debug
Linux のデフォルト値:
none
に明確に空でない値が設定されている場合はECS_LOG_DRIVER
、それ以外の場合はECS_LOGLEVEL
と同じ値Windows のデフォルト値:
none
に明確に空ではない値が設定されている場合はECS_LOG_DRIVER
、それ以外の場合はECS_LOGLEVEL
と同じ値ECS_LOGLEVEL
をオーバーライドして、ロギングドライバーに記録されるレベルとは別に、オンインスタンスのログファイルに記録される必要のある詳細レベルを設定するために使用できます。ログドライバーが明示的に設定されている場合、インスタンス上のログはデフォルトでオフになっています。この変数を使用して再度オンにすることができます。 ECS_LOG_DRIVER
-
値の例:
awslogs
、fluentd
、gelf
、json-file
、journald
、logentries
、syslog
、splunk
Linux のデフォルト値:
json-file
Windows のデフォルト値: 該当しません
エージェントコンテナが使用するログドライバーを決定します。
ECS_LOG_ROLLOVER_TYPE
-
値の例:
size
、hourly
Linux のデフォルト値:
hourly
Windows のデフォルト値:
hourly
コンテナエージェントのログファイルを 1 時間ごとにローテーションするか、サイズに基づいてローテーションするかを決定します。デフォルトでは、エージェントのログファイルは 1 時間ごとに更新されます。
ECS_LOG_OUTPUT_FORMAT
-
値の例:
logfmt
、json
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_TYPE
、ECS_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