每天如何分割文件“ mongod.log”?

时间:2019-01-14 04:03:22

标签: mongodb logrotate

在这里,我正在为我的应用程序使用mongodb数据库来存储数据。但是mongodb在/var/log/mongodb/logFileName文件夹中以文件名mongod.log创建的日志非常大。读起来并不容易。因为它的大小为989 mb。我进行了搜索,找到了一种通过logRotate执行此操作的方法,此后,我发现了如何在mongodb文档中应用该方法,日志轮换上有一个主题。我已经应用了解决方案,但是它不会创建任何新文件,也不会保存旧文件。我正在遵循此link的要求。但是今天我检查我的mongodb日志文件为空,它将在晚上11:55:01 pm进行最后修改。但是昨天我什么也不会做,并且无法使用该应用程序。

第二个解决方案,我也将其发布在mongodb松弛频道link上:-

我也尝试过这种解决方案。 我在配置文件/etc/mongod.conf

中进行了更改
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
  logRotate: reopen

我还在文件/etc/logrotate.d/mongod中更改了一些数据,例如

/var/log/mongodb/*.log {
   daily
   rotate 30
   size 50M
   compress
   dateext
   missingok
   notifempty
   sharedscripts
   postrotate
   /bin/kill -SIGUSR1 `cat /var/lib/mongodb/mongod.lock 2> /dev/null` 2> /dev/null || true
  endscript
}

,但它不会每天创建日志。为什么?

现在,您能告诉我如何将大文件每天分割成几部分吗?

1 个答案:

答案 0 :(得分:0)

首先,您指定了诸如dateext之类的参数并将其留空。保持您的配置简单,首先使其以最简单的方式工作,然后就可以对其进行优化。

例如

/var/log/mongodb/*.log {
   daily
   rotate 50
   size 50M
   postrotate
   /bin/kill -SIGUSR1 `cat /var/lib/mongodb/mongod.lock 2> /dev/null` 2> /dev/null || true
  endscript
}

请注意,rotate参数在这里很重要。我们将其保持在较高的水平,以便在达到旋转限制后不会删除日志。