MongoDB日志轮转

在配置文件中添加参数

logpath=/data/app_data/mongodb/log/mongodb.log 
logappend=true


Windows下只有这种日志轮转方式

> use admin;
switched to db admin
> db.runCommand({logRotate : 1})
{ "ok" : 1 }


Linux下还可以通过设置定时任务每天凌晨轮转日志

0 0 * * * /bin/kill -SIGUSR1 `cat /data/app_data/mongodb/data/mongod.pid`



查看日志

-rw-r--r-- 1 mongod mongod  13M Apr  1 20:47 mongodb.log
-rw-r--r-- 1 mongod mongod 332K Dec 20  2013 mongodb.log.2013-12-19T16-00-01
-rw-r--r-- 1 mongod mongod 1.7M Dec 21  2013 mongodb.log.2013-12-20T16-00-01
-rw-r--r-- 1 mongod mongod 1.9M Dec 22  2013 mongodb.log.2013-12-21T16-00-01
-rw-r--r-- 1 mongod mongod 2.3M Dec 23  2013 mongodb.log.2013-12-22T16-00-02
-rw-r--r-- 1 mongod mongod 2.3M Dec 24  2013 mongodb.log.2013-12-23T16-00-01
-rw-r--r-- 1 mongod mongod 2.7M Dec 25  2013 mongodb.log.2013-12-24T16-00-01
-rw-r--r-- 1 mongod mongod 2.5M Dec 26  2013 mongodb.log.2013-12-25T16-00-01


轮转后的日志会以UTC时间戳为文件名后缀。与本地时间有一定的时差。例如这里的16就应该是北京时间的16+8=24即0点



可以使用系统自带的日志轮转工具logrotate对MongoDB日志进行轮转

/etc/logrotate.d/mongodb

/data/app_data/mongodb/log/*.log {
       daily
       rotate 10
       copytruncate
       delaycompress
       compress
       notifempty
       missingok
       postrotate
          /bin/kill -USR1 `cat /data/app_data/mongodb/data/mongod.pid 2>/dev/null` 2> /dev/null|| true
       endscript
}









参考文档:

http://docs.mongodb.org/v2.4/tutorial/rotate-log-files/


你可能感兴趣的:(mongodb)