当前位置: 首页 > 工具软件 > Mongodb-Log > 使用案例 >

MongoDB 日志管理

荀豪
2023-12-01
MongoDB默认情况下不会自动的切换轮转日志的,这将会导致日志日渐增大,在繁忙的业务下,日志增长量非常大的。如此之大的日志文件,查看某天的日志也不太方便。如是,需要对mongodb 日志文件进行切换,保留7天。
1.SIGUSR1 方法
kill -SIGUSR1 <mongod process id>
会生成一个新的跟原来日志 一样名字的新日志出来,如下删除7天前日志文件
find /data/mongodb_data/log/mongodb.log.* -mtime +7 -delete
注:也可以使用killall -SIGUSR1 mongod,这样所有的mongodb进程都生成了新的日志,备份了旧的日志
2.cp,>最原始的办法。
#备份日志文件
cp mongodb.log mongodb.log.bak.2015-01-21.10-40
#清空日志文件内容
>mongodb.log
3.mongo logRotate 命令方法
不需要重启MongoDB服务的方法重新开启一个新日志文件。
>use admin
>db.runCommand( { logRotate : 1 } )
需要在mongos,mongod,config server运行。启动的时候必须是--logpath指定了log路径的。该方法是Windows系统下的唯一方法。
4.Syslog Log Rotation
# vi /etc/logrotate.d/mongodb
/opt/mongodb/log/mongodb.log {
daily
rotate 7
compress
dateext
missingok
notifempty
sharedscripts
copytruncate
postrotate
/bin/kill -SIGUSR1 `cat /data/mongodb_data/mongod.lock 2> /dev/null` 2> /dev/null || true
endscript
}
#logrotate -f /etc/logrotate.d/mongodb
不过mongodb的稳定性差强人意。在日志轮转中会导致mongodb进程终止的。

启动mongod --syslog


logrotate参见官方文档:logrotate日志管理工具

 类似资料: