编辑配置文件 /etc/mongod.conf,设置 systemLog 参数:
systemLog: destination: file path: /var/log/mongodb/mongod.log # 日志路径(需提前创建目录并授权) logAppend: true # 追加日志而非覆盖 logLevel: 2 # 日志级别(0-5,0为最少信息,生产环境建议0或1) 说明:
logLevel:0(默认,仅记录基本信息)、1-5(逐步增加调试细节,调试用)。mongodb:sudo mkdir -p /var/log/mongodb sudo chown mongodb:mongodb /var/log/mongodb 使用 logrotate 工具自动管理日志:
/etc/logrotate.d/mongodb:sudo nano /etc/logrotate.d/mongodb /var/log/mongodb/mongod.log { daily rotate 7 compress missingok notifempty create 0640 mongodb mongodb postrotate sudo kill -USR1 $(cat /var/run/mongodb.pid) # 通知MongoDB重新打开日志文件 endscript } sudo logrotate -vf /etc/logrotate.d/mongodb sudo tail -f /var/log/mongodb/mongod.log sudo grep -i "error" /var/log/mongodb/mongod.log # 搜索错误日志 sudo apt install mtools mloginfo /var/log/mongodb/mongod.log # 查看日志统计 mplotqueries /var/log/mongodb/mongod.log --type scatter # 生成查询耗时散点图 mongo --eval 'db.getLogComponents()' # 获取各组件日志级别 mongo admin --eval 'db.runCommand({ logRotate: 1 })' 注意:生产环境中建议关闭不必要的日志组件(如 QUERY 组件的详细日志),以减少磁盘占用。