MongoDB log file growth

后端 未结 4 516
野性不改
野性不改 2020-12-13 04:45

Currently my log file sits at 32 meg. Did I miss an option that would split the log file as it grows?

相关标签:
4条回答
  • 2020-12-13 05:06

    You can use logrotate to do this job for you.

    Put this in /etc/logrotate.d/mongod (assuming you use Linux and have logrotated installed):

    /var/log/mongo/*.log {
        daily
        rotate 30
        compress
        dateext
        missingok
        notifempty
        sharedscripts
        copytruncate
        postrotate
            /bin/kill -SIGUSR1 `cat /var/lib/mongo/mongod.lock 2> /dev/null` 2> /dev/null || true
        endscript
    }
    
    0 讨论(0)
  • 2020-12-13 05:14

    If you think that 32 megs is too large for a log file, you may also want to look inside to what it contains.

    If the logs seem mostly harmless ("open connection", "close connection"), then you may want to start mongod with the --quiet switch. This will reduce some of the more verbose logging.

    0 讨论(0)
  • 2020-12-13 05:16

    Rotate the logs yourself

    http://www.mongodb.org/display/DOCS/Logging

    or use 'logrotate' with an appropriate configuration.

    0 讨论(0)
  • 2020-12-13 05:19

    Using logrotate is a good option. while, it will generate 2 log files that fmchan commented, and you will have to follow Brett's suggestion to "add a line to your postrotate script to delete all mongod style rotated logs".

    Also copytruncate is not the best option. There is always a window between copy and truncate. Some mongod logs may get lost. Could check logrotate man page or refer to this copytruncate discussion.

    Just provide one more option. You could write a script that sends the rotate signal to mongod and remove the old log files. mongologrotate.sh is a simple reference script that I have written. You could write a simple cron job or script to call it periodically like every 30 minutes.

    0 讨论(0)
提交回复
热议问题