首页 > 解决方案 > 如何每天拆分文件“mongod.log”?

问题描述

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

第二个解决方案,我也在 mongodb slack 频道链接上发布了它:-

我也尝试过这个解决方案。我改变了我的配置文件/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
}

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

现在请你告诉我我将如何每天将巨大的文件分成几部分?

标签: mongodblogrotate

解决方案


首先,您指定了诸如 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
}

请注意,旋转参数在这里很重要。我们将它保持在高位,这样它就不会在达到轮换限制后删除日志。


推荐阅读