温馨提示×

mongodb日志在centos如何查看

小樊
41
2025-11-23 19:17:00
栏目: 云计算

在 CentOS 上查看 MongoDB 日志的常用方法

一 快速定位日志文件路径

  • 常见默认路径为:/var/log/mongodb/mongod.log。若通过包管理器安装并启用服务,日志通常写入该文件;若为源码或自定义安装,路径以配置文件中的 systemLog.path 为准。也可在 /etc/mongod.conf 中查看或调整日志配置。示例查看配置:
    • 查看配置文件:cat /etc/mongod.conf
    • 在 mongo shell 中查看日志组件:db.getLogComponents()
    • 获取全部日志内容:db.adminCommand({ getLog: 1 })

二 常用查看与过滤命令

  • 实时查看最新日志:tail -f /var/log/mongodb/mongod.log
  • 查看末尾 N 行:tail -n 200 /var/log/mongodb/mongod.log
  • 关键字过滤(如错误):grep -i “error” /var/log/mongodb/mongod.log
  • 复杂分析示例(统计特定错误出现次数):awk ‘/error code 11000/ {count++} END {print count}’ /var/log/mongodb/mongod.log
  • 若服务未写入预期文件,可用系统日志排查:journalctl -xe | grep mongod

三 在 mongo shell 内查看与调整日志

  • 连接 shell:mongo(或带鉴权:mongo --host --port -u -p --authenticationDatabase admin)
  • 查看各组件日志级别:db.getLogComponents()
  • 动态设置日志级别(示例将整体设为 1,查询组件设为 2):db.adminCommand({ setLogLevel: 1, logComponentVerbosity: { verbosity: 1, query: { verbosity: 2 } } })

四 日志轮转与运维建议

  • 使用 logrotate 做按日轮转、保留 7 天、压缩归档,避免日志无限增长。示例配置(/etc/logrotate.d/mongod):
    • /var/log/mongodb/mongod.log { daily rotate 7 missingok notifempty compress delaycompress sharedscripts postrotate /bin/kill -SIGUSR1 $(cat /var/run/mongodb/mongod.pid 2>/dev/null) 2>/dev/null || true endscript }
  • mongod.conf 中启用基于 logrotate 的重新打开:systemLog: { logrotate: { reopen: true, path: /var/log/mongodb/mongod.log } }
  • 分析慢查询与异常时,可结合 mtools(如 mlogfilter、mloginfo)做时间筛选与统计,便于定位性能瓶颈

0