我们有一个安装程序,多个容器运行NodeJS服务(节点:11-高寒码头映像),部署在中。
我们已经有一个正在运行的ElasticSearch实例,从非Fargate应用程序收集日志。我想将Fargate容器中的日志传递到这个ElasticSearch实例中,但是我很难找到最好的方法。
1)似乎有一种方法是从Cloudwatch -> Lambda -> ElasticSearch中流出日志。看上去有点过火了--难道没有别的办法可以做到吗?
2)我希望能运行一个Logstash实例,它可以从容器中收集日志,但我不确定在运行Fargate时这是否可行?
3)我是否应该在每个容器上安装类似FileBeat的东西,并让它发送日志?
任何帮助都是非常感谢的。
发布于 2019-09-03 14:18:29
如果您正在寻找基于AWS的托管解决方案,这是其中一种方法。您不需要编写Lambda函数,AWS会为您编写它。尽管,您需要承担AWS CloudWatch日志的成本。
还有另一种由AWS推荐的解决方案,即使用fluent位作为侧加容器,从服务中运行的其他容器直接将日志导出到Elasticsearch/OpenSearch。使用此解决方案,您可以通过不使用AWS CloudWatch来省钱。此解决方案还提供了更好的结果,以便在失败时丢失日志。
是的,如果您与另一个容器一起运行该容器,则这是可能的。
您可以使用Fluent Bit、Filebeat、Fluentd、Function节拍或Logstash。
注意:如果您正在考虑运行您自己的日志导出容器(如Logstash、Fluent Bit等),请不要启用CloudWatch日志以节省费用,因为您不会使用它。
https://stackoverflow.com/questions/57771884
复制相似问题