我托管了一个 ECS Fargate 集群,该集群使用 AWS 日志驱动程序并将日志推送到 CloudWatch,awslog 驱动程序没有任何问题。现在我想做的是将日志直接从 ECS 集群推送到 S3 存储桶。
所以我希望使用 AWS Athena 来查询 S3 的日志。 Firelens Fluent 是最好的选择吗?如果你们对这个过程有任何解决方案,请告诉我。
目前,
Firelens
是将日志从 ECS Fargate 导出到 S3 存储桶的最佳工具。 FireLens 可与 Fluent Bit 和 Fluentd 日志转发器配合使用。不过,我建议您使用 Fluent Bit
,因为它比 Fluentd
更有效。
欲了解更多信息,您可以参考。
对于 ECS Fargate 的自定义日志转发,我使用了 Firelens 和 Fluentbit。 Amazon link 提供的文档不完整,对我尝试 NewRelic 的帮助不大,但它提供了一个起点。但由于您想将日志转发到 S3,您不需要太多麻烦,因为它已经是图像 amazon/aws-for-flu-bit:latest 中的一项服务,并遵循文档和下面提到的一些更改-
logDestination.conf-
[OUTPUT]
Name s3
Match *
bucket my-bucket
region us-west-2
total_file_size 250M
s3_key_format /$TAG[2]/$TAG[0]/%Y/%m/%d/%H/%M/%S/$UUID.gz
s3_key_format_tag_delimiters .-
源 Fluentbit 文档 链接
此外,主容器中的日志配置将是-
"logConfiguration": {
"logDriver": "awsfirelens"
}
这些更改将允许您将日志转发到 cloudwatch 和 S3 存储桶。