1. 程式人生 > >MongoDB配置按天儲存日誌檔案

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});"
mongo 127.0.0.1:27022/admin --eval "db.auth('admin','[email protected]');db.runCommand({logRotate:1});"
mongo 127.0.0.1:27023/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