温馨提示×

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

0