本文介紹如何在Linux系統中利用logrotate工具實現Node.JS應用日志的輪轉、壓縮和管理。logrotate是Linux系統自帶的日志管理工具,可自動化執行這些操作。
步驟一:安裝logrotate
多數Linux發行版預裝了logrotate。若未安裝,請使用系統包管理器安裝。例如,在Debian/Ubuntu系統中,使用以下命令:
sudo apt-get update sudo apt-get install logrotate
步驟二:配置logrotate
logrotate配置文件通常位于/etc/logrotate.conf或/etc/logrotate.d/目錄下。建議為Node.js應用創建獨立配置文件,例如/etc/logrotate.d/myapp-logs,并添加以下配置:
/path/to/your/node/app/logs/*.log { daily rotate 7 compress delaycompress missingok notifempty create 0640 user group }
配置說明:
- daily:每日輪轉日志。
- rotate 7:保留7個輪轉后的日志文件。
- compress:壓縮輪轉后的日志文件。
- delaycompress:延遲壓縮,直到下次輪轉。
- missingok:日志文件缺失時不報錯。
- notifempty:日志文件為空時不輪轉。
- create 0640 user group:創建新日志文件,權限為0640,用戶和組由系統決定。 請根據實際情況修改user和group。
步驟三:測試logrotate配置
使用以下命令測試配置:
sudo logrotate -d /etc/logrotate.d/myapp-logs
-d選項用于測試模式,不會實際執行輪轉。 若無錯誤,則表示配置正確。 移除-d選項則會實際執行輪轉。
步驟四:監控日志輪轉
logrotate通常在系統啟動時自動運行。您可以查看/var/lib/logrotate/status文件來監控日志輪轉狀態。
注意事項:
確保您的Node.js應用使用合適的日志庫(如winston或pino)并將日志寫入logrotate配置中指定的路徑。 請將/path/to/your/node/app/logs/*.log替換為您的實際日志文件路徑。 正確配置用戶和組權限,確保logrotate能夠訪問和操作日志文件。