Hello! 欢迎来到小浪云!


MongoDB在CentOS上的日志轮转如何设置


centos系统中,利用logrotate工具轻松管理mongodb日志,实现日志文件的自动轮转和压缩。以下步骤将指导您完成配置:

  1. 安装logrotate: 首先,确保系统已安装logrotate。若未安装,请执行以下命令

    sudo yum install logrotate
  2. 创建logrotate配置文件: 创建一个新的logrotate配置文件,例如/etc/logrotate.d/mongodb,并写入以下内容:

    /var/log/mongodb/mongod.log {     daily     rotate 7     compress     notifempty     create 640 mongodb mongodb     postrotate         if [ -f /var/run/mongodb.pid ]; then             kill -SIGUSR1 $(cat /var/run/mongodb.pid)         fi     endscript }

    此配置文件定义了MongoDB日志文件路径(/var/log/mongodb/mongod.log)以及以下参数:

    • daily:每日轮转日志。
    • rotate 7:保留7个旧日志文件。
    • compress:压缩旧日志文件。
    • notifempty:日志文件为空则不轮转。
    • create 640 mongodb mongodb:创建新日志文件,权限为640,所有者和组为mongodb。
    • postrotate…endscript:日志轮转后执行的脚本,发送SIGUSR1信号给MongoDB进程,使其重新打开日志文件。 注意,cat /var/run/mongodb.pid 已修改为更安全的 $(cat /var/run/mongodb.pid),防止命令注入漏洞。
  3. 设置文件权限: 确保配置文件具有正确的权限:

    sudo chmod 644 /etc/logrotate.d/mongodb
  4. 测试配置文件: 执行以下命令测试配置是否正确:

    sudo logrotate -d /etc/logrotate.d/mongodb

    -d 参数用于测试模式,不会实际执行轮转操作,只会显示logrotate将要执行的操作。 如果没有任何错误信息,则表示配置成功。

现在,MongoDB日志的自动轮转已配置完成。logrotate将根据配置文件设置定期执行日志轮转操作。 建议定期检查日志文件大小和logrotate运行日志,以确保其正常运行。

相关阅读