MongoDB日志文件增长

str*_*and 25 mongodb

目前我的日志文件为32兆.我是否错过了一个随着日志文件的增长而分割日志文件的选项?

pdw*_*ker 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
}
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的配置文件.但请务必检查此脚本中的路径 - 在我的情况下是/ var/log/mongodb /和/ var/lib/mongodb. (6认同)
  • 在postrotate发生了什么.这是我应该警惕在生产系统上实施的吗? (2认同)
  • @Matthew:检查文档(在接受的答案中链接).短版本:它会导致mongodb关闭以前的日志并打开下一个日志.由于Unix文件语义,如果你不这样做,mongo将继续写入以前的文件. (2认同)

Gat*_* VP 5

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

如果日志似乎大多是无害的("开放连接","密切联系"),那么你可能要开始mongod--quiet开关.这将减少一些更详细的日志记录.

  • 或者,从2.0开始,将`quiet = true`添加到配置文件(某些系统上的`/ etc/mongod.conf`). (4认同)

小智 1

自己旋转日志

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

或使用“logrotate”和适当的配置。

  • “具有适当的配置”:这正是问题所在......什么是适当的配置。您的回答(和 MongoDB 文档)对于这个主题并不清楚。 (26认同)