Docker + Nginx + Logrotate 日志管理與輪換實(shí)踐
概述與背景
- Docker 容器化環(huán)境中 Nginx 日志管理的挑戰(zhàn)
- Logrotate 的作用與必要性
- 結(jié)合場景的實(shí)際需求(如日志切割、壓縮、歸檔)
Docker 環(huán)境下的 Nginx 日志配置
- Nginx 日志路徑與 Docker 數(shù)據(jù)卷映射
volumes: - ./nginx/logs:/var/log/nginx
Logrotate 基礎(chǔ)配置
在 /etc/logrotate.d/目錄下 新增 nginx-web 這個(gè)文件可以隨意命名
vim /etc/logrotate.d/nginx-web
- Logrotate 核心配置參數(shù)說明
daily # 指定日志輪換周期為每天(logrotate 每天執(zhí)行一次輪換)。
rotate 15 # 保留最近的 15 個(gè)輪換日志文件,超過 15 個(gè)的將被刪除。
compress # 壓縮舊的日志文件,以節(jié)省存儲空間(默認(rèn)使用 gzip 壓縮)。
missingok # 如果日志文件丟失,不會報(bào)錯(cuò)。即使日志文件不存在,也不會阻止日志輪換。
notifempty # 如果日志文件為空,則不進(jìn)行輪換。
create 777 root root # 創(chuàng)建新的日志文件時(shí),設(shè)置權(quán)限為 777,并且設(shè)置擁有者為 root,用戶組為 root。
postrotate # 在日志文件輪換之后執(zhí)行的腳本??梢杂脕戆l(fā)送信號給服務(wù)來讓其重新打開新的日志文件。
docker kill --signal=USR1 nginx-web # 向 nginx-web 的 Docker 容器發(fā)送 USR1 信號,讓NGINX 重新打開日志文件。
endscript # 結(jié)束 postrotate 腳本的定義。
}
nginx-web配置文件
/storage/docker/nginx/log/access.log 這個(gè)目錄不用多介紹 nginx的日志文件全路徑 error.log同理
/storage/docker/nginx/log/access.log {
daily
rotate 15
compress
missingok
notifempty
create 777 root root
postrotate
docker kill --signal=USR1 nginx-web
endscript
}
/storage/docker/nginx/log/error.log {
daily
rotate 60
compress
missingok
notifempty
create 777 root root
postrotate
docker kill --signal=USR1 nginx-web
endscript
}
手動測試
logrotate -f /etc/logrotate.d/nginx-web
測試結(jié)果正常

查看access.log是否正常
確認(rèn)docker kill --signal=USR1 nginx-web命令是否生效
測試結(jié)果正常!!

配置定時(shí)任務(wù) crontab
crontab -e
添加 (@daily意思為每天0點(diǎn)執(zhí)行)
@daily /usr/sbin/logrotate -f /etc/logrotate.d/nginx-web
到此這篇關(guān)于Docker + Nginx + Logrotate 日志管理與輪換實(shí)踐的文章就介紹到這了,更多相關(guān)Docker Nginx Logrotate 日志管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker安裝RabbitMQ并安裝延時(shí)隊(duì)列插件
本文主要介紹了Docker安裝RabbitMQ并安裝延時(shí)隊(duì)列插件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
docker中搭建overlay 網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境
這篇文章主要介紹了docker中搭建overlay 網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境的相關(guān)資料,需要的朋友可以參考下2017-08-08
docker創(chuàng)建鏡像并上傳云端服務(wù)器的實(shí)現(xiàn)示例
鏡像是一種輕量級、可執(zhí)行的獨(dú)立軟件包,用來打包軟件運(yùn)行環(huán)境和基于運(yùn)行環(huán)境開發(fā)的軟件,本文介紹了如何使用Docker創(chuàng)建鏡像,并將其上傳到云端,感興趣的可以了解一下2023-08-08
Docker運(yùn)行鏡像以及退出、刪除容器的實(shí)現(xiàn)方式
這篇文章主要介紹了Docker運(yùn)行鏡像以及退出、刪除容器的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
Docker?創(chuàng)建centos容器集群并實(shí)現(xiàn)遠(yuǎn)程登錄功能
這篇文章主要介紹了Docker?創(chuàng)建centos容器集群并實(shí)現(xiàn)遠(yuǎn)程登錄,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03

