一、配置日志路径与级别
- 修改配置文件:编辑
/etc/mongod.conf,设置systemLog.path(如/var/log/mongodb/mongod.log)、logAppend(追加模式)、verbosity(日志级别,0-5,0为默认)。 - 动态调整级别:通过
mongoshell 执行db.setLogLevel(,如, ) db.setLogLevel(1, "query")控制查询组件日志详细程度。
二、日志轮转管理
- 使用 logrotate:
- 安装工具:
sudo apt-get install logrotate。 - 创建配置文件
/etc/logrotate.d/mongodb,示例内容:/var/log/mongodb/mongod.log { daily rotate 7 compress missingok notifempty create 640 mongodb mongodb postrotate kill -SIGUSR1 `cat /var/run/mongodb.pid` endscript }(
rotate 7保留7天日志,compress压缩旧日志,postrotate通知 MongoDB 重新打开日志文件)。
- 安装工具:
三、日志查看与分析
- 基础查看:用
cat、tail -f、less命令查看日志文件,如tail -f /var/log/mongodb/mongod.log。 - 结构化分析:
- 使用
jq工具解析 JSON 格式日志:cat /var/log/mongodb/mongod.log | jq .。 - 借助 ELK Stack(Elasticsearch+Logstash+Kibana)或 Grafana 进行可视化分析。
- 使用
四、安全与自动化
- 权限管理:通过
chown和chmod限制日志文件访问权限,如sudo chown mongodb:mongodb /var/log/mongodb/mongod.log,chmod 640。 - 自动化归档:编写脚本定期将日志移动到归档目录并清理旧文件,例如每月归档一次。
五、监控与故障排查
- 实时监控:使用
logwatch或 Prometheus+Grafana 监控日志文件变化及异常。 - 故障定位:通过日志中的错误代码(如
E11000重复键错误)、慢查询记录(slowOpThresholdMs参数)分析问题。
参考来源: