MongoDB日志切換(Rotate Log Files)指南
創(chuàng)新互聯(lián)建站是一家專業(yè)從事成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司。作為專業(yè)的建站公司,創(chuàng)新互聯(lián)建站依托的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營(yíng)經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣及網(wǎng)站設(shè)計(jì)開發(fā)服務(wù)!
MongoDB默認(rèn)情況下不會(huì)自動(dòng)的切換輪轉(zhuǎn)日志的,這將會(huì)導(dǎo)致日志日漸增大,在繁忙的業(yè)務(wù)下,日志增長(zhǎng)量非常大的。如此之大的日志文件,查看某天的日志也不太方便。因此,需要對(duì)mongodb 日志文件進(jìn)行切換。
--logRotate
默認(rèn)值:rename
3.0.0版本新特性:指定logRotate行為。
指定為rename或者reopen。
rename 重命名日志文件。
reopen 關(guān)閉并重新打開日志文件遵循典型的Linux/Unix日志切換行為。當(dāng)使用Linux/Unix logrotate工具時(shí),使用reopen避免日志丟失。
如果指定reopen時(shí),也必須同時(shí)使用—logappend
默認(rèn)情況下,MongoDB使用--logRotate rename行為。使用rename,mongod或mongos通過在文件名稱末尾添加UTC(GMT)時(shí)間戳的方式重命名當(dāng)前的日志文件,然后打開新的日志文件,關(guān)閉之前舊的日志文件,并發(fā)送所有新的日志信息到新的日志文件中。
1. 啟動(dòng)mongod實(shí)例。
mongod –v –logpath /var/log/mongodb/server1.log
你也可以顯式指定--logRotate rename
2. 列出日志文件。
在另一個(gè)終端中,列出匹配文件:
ls /var/log/mongodb/server1.log*
結(jié)果將包含一個(gè)日志文件,server1.log。
3. 切換日志文件。
在mongo shell下,從admin數(shù)據(jù)庫(kù)運(yùn)行l(wèi)ogRotate命令切換日志文件:
use admin db.runCommand({logRotate:1})
4. 查看新的日志文件。
列出新的日志文件,來(lái)查看新創(chuàng)建的日志:
ls /var/log/mongodb/server1.log*
應(yīng)該列出兩個(gè)日志文件:server1.log,它是當(dāng)日志文件重新打開時(shí)mongod或mongos創(chuàng)建的;server1.log.
切換日志文件不會(huì)修改舊的切換日志文件。當(dāng)你切換日志時(shí),你將通過附加時(shí)間戳來(lái)重命名server1.log文件,并且一個(gè)新的空server1.log文件將會(huì)收到所有新的日志輸入。
3.0.0版本的新特性。
使用--logRotate reopen切換日志,關(guān)閉并打開日志文件遵循典型的Linux/Unix日志切換行為。
1. 啟動(dòng)mongod實(shí)例,指定--logRotate參數(shù)值為reopen。
mongod –v –logpath /var/log/mongodb/server1.log –logRotate reopen –logappend
你必須使用帶有--logRoate reopen參數(shù)的--logappend選項(xiàng)。
2. 列出日志文件。
在另一個(gè)終端,列出匹配的文件:
ls /var/log/mongodb/server1.log*
結(jié)果包含一個(gè)日志文件,server1.log。
3. 切換日志文件。
在mongo shell中,從admin數(shù)據(jù)庫(kù)執(zhí)行l(wèi)ogRotate命令執(zhí)行日志文件切換:
use admin db.runCommand({logRotate:1})
你應(yīng)該使用一個(gè)外部進(jìn)程重命名日志文件,遵循典型的Linux/Unix日志切換行為。
2.2版本的新特性。
通過syslog切換日志,mongod發(fā)送日志數(shù)據(jù)到syslog而不是寫入到文件。
1. 啟動(dòng)mongod實(shí)例使用--syslog選項(xiàng)
mongod –syslog
不要包含--logpath。因?yàn)?-syslog告訴mongod發(fā)送日志數(shù)據(jù)到syslog,所以指定--logpath將導(dǎo)致錯(cuò)誤。
為了指定用于記錄信息到syslog的設(shè)備級(jí)別,使用--syslogFacility選項(xiàng)或者systemLog.syslogFacility配置設(shè)置。
2. 使用系統(tǒng)默認(rèn)的日志切換機(jī)制存儲(chǔ)并切換日志輸出。
對(duì)于Linux/Unix系統(tǒng),你可以對(duì)于一個(gè)單一進(jìn)程使用SIGUSR1信號(hào)來(lái)切換日志,如下:
Kill –SIGUSR1
參考:
Rotate Log Files: http://docs.mongodb.org/manual/tutorial/rotate-log-files/
logRotate: http://docs.mongodb.org/manual/reference/command/logRotate/
Rotate Agent Log Files: https://docs.mms.mongodb.com/tutorial/rotate-agent-log-files/