2011-02-15 78 views

回答

7

旋轉日誌自己

http://www.mongodb.org/display/DOCS/Logging

,或者使用 'logrotate的' 用適當的配置。

+4

「有適當的配置」:這正是問題......什麼是適當的配置。你的回答(和MongoDB文檔)不清楚這個問題。 – jmcollin92 2016-09-16 16:38:26

5

如果你認爲32兆是一個日誌文件過大,則可能還需要內部看它所包含的內容。

如果日誌似乎大多是無害的(「開放連接」「密切聯繫」),那麼你可能要與--quiet開關啓動mongod。這會減少一些更詳細的日誌記錄。

+4

或者,從2.0開始,在配置文件中添加`quiet = true`(某些系統上的`/ etc/mongod.conf`)。 – 2012-06-20 19:05:26

48

您可以使用logrotate爲您完成這項工作。

/etc/logrotate.d/mongod將這個(假設你使用Linux,並且安裝logrotated):

/var/log/mongo/*.log { 
    daily 
    rotate 30 
    compress 
    dateext 
    missingok 
    notifempty 
    sharedscripts 
    copytruncate 
    postrotate 
     /bin/kill -SIGUSR1 `cat /var/lib/mongo/mongod.lock 2> /dev/null` 2> /dev/null || true 
    endscript 
} 
+0

只是FYI,我從10gen的官方rpms安裝,lograte自動配置。 – 2011-12-06 15:17:16

0

使用日誌輪播是一個不錯的選擇。同時,它會生成2條記錄文件,並且您將不得不按照Brett的建議「添加一行到您的postrotate腳本以刪除所有mongod樣式旋轉日誌」。

另外copytruncate不是最好的選擇。複製和截斷之間總是有一個窗口。一些mongod日誌可能會丟失。可以檢查logrotate手冊頁或參考this copytruncate discussion

只需提供一個選項。您可以編寫一個腳本,將旋轉信號發送給mongod並刪除舊的日誌文件。 mongologrotate.sh是我寫的一個簡單的參考腳本。您可以編寫一個簡單的cron作業或腳本,以便每隔30分鐘定期調用一次。