FireLens 設定を使用するタスク定義の作成
FireLens でカスタムログルーティングを使用するには、タスク定義で以下を指定する必要があります。
-
FireLens 設定を含むログルーターコンテナ。コンテナは
essential
とマークすることが推奨されます。 -
awsfirelens
ログドライバーを指定するログ設定を含む 1 つ以上のアプリケーションコンテナ。 -
タスクでログをルーティングするために必要なアクセス許可を含むタスク IAM ロール の、Amazon リソースネーム (ARN)。IAM タスクロールのアクセス許可の詳細については、「必要な IAM 許可」を参照してください。
AWS Management Console を使用して新しいタスク定義を作成する場合、ログルーターコンテナを簡単に追加できる FireLens 統合セクションがあります。詳細については、「コンソールを使用したタスク定義の作成」を参照してください。
Amazon ECS はログ設定を変換し、Fluentd または Fluent Bit 出力設定を生成します。出力設定は、/fluent-bit/etc/fluent-bit.conf
(Fluent Bit) および /fluentd/etc/fluent.conf
(Fluentd) のログルーティングコンテナにマウントされます。
重要
FireLens は、ポート 24224
でリッスンします。したがって、FireLens ログルーターがタスクの外に到達できないようにするには、タスクが使用するセキュリティグループで、ポート 24224
での入力トラフィックを許可してはなりません。awsvpc
ネットワークモードを使用する場合、このセキュリティグループは、タスクに関連付けられたセキュリティグループです。host
ネットワークモードを使用する場合、これはタスクをホストする Amazon EC2 インスタンスに関連付けられているセキュリティグループです。bridge
ネットワークモードを使用するタスクの場合、ポート 24224
を使用するポートマッピングを作成しないでください。
以下のタスク定義の例では、Fluent Bit を使用してログを CloudWatch Logs にルーティングするログルーターコンテナを定義しています。また、これによりアプリケーションコンテナを定義します。このコンテナでは、ログ設定を使用してログをAmazon Kinesis Data Firehose にルーティングし、イベントのバッファリングに使用されるメモリを 2MiB に設定します。
注記
タスク定義のその他の例については、GitHub の Amazon ECS FireLens の例
{ "family": "firelens-example-firehose", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver": "awsfirelens", "options": { "Name": "firehose", "region": "us-west-2", "delivery_stream": "my-stream", "log-driver-buffer-limit": "2097152" } }, "memoryReservation": 100 } ] }
logConfiguration
オブジェクトのオプションとして指定されたキーバリューペアは、Fluentd または Fluent Bit 出力設定の生成に使用されます。Fluent Bit 出力定義のコード例は次のとおりです。
[OUTPUT] Name firehose Match app-firelens* region
us-west-2
delivery_streammy-stream
注記
FireLens は match
設定を管理します。この設定は、タスク定義では指定されません。
Amazon ECS メタデータの使用
タスク定義で FireLens 設定を指定する場合、必要に応じて enable-ecs-log-metadata
の値を切り替えることができます。デフォルトでは、Amazon ECS は、ログのソースを識別するのに役立つ追加のフィールドをログエントリに追加します。このアクションをオフにするには、enable-ecs-log-metadata
を false
に設定します。
-
ecs_cluster
- タスクが所属するクラスターの名前。 -
ecs_task_arn
– コンテナが属しているタスクの完全な Amazon リソースネーム (ARN)。 -
ecs_task_definition
- タスクが使用しているタスク定義名とリビジョン。
次に、Amazon ECS ログメタデータの設定値を指定するときに必要な構文を示します。
{ "containerDefinitions":[ { "essential":true, "image":"906394416424.dkr.ecr.
us-west-2
.amazonaws.com/aws-for-fluent-bit:stable", "name":"log_router", "firelensConfiguration":{ "type":"fluentbit", "options":{ "enable-ecs-log-metadata":"true
|false
" } } } ] }
カスタム設定ファイルの指定
FireLens で自動的に生成される設定ファイルに加えて、自分でカスタム設定ファイルを指定することもできます。設定ファイルの形式は、使用しているログルーターでネイティブな形式を使用します。詳細については、「Fluentd 設定ファイルの構文
カスタム設定ファイルでは、bridge
または awsvpc
ネットワークモードを使用するタスクについて、TCP 経由で Fluentd または Fluent Bit の転送入力を設定しないでください。入力設定は FireLens により追加されています。
カスタム設定ファイルを指定するには、FireLens 設定に次のオプションを含める必要があります。
config-file-type
-
カスタム設定ファイルのソースの場所。使用できるオプションは、
s3
またはfile
です。注記
AWS Fargate でホストされるタスクは、
file
設定ファイルタイプのみをサポートします。 config-file-value
-
カスタム設定ファイルのソース。
s3
設定ファイルタイプを使用する場合、設定ファイルの値は Amazon S3 バケットとファイルの完全な ARN です。file
設定ファイルタイプを使用する場合、設定ファイルのこの値は、コンテナイメージ内、またはそのコンテナにマウントされているボリューム上に存在する設定ファイルへの完全パスです。重要
カスタム設定ファイルを使用する場合、FireLens が使用するパスとは異なるパスを指定する必要があります。Amazon ECS は Fluent Bit に
/fluent-bit/etc/fluent-bit.conf
ファイルパスと Fluentd に/fluentd/etc/fluent.conf
を指定します。
次の例は、カスタム設定を指定するときに必要な構文を示しています。
重要
Amazon S3 でホストされるカスタム設定ファイルを指定するには、適切なアクセス許可を持つタスク実行 IAM ロールが作成されている必要があります。詳細については、「必要な IAM 許可」を参照してください。
次に、カスタム設定を指定する際に必要な構文を示します。
{ "containerDefinitions":[ { "essential":true, "image":"906394416424.dkr.ecr.
us-west-2
.amazonaws.com/aws-for-fluent-bit:stable", "name":"log_router", "firelensConfiguration":{ "type":"fluentbit", "options":{ "config-file-type":"s3
|file
", "config-file-value":"arn:aws:s3:::mybucket/fluent.conf
|filepath
" } } } ] }
注記
AWS Fargate でホストされるタスクは、file
設定ファイルタイプのみをサポートします。