首页 > 解决方案 > Spring Boot Tomcat 访问 Cloudwatch Docker 日志

问题描述

我想将 spring boot 访问日志发送到另一个日志组中的 Cloud watch,我正在使用 docker。应用程序日志默认写入 STD OUT,目前正在使用 awsdriver 进行云监控。默认情况下,访问日志会写入 docker 容器内的文件。如何将文件发送到云手表?

标签: amazon-web-servicesspring-bootdockerloggingamazon-cloudwatch

解决方案


使用 AWS 日志驱动程序,它只会发送您发送到stdout 或 stderrentrypoint的日志,除非您更改或,否则您无法从文件发送日志CMD

在此处输入图像描述

将文件日志发送到 std 的一种方法是

CMD nohup java -jar /opt/spring-cloud/lib/config-client.jar >/dev/null 2>&1 & sleep 10 && tail -f /var/log/access.log

但是,如果你的 spring 应用程序像主进程一样死掉,容器仍然会运行,这一点非常重要tail -f /var/log/access.log

我建议将所有日志写入标准输出和标准错误。

另一种选择是将log文件挂载到主机,然后使用 cloud agent start 从使用cloud watch log agent的挂载文件推送日志。 在此处输入图像描述


推荐阅读