- 首页 >
- 问答 >
-
云计算 >
- MongoDB在Linux上的日志分析方法有哪些
MongoDB在Linux上的日志分析方法有哪些
小樊
34
2025-12-28 06:35:51
MongoDB在Linux上的日志分析方法
一 基础查看与实时监控
- 定位日志路径:常见为**/var/log/mongodb/mongod.log**,也可在配置文件中查看:cat /etc/mongod.conf | grep path。
- 常用命令:
- 实时跟踪:tail -f /var/log/mongodb/mongod.log
- 分页浏览:less /var/log/mongodb/mongod.log(支持/关键字搜索)
- 查看首尾:head -n 20;tail -n 50
- 关键字过滤:grep -i “error|warning” /var/log/mongodb/mongod.log
- systemd 环境:journalctl -u mongod -n 50(最近50条);-f 实时跟踪
二 命令行文本处理与统计
- 错误与慢操作快速筛选:
- 错误计数与排序:grep -i “error” mongod.log | sort | uniq -c | sort -rn
- 慢查询阈值筛选(mtools):mlogfilter mongod.log --slow 1000(单位毫秒)
- 结构化日志解析(JSON):
- 提取超过阈值的操作:jq ‘. | select(.attr.durationMillis >= 1000)’ mongod.log
- 字段与时间窗口:
- 提取时间戳与级别:awk ‘{print $1, $2}’ mongod.log | grep ‘error’
- 按时间范围筛选(mtools):mlogfilter mongod.log --from “2025-10-01T00:00:00” --to “2025-10-02T00:00:00” --slow 1000
- 频次统计与TopN:
- 错误类型TopN:grep -o ‘E\d{4}’ mongod.log | sort | uniq -c | sort -nr | head
三 专用工具与可视化
- mtools(Python 工具集,专为 MongoDB 日志):
- 统计概览:mloginfo mongod.log(时长、操作类型分布、错误数量)
- 慢查询筛选:mlogfilter mongod.log --slow 60000(>60秒)
- 查询趋势图:mplotqueries mongod.log --group namespace --output-file query_trend.png
- 集中式日志平台:
- ELK Stack(Elasticsearch + Logstash + Kibana):采集、解析、存储与可视化,适合大规模集群
- 其他:Graylog、Datadog、New Relic 等,便于告警与仪表盘
四 日志级别与组件控制
- 配置文件调整(/etc/mongod.conf):
- systemLog: destination: file;path: /var/log/mongodb/mongod.log;logAppend: true;verbosity: 0-5(数值越大越详细)
- 动态调优(无需重启):db.setLogLevel(1, “query”)(将查询模块日志级别设为1)
- 组件级日志:db.getLogComponents() 查看;db.adminCommand({ getLog: 1 }) 获取全部日志
五 日志轮转与归档实践
- logrotate 示例(/etc/logrotate.d/mongodb):
- /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 2>/dev/null || echo 0); endscript }
- 验证与执行:logrotate -vf /etc/logrotate.d/mongodb
- 归档与清理:按日归档至**/var/log/mongodb/archive/并删除30天**前旧日志(可用 rsync/cp + 定时任务)
- 权限与安全:chown mongodb:adm /var/log/mongodb/mongod.log;chmod 640 /var/log/mongodb/mongod.log