AWS ECS容器日志devise模式

我有一个经典的Scala应用程序,它会在该位置生成三个不同的日志

/var/log/myapp/log1/mylog.log /var/log/myapp/log2/another.log /var/log/myapp/log3/anotherone.log 

我集装箱的应用程序,工作正常,我可以通过docker卷装载这些日志。

现在,应用程序/容器将部署在具有自动缩放组的AWS ECS中。 在这种情况下,多个容器可以运行在一个单独的主机上。

我想用云监视来监视我的应用程序日志。

一个解决scheme可以把aws日志代理放在我的应用程序容器中。

有没有更好的方法可以将这些应用程序日志从容器获取到cloudwatch日志中。

非常感谢帮助。

当使用docker时,推荐的方法是不login到文件,而是将日志发送到stdoutstderr 。 这样做可以防止将日志写入容器的文件系统,(取决于正在使用的日志logging驱动程序),可以使用docker logs / docker container logs子命令查看docker container logs

许多应用程序都有一个configuration选项来login到stdout / stderr ,但如果这不是一个选项,你可以创build一个符号链接redirect输出; 例如,Docker Hub上的官方NGINX镜像使用了这种方法 。

Docker支持日志logging驱动程序,它允许您将日志logging发送到(除其他外)AWS云监视。 在修改图像以使其login到stdout / stderr ,您可以configurationAWS日志logging驱动程序。

有关loginDocker的更多信息可以在文档的“logging”部分find