MongoDB的日志轮转设置

我想对MongoDB进行日志轮换,所以进行了调查并进行了设置(版本为3.4)。

我想做的事情

我希望每天旋转一次日志。
我希望将旋转后的日志文件命名为 mongod.log_yyyymmdd。
我想要自动压缩日志。
我想要在一定时间之后自动删除,而不是一直保存。

做过的事情 (zuò guò de shì

在logrotate中进行以下配置

# vi /etc/logrotate.d/mongod

/usr/local/var/log/mongodb/mongod.log
{
    missingok
    daily
    dateext
    rotate 30
    create
    compress
    delaycompress
    postrotate
      /bin/kill -SIGUSR1 `cat /var/run/mongodb/mongod.pid 2> /dev/null` 2> /dev/null || true
      find /data/mongodb/logs -type f -size 0 -regextype posix-awk -regex "^\/usr\/local\/var\/log\/mongodb\/mongod\.log\.[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}-[0-9]{2}-[0-9]{2}$" -execdir rm {} \; >/dev/null 2>&1
    endscript
}

注意事项

使用“kill -SIGUSR1”命令可以进行MongoDB的日志轮转,但这会导致MongoDB创建一个名为“mongod.log.yyyy-mm-ddTxx-xx-xx”的空日志文件,所以我使用“find”命令将其删除。

如果设置为nocreate而不是create,MongoDB会在日志文件旋转时丢失日志,并导致MongoDB异常退出。

引述下面的陈述: “参考以下内容”

自动化MongoDB日志轮转

广告
将在 10 秒后关闭
bannerAds