Nginx既在文件中也在docker日志收集器中登录

问题描述 投票:0回答:2

我正在部署Nginx容器,并且使用这些命令将标准Dockerfile日志重定向到容器日志

RUN ln -sf /dev/stdout /var/log/nginx/access.log \
    && ln -sf /dev/stderr /var/log/nginx/error.log

如果删除上述命令,则按预期将日志写入access.logerror.log文件。如何将日志保存在文件中以及将其发送到容器日志?

docker nginx logging symlink nginx-log
2个回答
0
投票

您可以尝试通过将日志写入文件,然后将文件尾随入口点放置。

tail -f /var/log/nginx/access.log /var/log/nginx/error.log


0
投票

-1以下命令不会将/var/log/nginx/access.log的内容重定向到/dev/stdout,而是创建了一个从/dev/stdout/var/log/nginx/access.log的符号链接。换句话说,/var/log/nginx/access.log只是一个符号链接。

ln -sf /dev/stdout /var/log/nginx/access.log
# ls -alh /var/log/nginx/access.log
lrwxrwxrwx 1 root root 11 Nov 23 01:12 /var/log/nginx/access.log -> /dev/stdout

2-完全不建议在docker容器中存储文件,这有两个原因。首先,一旦重新创建容器,文件将丢失。其次,文件可能会变得很大,尤其是如果这些文件没有日志轮换的话。可以使用FluentD或配置Docker本身将日志转发到外部服务器或主机节点上的文件,而不是在容器中保留副本。

© www.soinside.com 2019 - 2024. All rights reserved.