【问题标题】:MongoDB: Log rotate does not appear to be working in Ubuntu 18.04MongoDB:日志轮换似乎在 Ubuntu 18.04 中不起作用
【发布时间】:2020-03-06 21:48:46
【问题描述】:

我尝试使用此处的说明在小型 VPS 服务器上设置日志轮换:https://docs.mongodb.com/manual/tutorial/rotate-log-files/

但是,我看到 mongodb 日志文件非常大(> 1GB),并且自从我尝试设置轮换以来一直没有转换。这是我的mongodb.conf 文件中的内容:

dbpath=/var/lib/mongodb
logpath=/var/log/mongodb/mongodb.log
logappend=true
smallfiles = true
logRotate=reopen
bind_ip = 0.0.0.0
journal=true
replSet = rs0
oplogSize = 100

当我运行 db._adminCommand( {getCmdLineOpts: 1}) 时,我在 systemLog 下看到了这个:

"systemLog" : {
    "destination" : "file",
    "logAppend" : true,
    "logRotate" : "reopen",
    "path" : "/var/log/mongodb/mongodb.log"
}

我之前使用的是mongod 服务,而不是我目前使用的mongodb。似乎轮换对mongod 有效(尽管我不记得设置它),因为有一些大小相同的旧日志文件,这意味着轮换恰好在文件变得太大时发生,而不是比预定的时间间隔,我希望它像以前一样继续工作。查看mongod.conf文件,配置如下:

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

首先,我不确定为什么语法不同。我还在 mongo 中运行了db.runCommand( { logRotate : 1 } ) 命令,尽管我相信这是一次轮换。从mongodb.conf 文件和命令行选项,我认为它应该可以工作。还有什么要补充的吗?

【问题讨论】:

    标签: mongodb ubuntu-18.04 logrotate


    【解决方案1】:

    logrotate: reopen 表示它将继续打开同一个日志文件,您应该使用外部工具轮换日志。见Log Rotation with --logRotate reopen

    注意链接页面中reopen 的警告:

    • 您必须将--logappend 选项与--logRotate reopen 一起使用。
    • 您应该使用外部进程重命名日志文件,遵循典型的 Linux/Unix 日志轮换行为。

    如果您想在日志达到特定大小后对其进行轮换,您可以将reopenlogrotate utility 结合使用,大多数Linux 发行版中都应该存在该logrotate utility。有关 logrotate 实用程序的正确设置,请参阅您的特定发行版的手册/教程。以下是一些示例:How to setup log rotation for MongoDB properlyMongodb - proper way to rotate logs

    如果您希望 MongoDB 为您轮换日志,您应该使用logrotate: rename。这将重命名旧的日志文件,然后在每次服务器重新启动时创建一个新的。见Default Log Rotation Behavior

    【讨论】:

    • 好的,我确实看到了关于设置轮换的两个链接。让我紧张的是postrotate 命令。对于每个示例,它们似乎都不同。查看zoonman.com/blog/mongodb-logrotated 的示例,我在该目录中看不到/var/run/mongodb.pid 文件。我想我应该可以用kill -SIGUSR1 $(pgrep mongod) 替换那个命令,对吗?另外,当它变得太大时,它肯定会自动旋转,还是每天只检查一次?
    猜你喜欢
    • 2014-11-20
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多