Reference: http://docs.mongodb.org/manual/tutorial/rotate-log-files/
1. start service
Start a mongod 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. reason
因为日志不停变大,所以如果不清理,会影响mongodb的运行效率
4. 清理日志的办法
4.1 进入Mongo Shell里面去清理
/usr/local/mongodb/bin/mongo -umanage -p byxf54root$% admin
use admin
db.runCommand
({ logRotate :1
}
)
PRIMARY
> db.runCommand
(
{ logRotate
: 1
}
);
{
"ok"
: 1
}
PRIMARY
>
执行完毕,到linux目录察看
tail -1000f /data01/fkmongo/log/mongodb.log1
看到会生成一个当前时间节点的log备份,然后生成一个新的跟原来日志 一样名字的新日志出来。
4.2. From the UNIX shell, rotate logs for a single process by issuing the following command
kill -SIGUSR1
<mongod process id
>
1
看到需要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:
[root@mongo mongodb
]
killall -SIGUSR1 mongod
1
看到这个是在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到自己的日志备份文件服务器上面去。