本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
日志记录选项任务定义示例
以下是一些演示常见自定义日志路由选项的示例任务定义。有关更多示例,请参阅上的 Amazon ECS FireLens 示例
注意
这些示例中显示的以下logConfiguration
任务定义参数用于将您 Amazon 的 for Fluent Bit 日志发送到 CloudWatch。 Amazon
建议使用此配置,以便您可以获得更多信息 CloudWatch 来解决 Amazon Fluent Bit 问题。
"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } },
主题
将日志转发到 CloudWatch 日志
注意
有关更多示例,请参阅上的 Amazon ECS FireLens 示例
以下任务定义示例演示如何指定将日志转发到日志日志组的 CloudWatch 日志配置。有关更多信息,请参阅什么是 Amazon CloudWatch 日志? 在 Amazon CloudWatch 日志用户指南中。
在日志配置选项中,指定日志组名称及其所在的 Amazon Web Services 区域
。要让 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 示例
以下任务定义示例演示如何指定将日志转发到 Amazon Data Firehose 传输流的日志配置。Firehose 传送流必须已经存在。有关更多信息,请参阅《亚马逊数据 Firehose 开发者指南》中的创建亚马逊数据 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
} ] }
将日志转发到亚马逊 OpenSearch 服务域
注意
有关更多示例,请参阅上的 Amazon ECS FireLens 示例
以下任务定义示例演示如何指定将日志转发到 Amazon S OpenSearch ervice; 域的日志配置。亚马逊 OpenSearch 服务域名必须已经存在。有关更多信息,请参阅《亚马逊 OpenSearch 服务开发者指南》中的什么是亚马逊 OpenSearch 服务。
在日志配置选项中,指定 OpenSearch 服务集成所需的日志选项。有关更多信息,请参阅 Fluent Bit for Amazon OpenSearch 服务
{ "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 示例
从 Fluent Bit 1.3 版本开始,for Fluent Bit 图像中包含一个 JSON 解析器。 Amazon Amazon 以下示例说明如何在任务定义的 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 文档中的解析器
转发到外部 Fluentd 或 Fluent Bit
注意
有关更多示例,请参阅上的 Amazon ECS FireLens 示例
以下任务定义示例演示如何指定用于将日志转发到外部 Fluentd 或 Fluent Bit 机的日志配置。为您的环境指定 host
和 port
。
{ "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
} ] }