溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MongoDB日志切換(Rotate Log Files)指南

發(fā)布時間:2020-07-14 21:30:05 來源:網(wǎng)絡(luò) 閱讀:24438 作者:UltraSQL 欄目:MongoDB數(shù)據(jù)庫

MongoDB日志切換(Rotate Log Files)指南

 

MongoDB默認(rèn)情況下不會自動的切換輪轉(zhuǎn)日志的,這將會導(dǎo)致日志日漸增大,在繁忙的業(yè)務(wù)下,日志增長量非常大的。如此之大的日志文件,查看某天的日志也不太方便。因此,需要對mongodb 日志文件進(jìn)行切換。

 

日志切換行為

--logRotate <string>

默認(rèn)值:rename

3.0.0版本新特性:指定logRotate行為。

指定為rename或者reopen。

rename 重命名日志文件。

reopen 關(guān)閉并重新打開日志文件遵循典型的Linux/Unix日志切換行為。當(dāng)使用Linux/Unix logrotate工具時,使用reopen避免日志丟失。

如果指定reopen時,也必須同時使用—logappend

 

默認(rèn)日志切換行為

默認(rèn)情況下,MongoDB使用--logRotate rename行為。使用rename,mongod或mongos通過在文件名稱末尾添加UTC(GMT)時間戳的方式重命名當(dāng)前的日志文件,然后打開新的日志文件,關(guān)閉之前舊的日志文件,并發(fā)送所有新的日志信息到新的日志文件中。

 

1. 啟動mongod實例。  

mongod –v –logpath /var/log/mongodb/server1.log


你也可以顯式指定--logRotate rename

 

2. 列出日志文件。  
在另一個終端中,列出匹配文件:    

ls /var/log/mongodb/server1.log*


結(jié)果將包含一個日志文件,server1.log。

 

3. 切換日志文件。  
在mongo shell下,從admin數(shù)據(jù)庫運行l(wèi)ogRotate命令切換日志文件:    

use admin    
db.runCommand({logRotate:1})

 

4. 查看新的日志文件。  
列出新的日志文件,來查看新創(chuàng)建的日志:    

ls /var/log/mongodb/server1.log*


應(yīng)該列出兩個日志文件:server1.log,它是當(dāng)日志文件重新打開時mongod或mongos創(chuàng)建的;server1.log.<timestamp>,重命名的原始日志文件。    
切換日志文件不會修改舊的切換日志文件。當(dāng)你切換日志時,你將通過附加時間戳來重命名server1.log文件,并且一個新的空server1.log文件將會收到所有新的日志輸入。

 

使用--logRotate reopen切換日志

3.0.0版本的新特性。

使用--logRotate reopen切換日志,關(guān)閉并打開日志文件遵循典型的Linux/Unix日志切換行為。

 

1. 啟動mongod實例,指定--logRotate參數(shù)值為reopen。  

mongod –v –logpath /var/log/mongodb/server1.log –logRotate reopen –logappend


你必須使用帶有--logRoate reopen參數(shù)的--logappend選項。

 

2. 列出日志文件。  
在另一個終端,列出匹配的文件:    

ls /var/log/mongodb/server1.log*


結(jié)果包含一個日志文件,server1.log。

 

3. 切換日志文件。  
在mongo shell中,從admin數(shù)據(jù)庫執(zhí)行l(wèi)ogRotate命令執(zhí)行日志文件切換:    

use admin    
db.runCommand({logRotate:1})

 
你應(yīng)該使用一個外部進(jìn)程重命名日志文件,遵循典型的Linux/Unix日志切換行為。

 

通過syslog切換日志

2.2版本的新特性。

通過syslog切換日志,mongod發(fā)送日志數(shù)據(jù)到syslog而不是寫入到文件。

 

1. 啟動mongod實例使用--syslog選項  

mongod –syslog


不要包含--logpath。因為--syslog告訴mongod發(fā)送日志數(shù)據(jù)到syslog,所以指定--logpath將導(dǎo)致錯誤。    
為了指定用于記錄信息到syslog的設(shè)備級別,使用--syslogFacility選項或者systemLog.syslogFacility配置設(shè)置。

 

2. 使用系統(tǒng)默認(rèn)的日志切換機制存儲并切換日志輸出。

 

使用SIGUSR1強制日志切換

對于Linux/Unix系統(tǒng),你可以對于一個單一進(jìn)程使用SIGUSR1信號來切換日志,如下:

Kill –SIGUSR1 <mongod process id>

 

參考:    
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/

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI