MongoDB日志文件增长

时间:2011-02-15 14:05:42

标签: mongodb

目前我的日志文件为32兆。我是否错过了在日志文件增长时拆分日志文件的选项?

4 个答案:

答案 0 :(得分:54)

您可以使用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
}

答案 1 :(得分:5)

如果您认为32兆位对于日志文件来说太大,您可能还想查看它包含的内容。

如果日志看起来几乎无害(“打开连接”“关闭连接”),那么您可能希望使用{{mongod启动1}}切换。这将减少一些更冗长的日志记录。

答案 2 :(得分:3)

自己旋转日志

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

或使用具有适当配置的'logrotate'。

答案 3 :(得分:0)

使用logrotate是一个不错的选择。同时,它会生成2个fmchan评论的日志文件,你必须遵循Brett的建议,然后在你的postrotate脚本中添加一行来删除所有mongod风格的旋转日志"。

此外,copytruncate不是最佳选择。复制和截断之间总是有一个窗口。一些mongod日志可能会丢失。可以查看logrotate手册页或参考this copytruncate discussion

再提供一个选项。您可以编写一个脚本,将旋转信号发送到mongod并删除旧的日志文件。 mongologrotate.sh是我编写的一个简单的参考脚本。您可以编写一个简单的cron作业或脚本,每隔30分钟定期调用它。