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到文件,而是将日志发送到stdout
和stderr
。 这样做可以防止将日志写入容器的文件系统,(取决于正在使用的日志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