ロギングオプションのタスク定義の例 - Amazon Elastic Container Service

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

ロギングオプションのタスク定義の例

次に示すのは、一般的なカスタムログルーティングオプションを示すタスク定義の例です。その他の例については、「」の「Amazon ECS FireLens の例」を参照してください GitHub。

注記

これらの例に示す次のlogConfigurationタスク定義パラメータは、 AWS for Fluent Bit ログを に送信するために使用されます CloudWatch。 AWS では、Fluent Bit の問題 AWS のトラブルシューティング CloudWatch のために に追加情報が表示されるように、この設定を推奨しています。

"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } },

CloudWatch Logs へのログの転送

注記

その他の例については、「」の「Amazon ECS FireLens の例」を参照してください GitHub。

次のタスク定義の例は、ログを CloudWatch Logs ロググループに転送するログ設定を指定する方法を示しています。詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「Amazon Logs とは CloudWatch 」を参照してください。

ログ設定オプションで、ロググループ名とロググループが存在する AWS リージョン を指定します。Fluent Bit がユーザーに代わってロググループを作成するには、 を指定して"auto_create_group":"true"、 fluentd-buffer-limit の使用を設定しますlog-driver-buffer-limit。フィルタリングに役立つログストリームプレフィックスとしてタスク ID を指定することもできます。詳細については、「 CloudWatch ログ用の Fluent Bit プラグイン」を参照してください。

{ "family": "firelens-example-cloudwatch", "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:latest", "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": "cloudwatch", "region": "us-west-2", "log_group_name": "firelens-blog", "auto_create_group": "true", "log_stream_prefix": "from-fluent-bit", "log-driver-buffer-limit": "2097152" } }, "memoryReservation": 100 } ] }

Amazon Data Firehose 配信ストリームへのログの転送

注記

その他の例については、「」の「Amazon ECS FireLens の例」を参照してください GitHub。

次のタスク定義の例は、Amazon Data Firehose 配信ストリームにログを転送するログ設定を指定する方法を示しています。Firehose 配信ストリームは既に存在している必要があります。詳細については、「Amazon Data Firehose デベロッパーガイド」の「Amazon Data Firehose 配信ストリームの作成」を参照してください。

ログ設定オプションで、配信ストリーム名と配信ストリームが存在するリージョンを指定します。詳細については、「 Amazon Kinesis Firehose 用の Fluent Bit プラグイン」を参照してください。

{ "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" } }, "memoryReservation": 100 } ] }

Amazon OpenSearch Service ドメインへのログの転送

注記

その他の例については、「」の「Amazon ECS FireLens の例」を参照してください GitHub。

次のタスク定義の例は、Amazon OpenSearch Service ドメインにログを転送するログ設定を指定する方法を示しています。Amazon OpenSearch Service ドメインは既に存在している必要があります。詳細については、「Amazon OpenSearch Service デベロッパーガイド」の「Amazon OpenSearch Service とは」を参照してください。

ログ設定オプションで、 OpenSearch サービス統合に必要なログオプションを指定します。詳細については、「Amazon OpenSearch Service の Fluent Bit」を参照してください。

{ "family": "firelens-example-opensearch", "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": "es", "Host": "vpc-fake-domain-ke7thhzo07jawrhmz6mb7ite7y.us-west-2.es.amazonaws.com", "Port": "443", "Index": "my_index", "Type": "my_type", "AWS_Auth": "On", "AWS_Region": "us-west-2", "tls": "On" } }, "memoryReservation": 100 } ] }

シリアル化された JSON であるコンテナログの解析

注記

その他の例については、「」の「Amazon ECS FireLens の例」を参照してください GitHub。

AWS for Fluent Bit バージョン 1.3 以降では、 AWS for Fluent Bit イメージに含まれている JSON パーサーがあります。次の例は、タスク定義 FireLens の設定で JSON パーサーを参照する方法を示しています。

"firelensConfiguration": { "type": "fluentbit", "options": { "config-file-type": "file", "config-file-value": "/fluent-bit/configs/parse-json.conf" } },

Fluent Bit 設定ファイルは、JSON 形式のすべてのログを解析します (例えば、送信先にあるログが、JSON 解析を使用しなくても次のようになっている場合など)。

{ "source": "stdout", "log": "{\"requestID\": \"b5d716fca19a4252ad90e7b8ec7cc8d2\", \"requestInfo\": {\"ipAddress\": \"204.16.5.19\", \"path\": \"/activate\", \"user\": \"TheDoctor\"}}", "container_id": "e54cccfac2b87417f71877907f67879068420042828067ae0867e60a63529d35", "container_name": "/ecs-demo-6-container2-a4eafbb3d4c7f1e16e00" "ecs_cluster": "mycluster", "ecs_task_arn": "arn:aws:ecs:us-east-2:01234567891011:task/mycluster/3de392df-6bfa-470b-97ed-aa6f482cd7a6", "ecs_task_definition": "demo:7" "ec2_instance_id": "i-06bc83dbc2ac2fdf8" }

JSON 解析を使用する場合、ログは次のようになります。

{ "source": "stdout", "container_id": "e54cccfac2b87417f71877907f67879068420042828067ae0867e60a63529d35", "container_name": "/ecs-demo-6-container2-a4eafbb3d4c7f1e16e00" "ecs_cluster": "mycluster", "ecs_task_arn": "arn:aws:ecs:us-east-2:01234567891011:task/mycluster/3de392df-6bfa-470b-97ed-aa6f482cd7a6", "ecs_task_definition": "demo:7" "ec2_instance_id": "i-06bc83dbc2ac2fdf8" "requestID": "b5d716fca19a4252ad90e7b8ec7cc8d2", "requestInfo": { "ipAddress": "204.16.5.19", "path": "/activate", "user": "TheDoctor" } }

シリアル化された JSON は、最終的な JSON 出力の最上位フィールドに展開されます。JSON 解析の詳細については、Fluent Bit ドキュメントの「Parser」(パーサー) を参照してください。

外部の Fluentd または Fluent Bit への転送

注記

その他の例については、「」の「Amazon ECS FireLens の例」を参照してください GitHub。

次のタスク定義の例は、外部の Fluentd または Fluent Bit ホストにログを転送するログ設定を指定する方法を示しています。環境の hostport を指定します。

{ "family": "firelens-example-forward", "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": "forward", "Host": "fluentdhost", "Port": "24224" } }, "memoryReservation": 100 } ] }