Mongodb預設日誌的清理!

mchdba發表於2014-03-07

Reference: 

 

1, Start a  with verbose logging, with appending enabled, and with the following log file:

   such  as :  mongod -v --logpath /var/log/mongodb/server1.log --logappend

 

2, list the logs:

  ll /var/log/mongodb/server1.log*

 

3,因為日誌不停變大,所以如果不清理,會影響mongodb的執行效率

 

4,清理日誌的辦法

4.1,進入Mongo Shell裡面去清理,

use admin

db.runCommand({logRotate :1} )

PRIMARY> db.runCommand( { logRotate : 1 } );
{ "ok" : 1 }
PRIMARY>

執行完畢,到linux目錄察看

[root@mongo mongodb]# ll *mongodb17* -t
-rw-r--r--. 1 root root     2424 May 21 10:26 mongodb17.log
-rw-r--r--. 1 root root  1774778 May 21 10:25 mongodb17.log.2013-05-21T02-25-29

 

看到會生成一個當前時間節點的log備份,然後生成一個新的跟原來日誌 一樣名字的新日誌出來。

 

4.2, From the UNIX shell, rotate logs for a single process by issuing the following command
kill -SIGUSR1

看到需要pid,所以先去linux上面看mongodb的process id
[root@mongo mongodb]# ps -eaf|grep mongo
root     11857     1 12 May09 ?        1-10:51:19 /usr/local/mongodb37017/bin/mongod -f /etc/mongodb/37017.conf
root     11887     1  1 May09 ?        02:57:04 /usr/local/mongodb37018/bin/mongod -f /etc/mongodb/37018.conf
root     11902     1  1 May09 ?        02:58:35 /usr/local/mongodb37020/bin/mongod -f /etc/mongodb/37020.conf
root     11918     1  1 May09 ?        02:58:11 /usr/local/mongodb37019/bin/mongod -f /etc/mongodb/37019.conf
root     20572 20358  0 10:24 pts/0    00:00:00 /usr/local/mongodb37017/bin/mongo 127.0.0.1:37017/admin -uroot -proot
root     20964 20577  0 10:32 pts/2    00:00:00 grep mongo

找到mongodb的process id為11857 ,然後執行命令,follows:

[root@mongo mongodb]# kill -SIGUSR1 11857
[root@mongo mongodb]# ll *mongodb17* -t
-rw-r--r--. 1 root root       71 May 21 10:34 mongodb17.log
-rw-r--r--. 1 root root    15613 May 21 10:33 mongodb17.log.2013-05-21T02-34-00
-rw-r--r--. 1 root root  1774778 May 21 10:25 mongodb17.log.2013-05-21T02-25-29
看到綠色粗體的就是新生成的備份的日誌檔案,然後生成一個新的跟原來日誌 一樣名字的新日誌出來。

 

4.3,From the UNIX shell, rotate logs for all mongod processes on a machine by issuing the following command:
killall -SIGUSR1 mongod

看到這個是在linux下面rotate所有的mongodb程式的log,follows:

[root@mongo mongodb]# killall -SIGUSR1 mongod   #執行命令
[root@mongo mongodb]# 
[root@mongo mongodb]# ll  -t
total 119656
-rw-r--r--. 1 root root      151 May 21 10:36 mongodb18.log
-rw-r--r--. 1 root root      374 May 21 10:36 mongodb20.log
-rw-r--r--. 1 root root       71 May 21 10:36 mongodb17.log
-rw-r--r--. 1 root root       71 May 21 10:36 mongodb19.log
-rw-r--r--. 1 root root     5524 May 21 10:36 mongodb17.log.2013-05-21T02-36-56
-rw-r--r--. 1 root root  1794901 May 21 10:36 mongodb19.log.2013-05-21T02-36-56
-rw-r--r--. 1 root root  1794518 May 21 10:36 mongodb20.log.2013-05-21T02-36-56
-rw-r--r--. 1 root root  1794805 May 21 10:36 mongodb18.log.2013-05-21T02-36-56
看到4個mongodb程式都生成了新的日誌,備份了舊的日誌。

 

4.4,CP,>,最原始的辦法。

cp mongodb17.log mongodb17.log.bak.2013-05-21.10-40
> mongodb17.log

 

個人比較推薦的是4.3 killall -SIGUSR1 mongod。當然了這裡備份完後,還需要自己壓縮並將壓縮日誌檔案copy到自己的日誌備份檔案伺服器上面去。

 


 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26230597/viewspace-1103374/,如需轉載,請註明出處,否則將追究法律責任。

相關文章