容器中的nginx日志

1. nginx容器中的日志

root@op-web-584664588b-629q2:/var/log/nginx# pwd
/var/log/nginx
root@op-web-584664588b-629q2:/var/log/nginx# ls -l
total 32
lrwxrwxrwx 1 root root    11 Jul 22 10:13 access.log -> /dev/stdout
lrwxrwxrwx 1 root root    11 Jul 22 10:13 error.log -> /dev/stderr

如上可见:

  • 日志位置
    /var/log/nginx目录下
  • 日志输出
    是两个软连接,分别输出到/dev/stdout/dev/stderr两个位置。
    这实际是输出到了容器的前台日志。(我们在容器中读这个文件是没有输出的)

2. nginx容器日志持久化

持久化存储只需要将/var/log/nginx 目录挂载出来,两个软连接自然就没有了,日志被保存在文件中。
但此时,容器前台日志也不会输出这些信息了。

  • 测试一下
    nginx.conf 设置如下(当然k8s是通过configmap挂载出来的)
    为了对比,我们保留两个软连接,重新创建两个日志文件
    http {
        error_log  /var/log/nginx/error2.log info;
        rewrite_log on;
        access_log /var/log/nginx/access2.log;
......

结果

root@op-web-584664588b-629q2:/var/log/nginx# ls -l
total 44
lrwxrwxrwx 1 root root    11 Jul 22 10:13 access.log -> /dev/stdout
-rw-r--r-- 1 root root 35557 Sep  9 03:15 access2.log
lrwxrwxrwx 1 root root    11 Jul 22 10:13 error.log -> /dev/stderr
-rw-r--r-- 1 root root  3596 Sep  9 03:08 error2.log

root@op-web-584664588b-629q2:/var/log/nginx# tail -f error2.log
2021/09/09 03:17:20 [notice] 40#40: sched_setaffinity(): using cpu #10
2021/09/09 03:17:20 [notice] 1#1: start worker process 42
2021/09/09 03:17:20 [notice] 41#41: sched_setaffinity(): using cpu #11
2021/09/09 03:17:20 [notice] 1#1: start worker process 43
2021/09/09 03:17:20 [notice] 42#42: sched_setaffinity(): using cpu #12
2021/09/09 03:17:20 [notice] 1#1: start worker process 44
2021/09/09 03:17:20 [notice] 43#43: sched_setaffinity(): using cpu #13
2021/09/09 03:17:20 [notice] 44#44: sched_setaffinity(): using cpu #14
2021/09/09 03:17:20 [notice] 1#1: start worker process 45
2021/09/09 03:17:20 [notice] 45#45: sched_setaffinity(): using cpu #15

posted on 2021-09-15 19:58  运维开发玄德公  阅读(251)  评论(0编辑  收藏  举报  来源

导航