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日志轮转