/var/log/mongodb/mongod.log,可通过cat /etc/mongod.conf | grep path确认。tail -f /var/log/mongodb/mongod.log:实时追踪日志新增内容,快速定位实时问题;less /var/log/mongodb/mongod.log:分页查看日志,支持上下翻页及关键字搜索(如/error筛选错误日志);head -n 20 /var/log/mongodb/mongod.log:查看日志前20行,快速了解近期启动或初始化信息。sudo pip3 install mtools安装:
mlogfilter:筛选特定时间段或慢查询日志(如sudo mlogfilter mongod.log --from "2025-10-01T00:00:00" --to "2025-10-02T00:00:00" --slow 1000筛选10月1日凌晨慢查询,阈值1秒);mplotqueries:生成查询趋势图(如sudo mplotqueries mongod.log --group namespace --output-file query_trend.png,展示各命名空间的查询频率);mloginfo:统计日志基本信息(如mloginfo mongod.log输出日志时长、操作类型分布、错误数量等)。jq '. | select(.attr.durationMillis >= 1000)' mongod.log筛选执行时间超过1秒的慢操作,快速定位性能瓶颈。/etc/logrotate.d/mongodb文件,设置自动轮转策略(示例):/var/log/mongodb/mongod.log {
daily # 每天轮转
rotate 7 # 保留7天日志
compress # 压缩旧日志(gzip)
missingok # 日志不存在时不报错
notifempty # 日志为空时不轮转
sharedscripts # 所有日志处理完再执行脚本
copytruncate # 复制日志后清空原文件(避免重启MongoDB)
dateext # 添加日期后缀(如mongod.log-20251001)
size 200M # 单个日志文件超过200MB时轮转
postrotate # 轮转后执行的命令(通知MongoDB重新打开日志文件)
/bin/kill -SIGUSR1 $(cat /var/log/mongodb/mongod.lock) 2>/dev/null || true
}
该配置可实现日志的自动管理,防止日志文件占用过多磁盘空间。grep命令筛选错误信息(如grep -i "error" /var/log/mongodb/mongod.log)或警告(grep -i "warning" /var/log/mongodb/mongod.log),快速定位系统异常;--slow参数(mtools)或直接筛选durationMillis字段(jq),分析执行慢的操作(如jq '. | select(.attr.durationMillis >= 500)' mongod.log),优化查询性能;grep -E "insert|update|delete" /var/log/mongodb/mongod.log),跟踪数据变更情况。/etc/mongod.conf,调整systemLog.verbosity参数(取值0-5):
db.setLogLevel(1, "query")命令调整特定模块的日志级别(如将查询日志设置为1级)。