Mongodb:日志文件保持为空

Mongodb:日志文件保持为空

昨天我将 2 个文件从 /var/log/mongodb 移到了另一个目录。文件名为:“mongod.log”、“mongod.log.1”(此目录中仅有的 2 个大文件)。此时 mongodb 正在运行,我期望 mongodb 创建一个新的 mongod.log,但它没有这样做。然后我手动创建了一个 mongod.log 并执行了“chown mongodb:mongodb mongod.log”,但文件仍然是空的。

我无法停止 mongodb,如何强制 mongodb 再次登录此文件?mongod.conf 没问题。

答案1

尽管您已移动原始文件,但它仍然保持打开状态mongod,并且它将继续作为其记录的文件,直到您停止该mongod过程或尝试以下操作:

  1. mongod.log删除您在中创建的新文件/var/log/mongodb
  2. 将旧mongod.log文件移回/var/log/mongodb
  3. 发出logRotate命令mongoshell(当连接到相关时mongod

注意:或者,对于步骤 3,您可以发送来kill -SIGUSR1 <pid of mongod>实现相同的目的。

完成此操作后,mongod.log文件夹中现在会有一个新的较小文件,以及被截断的先前文件(不再被写入)。确切的名称取决于您正在运行的版本(您没有提到),但现在您可以自由地将大型日志文件移出到另一个目录(我建议压缩它们,它们很容易压缩)。

如果尺寸是一个常见问题,我建议将其作为 cron 作业或类似作业来执行,以自动化后续过程。

答案2

只需在运行时发出以下命令,您就可以看到日志被写入指定的日志文件:

db.adminCommand( { logRotate : 1 } )

希望这可以帮助 !!!

相关内容