我计划将我们的应用程序迁移到AWS Fargate,因此想要设置相同的日志记录,并将所有日志存储在cloudwatch中。我可以看到我们在Fargate中有两个选项-要么使用默认的awslogs
日志驱动程序,要么使用AWS Firelens
来收集日志。我阅读了AWS文档,但不幸的是,仍然无法确定使用哪个选项以及何时使用。另外,有人能在成本方面给出建议吗?在使用awlogs驱动程序和aws fireens在同一帐户中发送日志到cloudwatch之间,哪个选项要花费多少钱?[我正在寻找一种简单、高效、经济的选择]
一般来说,当你想将日志数据发送到非AWS工具(如elastic stack或datadog等)时,我们使用AWS firerelnes是否公平?vs当发送日志到cloudwatch时使用awlogs驱动程序
有人可以建议吗?
使用Fargate启动类型并希望使用CloudWatch
:您必须在任务定义中使用awlog驱动程序。您可以在这里找到有关CloudWatch
定价的更多信息。CloudWatch有一个免费层,任何超过免费层上限的东西(指标、仪表板、警报、日志、事件等)都有不同的定价计算。例如,在大多数地区,第一个1万参数的成本为0.3美元,但接下来的24万参数的成本为0.1美元,而100万事件的价格为1美元。
使用Fargate且不想使用CloudWatch
:使用AWS FireLens将容器日志推送到第三方日志存储系统。第三方日志存储系统的成本将在这里发挥作用。Data Dog/AppDynamics和其他公司通常提供会员包(免费/高级/企业等)。与CloudWatch不同,每个包将为您提供不同的功能。例如,在DataDog的免费层上,您没有警报。此外,非aws本机监控工具按特定小时数按主机/CPU核心定价。
如果你想发送到CloudWatch
,但是想要预先过滤,而不是将所有内容发送到CloudWatch
,那么Firelens也是有意义的
如果您只是希望ECS Fargate任务的所有日志输出都转到AWS CloudWatch Logs,那么使用awslogs
驱动程序。这基本上可以"开箱即用"无需进一步配置。这是最简单的解决方案。唯一的额外费用将是CloudWatch日志的费用,详细内容见"日志"。选项卡。
如果你想发送日志到其他日志服务,比如Splunk,那么使用Firelens驱动程序,并提供一个Firelens配置文件,告诉Firelens将日志发送到哪里。使用Firelens驱动程序没有额外的成本,但当然有额外的成本,无论您配置Firelens将日志发送到哪个目标服务。