【问题标题】:How to split the file "mongod.log" on the daily basis?如何每天拆分文件“mongod.log”?
【发布时间】:2019-06-08 02:17:18
【问题描述】:

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

第二个解决方案,我也发布到了 mongodb slack 频道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
}

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

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

【问题讨论】:

    标签: mongodb logrotate


    【解决方案1】:

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

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

    【讨论】:

    • @mOverseer 如果我将相同的示例粘贴到您给我的 logrotate 文件中,那么它有效吗?
    • @mOverseer 请告诉我它是否每天都有效。
    • 这被配置为每天工作,所以它应该这样做。您可以查看logrotate manualsome examples
    • @mOverseer 你能告诉我,我们使用的例子中 all 的含义是什么,比如daily 表示enters days after I want to create a new file for the log。类似的东西。可以吗?
    • Daily 表示,它将每天运行一次,以轮换、重命名或移动日志(取决于您想要什么)。 Rotate 表示,它将旋转 X 次,大致翻译为将 .log 旋转为 log.1、log.2、log.3,直到达到 X。 Size 定义了文件大小的交叉线。因此,如果日志文件不大于定义的大小,它将不会旋转。我认为您还应该查看 maxsize 和 minsize。我再次强烈建议您阅读深入解释所有这些内容的手册页。
    猜你喜欢
    • 2017-01-14
    • 2017-04-03
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 2020-07-17
    相关资源
    最近更新 更多