Linux系统中,MongoDB的日志文件默认存储位置为/var/log/mongodb/mongod.log。若安装时自定义了路径,可通过以下命令确认:
grep 'path:' /etc/mongod.conf
输出结果中的path值即为日志文件的实际路径。
cat命令输出日志文件全部内容(适合小文件):cat /var/log/mongodb/mongod.log
less命令逐页浏览(支持上下翻页、搜索):less /var/log/mongodb/mongod.log
按/键可输入关键字(如error)搜索,按q退出。head命令查看日志开头部分(如前20行):head -n 20 /var/log/mongodb/mongod.log
若需实时监控日志文件的新增内容(如排查正在发生的错误),使用tail -f命令:
tail -f /var/log/mongodb/mongod.log
按Ctrl+C可停止追踪。该命令会持续输出日志文件的最新内容,适合故障排查场景。
通过mongo命令进入MongoDB Shell,可执行以下命令获取日志详情:
db.getLogComponents()
db.adminCommand({ getLog: 1 })
db.runCommand({ logRotate: 1 })
注:日志轮转也可通过logrotate工具自动完成(见下文)。jq工具提取关键信息:jq筛选特定字段(如提取所有durationMillis超过6秒的慢查询):jq '. | select(.attr.durationMillis >= 6000)' /var/log/mongodb/mongod.log
mtools工具集分析日志:mtools是一组Python工具,可简化日志分析流程:
mtools:sudo pip3 install mtools
mlogfilter /var/log/mongodb/mongod.log --from "2025-09-25T10:00" --to "2025-09-25T18:00" --slow 60000 | tail -n 5
mplotqueries /var/log/mongodb/mongod.log --group namespace --output-file query_stats.png
mloginfo /var/log/mongodb/mongod.log
MongoDB使用logrotate工具自动管理日志轮转,配置文件位于/etc/logrotate.d/mongodb。示例配置(每日轮转、保留7天、压缩旧日志):
/var/log/mongodb/mongod.log {
daily
rotate 7
compress
missingok
notifempty
sharedscripts
copytruncate
dateext
size 200M
postrotate
/bin/kill -SIGUSR1 $(cat /var/log/mongodb/mongod.lock)
endscript
}
daily:每日轮转;rotate 7:保留最近7个日志文件;compress:使用gzip压缩旧日志;size 200M:当日志文件超过200MB时立即轮转;postrotate:轮转后向mongod进程发送SIGUSR1信号,通知其切换到新日志文件。通过以上方法,可全面覆盖MongoDB日志在Linux系统中的查看、分析与管理工作,帮助快速定位问题并优化数据库性能。