如何调整Docker中nginx的日志级别详解

 更新时间:2021年09月14日 09:34:47   作者:WeihanLi  
这篇文章主要给大家介绍了关于如何调整Docker中nginx的日志级别的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Intro

最近发现我们的一个应用产生了很多日志,而这些日志大多都是 nginx 的 access_log,我们默认会把标准输出收集到 es 里分析应用日志,但是很多都是 access_log 就可能会掩盖掉真实的错误日志,所以可能有时候我们并不想输出这些 access_log,示例如下:

Nginx Dockerfile

去 Github 上扒了一下 Nginx 的 Dockerfile, docker-nginx/Dockerfile at master · nginxinc/docker-nginx (github.com)

可以看到 nginx 默认会把 access_log 和 error_log 链接到标准输出中,这也就是为什么我们在  docker logs 或者 kubectl logs  的时候能够看到 access_log

我们可以在容器里执行 cat /etc/nginx/nginx.conf 来查看默认的 nginx  配置

default nginx conf

从上面可以看出来 error_log 的级别是 notice,如果有需要也可以配置成 warn/error,具体的日志配置可以参考官方文档介绍,可配置的日志级别有:debug, info, notice, warn, error, crit, alert, emerg

access_log 可以使用 off 直接禁用掉或者使用另外一个 path,这样就不会直接输出到标准输出中,就不会有那么多的日志了

New conf

知道配置怎么修改了就比较方便了,只需要把我们新改的配置替换掉默认的配置就可以了,新的配置如下:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log error;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    access_log  off;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

然后在 Dockerfile 里用新的配置覆写默认的配置:

# Copy custom nginx config
COPY /conf/nginx.conf /etc/nginx/nginx.conf

More

如果你想记录 access_log 但是不想直接,可以配置 access_log 为另外的文件名即可,就会写入对应配置的文件中,但不会直接输出到标准输出,也就不会造成采集的日志很多都是 access_log

如果不想记录,不关心 access_log 可以直接使用 off 配置禁用 access_log,如果想选择性地记录比如 2xx/3xx 不记录,其他情况记录也是可以的,nginx 文档上也有介绍,可以根据自己需要进行选择

map $status $loggable {
    ~^[23]  0;
    default 1;
}
access_log /path/to/access.log combined if=$loggable;

References

  • https://notestack.io/public/configure-nginx-logging-in-a-docker-container/874f1253-cf1a-4c62-9d2d-467ab23c258d
  • https://docs.nginx.com/nginx/admin-guide/monitoring/logging/
  • https://github.com/nginxinc/docker-nginx/blob/master/stable/alpine/Dockerfile

到此这篇关于如何调整Docker中nginx的日志级别的文章就介绍到这了,更多相关Docker中nginx日志级别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker安装clickhouse过程详解

    docker安装clickhouse过程详解

    这篇文章主要为大家介绍了docker安装clickhouse过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • docker利用nextcloud搭建一个私有百度云盘

    docker利用nextcloud搭建一个私有百度云盘

    这篇文章主要介绍了docker利用nextcloud搭建一个私有百度云盘,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Docker 教程之镜像列出详细介绍

    Docker 教程之镜像列出详细介绍

    这篇文章主要介绍了Docker 教程之镜像列出详细介绍的相关资料,需要的朋友可以参考下
    2016-12-12
  • docker里面不能使用vim的问题及解决

    docker里面不能使用vim的问题及解决

    这篇文章主要介绍了docker里面不能使用vim的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • docker Get https://registry-1.docker.io/v2/: net/http: request canceled 报错

    docker Get https://registry-1.docker.io/v2/: 

    本文主要介绍了docker Get https://registry-1.docker.io/v2/: net/http: request canceled 报错,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • 关于ROS2安装与docker环境使用

    关于ROS2安装与docker环境使用

    大家好,本篇文章主要讲的是关于ROS2安装与docker环境使用,感兴趣的同学赶快来看看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Docker没有启动环境变量的问题解决

    Docker没有启动环境变量的问题解决

    在使用Docker容器时,有时候我们会遇到一个问题,就是在容器中没有启动环境变量,本文主要介绍了Docker没有启动环境变量的问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Docker安装(Ubuntu 64bit)的方法步骤

    Docker安装(Ubuntu 64bit)的方法步骤

    本篇文章主要介绍了 Docker安装 Ubuntu 64bit的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • docker常用命令解读之volume篇

    docker常用命令解读之volume篇

    这篇文章主要介绍了docker常用命令解读之volume篇说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • ubuntu17.10安装docker-ce的方法

    ubuntu17.10安装docker-ce的方法

    本篇文章主要介绍了ubuntu 17.10 安装docker-ce的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03

最新评论