编辑配置文件 /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
组件的详细日志),以减少磁盘占用。