在CentOS系統中,MongoDB的日志輪轉可以通過配置logrotate
工具來實現。以下是設置MongoDB日志輪轉的步驟:
安裝logrotate(如果尚未安裝):
sudo yum install logrotate
創建或編輯MongoDB的logrotate配置文件:
MongoDB的日志文件通常位于/var/log/mongodb/mongod.log
。你可以為MongoDB創建一個單獨的logrotate配置文件,或者將其包含在系統的全局logrotate配置中。
創建一個新的配置文件:
sudo vi /etc/logrotate.d/mongodb
或者編輯現有的配置文件(如果有的話)。
添加以下內容到logrotate配置文件:
/var/log/mongodb/mongod.log {
daily
rotate 7
compress
missingok
notifempty
create 640 mongodb adm
postrotate
if [ -f /var/run/mongodb.pid ]; then
kill -SIGUSR1 `cat /var/run/mongodb.pid`
fi
endscript
}
解釋:
daily
: 每天輪轉日志。rotate 7
: 保留7個輪轉日志文件。compress
: 壓縮舊的日志文件。missingok
: 如果日志文件丟失,不要報錯。notifempty
: 如果日志文件為空,不進行輪轉。create 640 mongodb adm
: 創建新的日志文件,權限為640,屬主為mongodb,屬組為adm。postrotate
和 endscript
: 在輪轉日志后執行的腳本。這里發送SIGUSR1信號給MongoDB進程,通知它重新打開日志文件。測試logrotate配置: 你可以手動測試logrotate配置是否正確:
sudo logrotate -f /etc/logrotate.d/mongodb
這將強制執行一次日志輪轉,并顯示處理的結果。
確保logrotate定時任務運行:
logrotate
通常由系統的cron任務自動執行。你可以檢查/etc/cron.daily/logrotate
文件,確保它包含了對MongoDB日志文件的輪轉命令。
通過以上步驟,你應該能夠成功設置MongoDB的日志輪轉。如果你遇到任何問題,請檢查logrotate的日志文件(通常位于/var/log/logrotate.log
)以獲取更多信息。