如何調(diào)整Docker中nginx的日志級別詳解
Intro
最近發(fā)現(xiàn)我們的一個應(yīng)用產(chǎn)生了很多日志,而這些日志大多都是 nginx 的 access_log,我們默認(rèn)會把標(biāo)準(zhǔn)輸出收集到 es 里分析應(yīng)用日志,但是很多都是 access_log 就可能會掩蓋掉真實(shí)的錯誤日志,所以可能有時候我們并不想輸出這些 access_log,示例如下:
Nginx Dockerfile
去 Github 上扒了一下 Nginx 的 Dockerfile, docker-nginx/Dockerfile at master · nginxinc/docker-nginx (github.com)
可以看到 nginx 默認(rèn)會把 access_log 和 error_log 鏈接到標(biāo)準(zhǔn)輸出中,這也就是為什么我們在 docker logs 或者 kubectl logs 的時候能夠看到 access_log
我們可以在容器里執(zhí)行 cat /etc/nginx/nginx.conf 來查看默認(rèn)的 nginx 配置
default nginx conf
從上面可以看出來 error_log 的級別是 notice,如果有需要也可以配置成 warn/error,具體的日志配置可以參考官方文檔介紹,可配置的日志級別有:debug, info, notice, warn, error, crit, alert, emerg
access_log 可以使用 off 直接禁用掉或者使用另外一個 path,這樣就不會直接輸出到標(biāo)準(zhǔn)輸出中,就不會有那么多的日志了
New conf
知道配置怎么修改了就比較方便了,只需要把我們新改的配置替換掉默認(rèn)的配置就可以了,新的配置如下:
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 里用新的配置覆寫默認(rèn)的配置:
# Copy custom nginx config COPY /conf/nginx.conf /etc/nginx/nginx.conf
More
如果你想記錄 access_log 但是不想直接,可以配置 access_log 為另外的文件名即可,就會寫入對應(yīng)配置的文件中,但不會直接輸出到標(biāo)準(zhǔn)輸出,也就不會造成采集的日志很多都是 access_log
如果不想記錄,不關(guān)心 access_log 可以直接使用 off 配置禁用 access_log,如果想選擇性地記錄比如 2xx/3xx 不記錄,其他情況記錄也是可以的,nginx 文檔上也有介紹,可以根據(jù)自己需要進(jìn)行選擇
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
到此這篇關(guān)于如何調(diào)整Docker中nginx的日志級別的文章就介紹到這了,更多相關(guān)Docker中nginx日志級別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在docker中部署tomcat并且部署java應(yīng)用程序的步驟詳解
本文給大家介紹如何在docker中部署tomcat及如何部署我們的應(yīng)用程序到docker容器的tomcat里,本文介紹的非常詳細(xì),具有參考借鑒價值,一起看看吧2016-10-10Docker 網(wǎng)絡(luò)模式(四種)詳細(xì)介紹
這篇文章主要介紹了Docker 網(wǎng)絡(luò)模式詳細(xì)介紹的相關(guān)資料,這里提供了四種網(wǎng)絡(luò)模式的介紹,Docker 作為輕量級容器技術(shù),很多比較不錯的功能,網(wǎng)絡(luò)不是多好,這里就整理下,需要的朋友可以參考下2016-11-11docker nginx + https 子域名配置詳細(xì)教程
這篇文章主要介紹了docker nginx + https 子域名配置詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04PVE下擴(kuò)展openwrt?for?x86分區(qū)大小方式
本文介紹了在PVE環(huán)境下如何對OpenWRT虛擬機(jī)的分區(qū)進(jìn)行擴(kuò)容,包括磁盤調(diào)整、軟件安裝、分區(qū)配置和系統(tǒng)引導(dǎo)等步驟,操作前需做好備份,以防數(shù)據(jù)丟失2024-10-10Docker安裝MySQL及授權(quán)遠(yuǎn)程訪問的詳細(xì)教程
Docker是一種流行的容器化平臺,可以簡化應(yīng)用程序的部署和管理,下面這篇文章主要給大家介紹了關(guān)于Docker安裝MySQL及授權(quán)遠(yuǎn)程訪問的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05docker內(nèi)網(wǎng)搭建dns使用域名訪問替代ip:port的操作
這篇文章主要介紹了docker內(nèi)網(wǎng)搭建dns使用域名訪問替代ip:port的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11Docker學(xué)習(xí)筆記之容器查看啟動終止刪除的方法
本篇文章主要Docker學(xué)習(xí)筆記之容器查看啟動終止刪除的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12docker 容器數(shù)據(jù)在盤與盤之間遷移方法
這篇文章主要介紹了docker 容器數(shù)據(jù)在盤與盤之間遷移方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-04-04