Linux环境下MongoDB日志分析方法如下:
-
查看日志文件
- 路径:默认位于
/var/log/mongodb/mongod.log,可通过配置文件/etc/mongod.conf确认。 - 命令:
tail -f:实时查看日志。cat/less:查看全部或分页查看。
- 路径:默认位于
-
筛选关键信息
- 按日志级别过滤:
grep "ERROR"/"WARNING"查找异常。 - 按组件过滤:如
grep "QUERY"查看查询相关日志。
- 按日志级别过滤:
-
慢查询分析
- 开启慢查询日志:在配置文件中设置
slowOpThresholdMs(单位:毫秒,默认100ms)。 - 查看慢查询:通过
db.adminCommand({ getLog: "slowop" })或直接分析日志中"Slow query"字段。 - 工具分析:使用
mtools的mlogfilter筛选慢查询,mplotqueries生成可视化图表。
- 开启慢查询日志:在配置文件中设置
-
结构化日志解析
- 日志为JSON格式,可用
jq工具提取关键字段,如时间戳、组件、执行时间等。 - 示例:
jq '. | select(.attr.durationMillis>500)' mongod.log筛选执行时间超过500ms的日志。
- 日志为JSON格式,可用
-
日志管理技巧
- 轮换与归档:通过
logrotate工具设置日志切割(如按天切割,保留7天)。 - 权限控制:用
chmod/chown限制日志文件访问权限。
- 轮换与归档:通过
-
图形化工具辅助
- MongoDB Compass:图形化查看日志,支持筛选和统计。
- ELK Stack:集中收集、分析日志,适合大规模集群。
参考来源: