【问题标题】:Spring Boot Tomcat Access logs to Cloudwatch DockerSpring Boot Tomcat 访问 Cloudwatch Docker 日志
【发布时间】:2020-03-30 09:31:28
【问题描述】:
我想将 spring boot 访问日志发送到不同日志组中的 Cloud watch,我正在使用 docker。
应用程序日志默认写入 STD OUT,目前正在使用 awsdriver 进行云监控。
默认情况下,访问日志会写入 docker 容器内的文件。
如何随文件发送到云端手表?
【问题讨论】:
标签:
amazon-web-services
spring-boot
docker
logging
amazon-cloudwatch
【解决方案1】:
使用 AWS 日志驱动程序,它只会发送您发送到 stdout 或 stderr 的日志,除非您更改 entrypoint 或 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 watch log agent的挂载文件推送日志。