awslogs ログドライバーを使用する - AWS Batch

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

awslogs ログドライバーを使用する

デフォルトでは、AWS Batchを有効にするawslogsログドライバーを使用して CloudWatch Logs にログ情報を送信できます。この機能を使用すると、コンテナからの異なるログを 1 か所で便利に表示できます。また、コンテナログがコンテナインスタンスのディスク容量を占めることも防止できます。このトピックには、awslogsログドライバをジョブ定義に追加します。

注記

ジョブ内のコンテナによってログ記録される情報のタイプは、主にENTRYPOINTコマンド。デフォルトでは、キャプチャされるログは、コンテナをローカルに実行した場合にインタラクティブターミナルに表示されるコマンド出力 (STDOUTおよびSTDERRI/O ストリーム。-awslogsログドライバーは、これらのログを Docker から CloudWatch Logs に渡します。Docker ログの処理方法 (ファイルデータやストリームをキャプチャする別の方法) の詳細については、コンテナーまたはサービスのログの表示Docker ドキュメントの「docker ps

コンテナインスタンスから CloudWatch Logs にシステムログを送信するには、での CloudWatch Logs 使用AWS Batch。CloudWatch Logs の詳細については、「」を参照してください。ログファイルをモニタリングするおよびCloudWatch Logs のクォータ()Amazon CloudWatch Logs ユーザーガイド

使用できる awslogs ログドライバーのオプション

-awslogsログドライバーは、AWS Batchジョブ定義。詳細については、「」を参照してください。CloudWatch Logs のログ記録ドライバーDocker ドキュメントの「docker ps

awslogs-region

必須 いいえ

リージョンを指定します。awslogsログドライバーは Docker ログを送信する必要があります。デフォルトでは、使用されるリージョンは、ジョブのリージョンと同じリージョンです。異なるリージョンのジョブからすべてのログを CloudWatch Logs の 1 つのリージョンに送信するように選択できます。これにより、それらを 1 つの場所からすべて表示できます。または、よりきめ細かいアプローチのために、それらをリージョン別に分けることもできます。ただし、このオプションを選択するときは、指定したロググループが、指定したリージョンに存在することを確認します。

awslogs-group

必須 オプション

awslogs-groupオプションを使用して、ロググループを指定できます。awslogsログドライバは、ログストリームをに送信します。これが指定されていない場合、aws/batch/jobを使用する。

awslogs-stream-prefix

必須 オプション

awslogs-stream-prefixオプションを使用して、指定したプレフィックス、および Amazon ECS タスク ID に、ログストリームを関連付けることができます。AWS Batchジョブです。このオプションでプレフィックスを指定した場合、ログストリームの形式は以下のようになります。

prefix-name/default/ecs-task-id
awslogs-datetime-format

必須 いいえ

このオプションは、Python strftime 形式で複数行起動パターンを定義します。ログメッセージは、パターンに一致する 1 行と、それに続くパターンに一致しない行で構成されます。したがって、一致した行はログメッセージ間の区切り文字です。

この形式を使用する場合のユースケースの例としては、スタックダンプなどの解析された出力があり、これを使用しなければ、複数のエントリに記録されることになります。適切なパターンにより、単一のエントリにキャプチャさせます。

詳細については、「awslogs-datetime-format」を参照してください。

awslogs-datetime-formatawslogs-multiline-pattern の両方が設定されている場合、このオプションは常に優先されます。

注記

複数行のログ記録は、すべてのログメッセージの正規表現の解析とマッチングを実行します。これによりログ記録のパフォーマンスに悪影響が及ぶ可能性があります。

awslogs-multiline-pattern

必須 いいえ

このオプションでは、正規表現を使用して複数行起動パターンを定義します。ログメッセージは、パターンに一致する 1 行と、それに続くパターンに一致しない行で構成されます。したがって、一致した行はログメッセージ間の区切り文字です。

詳細については、「」を参照してください。awslogs-マルチラインパターンDocker ドキュメントの「docker ps

awslogs-datetime-format も設定されている場合は、このオプションは無視されます。

注記

複数行のログ記録は、すべてのログメッセージの正規表現の解析とマッチングを実行します。こうすることで、ログ記録のパフォーマンスに悪影響が及ぶ可能性があります。

awslogs-create-group

必須 いいえ

自動的に作成されたロググループが必要かどうかを指定します。このオプションを指定しない場合、デフォルトはfalse

警告

このオプションはお勧めしません。CloudWatch Logs を使用して、事前にロググループを作成することをお勧めしますCreateLogGroupAPI アクションは、各ジョブがロググループを作成しようとするため、ジョブが失敗する可能性が高くなります。

注記

実行ロールの IAM ポリシーには、logs:CreateLogGroupを使用しようとする前にawslogs-create-group

ジョブ定義でログ設定を指定する

デフォルトでは、AWS Batchを有効にするawslogsログドライバーを使用します。このセクションでは、awslogsジョブのログ構成。詳細については、「ジョブ定義の作成」を参照してください。

次のログ設定 JSON スニペットには、logConfiguration各ジョブに指定されたオブジェクト。1つは、WordPress ジョブで、ログをawslogs-wordpressというロググループにログを送信するMySQL コンテナ用のものであり、awslogs-mysql。どちらのコンテナも awslogs-example ログストリームプレフィックスを使用します。

"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "awslogs-wordpress", "awslogs-stream-prefix": "awslogs-example" } }
"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "awslogs-mysql", "awslogs-stream-prefix": "awslogs-example" } }

左AWS Batchコンソールのログ設定では、wordpressジョブ定義は、次の図のように指定されています。


    コンソールのログ設定

タスク定義をawslogsログドライバーを使用すると、そのジョブ定義を使用してジョブを送信できます。また、CloudWatch Logs へのログの送信を開始できます。詳細については、「ジョブの送信」を参照してください。