配置日志路径与级别
/etc/mongod.conf
,在 systemLog
部分设置:systemLog: destination: file # 日志输出到文件 path: /var/log/mongodb/mongod.log # 日志路径 logAppend: true # 追加日志而非覆盖 verbosity: 2 # 日志级别(0-5,0为最少,5为最详细)
destination
设为 syslog
。日志轮转管理
logrotate
工具,创建配置文件 /etc/logrotate.d/mongodb
:/var/log/mongodb/mongod.log { daily # 每日轮转 rotate 7 # 保留7天日志 compress # 压缩旧日志 missingok # 忽略缺失日志 notifempty # 空日志不轮转 create 0640 mongodb mongodb # 新日志权限 }
sudo logrotate -f /etc/logrotate.d/mongodb
。权限与安全
mongodb
用户:sudo chown -R mongodb:mongodb /var/log/mongodb sudo chmod 0640 /var/log/mongodb/mongod.log # 限制访问权限
日志查看与分析
sudo tail -f /var/log/mongodb/mongod.log
。jq
解析 JSON 格式日志:sudo cat /var/log/mongodb/mongod.log | jq '.msg' # 提取消息字段。
grep
过滤关键信息(如错误):sudo grep -i "error" /var/log/mongodb/mongod.log。
高级配置
systemLog: component: storage: 3 # 存储引擎日志级别设为3(警告)
logSize: 0
。参考来源: