MongoDB配置按天儲存日誌檔案
mongodb預設不提供直接按天來輸出日誌檔案的配置,但是提供一個日誌清理的命令:logRotate。如果日誌不及時清理會導致mongo訪問越來越慢,甚至卡死。
要使用logRotate命令需要進入到mongo shell,然後執行:
use admin
#db.auth('username','password');
db.runCommand({logRotate:1});
必須要進到admin庫中才生效,如果配置auth需要填寫使用者名稱和密碼
執行完畢後會在logpath目錄中生成一個當前時間節點的備份檔案,並且原來的日誌檔案內容會被清除掉。
在生產環境上不可能每天定時由人工來執行日誌檔案清理,所以可以寫一個指令碼,由crontab定時在每天定時執行轉儲工作,具體指令碼內容如下:
mongo 127.0.0.1:27021/admin --eval "db.auth('admin','[email protected]');db.runCommand({logRotate:1});" ...... |
其中需要配置IP和埠,如果開啟auth,需要填寫訪問admin庫的使用者名稱和密碼 |
crontab的配置如下:
05 00 * * * root /usr/soft/mongodb/logrotate.sh >> logrotate.log
參考:http://www.16boke.com/article/detail/104