MongoDB在Ubuntu上的日志管理怎么做

一、配置日志路径与级别

编辑配置文件 /etc/mongod.conf,设置日志路径、追加模式及级别:

systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true
  verbosity: 0  # 0-5,0为最少信息,调试时可临时调高

重启服务生效:

sudo systemctl restart mongod

二、日志轮转与压缩

使用 logrotate 工具自动管理日志:

  1. 创建配置文件 /etc/logrotate.d/mongodb
sudo nano /etc/logrotate.d/mongodb
  1. 添加以下内容(每日轮转,保留7天,压缩旧日志):
/var/log/mongodb/mongod.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 640 mongodb mongodb
    postrotate
        sudo kill -USR1 $(cat /var/run/mongodb.pid)  # 通知MongoDB重新打开日志
    endscript
}

测试配置:

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

三、查看与分析日志

  • 实时查看
    sudo tail -f /var/log/mongodb/mongod.log
    
  • 关键词搜索
    sudo grep -i "error" /var/log/mongodb/mongod.log  # 搜索错误日志
    
  • 工具分析
    • mtools:安装后分析慢查询、生成可视化图表。
      sudo apt install mtools
      mloginfo --slow /var/log/mongodb/mongod.log  # 查看慢查询
      
    • MongoDB Shell:获取日志组件信息或设置级别。
      mongo --eval 'db.getLogComponents()'
      
  • 图形界面:使用 MongoDB Compass 直接查看。

四、权限与安全

  • 确保日志目录权限正确:
    sudo chown -R mongodb:mongodb /var/log/mongodb
    sudo chmod 640 /var/log/mongodb/mongod.log
    
  • 定期清理过期日志,避免磁盘占满。