本文介紹如何利用logrotate工具配置Nginx日志輪轉(zhuǎn),實現(xiàn)日志文件的定期自動管理。
前提條件: 確保您的系統(tǒng)已安裝logrotate。大多數(shù)Linux發(fā)行版默認安裝,否則請使用系統(tǒng)包管理器安裝(例如,apt-get或yum)。
步驟一:創(chuàng)建配置文件
在/etc/logrotate.d/目錄下創(chuàng)建一個名為nginx的配置文件:
sudo touch /etc/logrotate.d/nginx
步驟二:編輯配置文件
使用文本編輯器打開/etc/logrotate.d/nginx文件,并添加以下配置:
/var/log/nginx/*.log { daily # 每天輪轉(zhuǎn) missingok # 日志文件不存在時忽略 compress # 壓縮輪轉(zhuǎn)后的日志文件 delaycompress # 延遲壓縮,直到下次輪轉(zhuǎn) notifempty # 日志文件為空時忽略 create 0640 www-data adm # 創(chuàng)建新日志文件,權限為0640,屬主www-data,屬組adm sharedscripts # 多個日志文件時,只執(zhí)行一次postrotate腳本 postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 $(cat /var/run/nginx.pid) fi endscript }
配置參數(shù)說明:
- daily:每天輪轉(zhuǎn)日志。可修改為weekly(每周)、monthly(每月)等。
- missingok:如果日志文件不存在,則忽略錯誤。
- compress:輪轉(zhuǎn)后的日志文件將被壓縮(.gz)。
- delaycompress:延遲壓縮,直到下次輪轉(zhuǎn)。
- notifempty:如果日志文件為空,則不進行輪轉(zhuǎn)。
- create 0640 www-data adm:創(chuàng)建新的日志文件,權限為0640,所有者為www-data,組為adm。
- sharedscripts:確保即使有多個匹配的日志文件,postrotate腳本也只執(zhí)行一次。
- postrotate … endscript:日志輪轉(zhuǎn)后執(zhí)行的腳本。此腳本向Nginx主進程發(fā)送USR1信號,觸發(fā)Nginx重新打開日志文件。
步驟三:測試配置
運行以下命令測試配置是否正確:
sudo logrotate -d /etc/logrotate.d/nginx
-d選項用于測試模式,不會實際執(zhí)行輪轉(zhuǎn)操作。 如果一切正常,您將看到類似的輸出,顯示logrotate如何處理Nginx日志文件。 如有錯誤,請仔細檢查配置文件。
步驟四:運行l(wèi)ogrotate
要立即執(zhí)行日志輪轉(zhuǎn),運行以下命令:
sudo logrotate /etc/logrotate.d/nginx
之后,logrotate將根據(jù)您設置的周期自動輪轉(zhuǎn)Nginx日志。
通過以上步驟,您可以成功配置Nginx日志的輪轉(zhuǎn)周期,方便日志管理和存儲空間優(yōu)化。 記得根據(jù)實際需求調(diào)整daily等參數(shù)。