MongoDB 的日志打印设置对于监控数据库性能和排查问题至关重要。MongoDB 支持通过配置文件(通常是 mongod.confmongos.conf,取决于是配置 MongoDB 服务器(mongod)还是分片集群的路由服务(mongos))来自定义日志行为。

以下是一些基本的步骤和配置项,用于设置和定制 MongoDB 的日志记录:

1. 定位配置文件

首先,需要找到 MongoDB 的配置文件。对于默认安装,它可能位于 /etc/mongod.conf(Linux 系统)或 MongoDB 安装目录下的 bin 文件夹附近的某个位置(如 Windows 系统)。

2. 修改日志配置

打开配置文件,可以找到与日志相关的配置项。MongoDB 提供了多个与日志相关的选项,包括日志路径、日志级别等。

日志路径(systemLog.path

设置 MongoDB 日志文件的存储位置。

systemLog:
  destination: file
  path: "/var/log/mongodb/mongod.log"
  logAppend: true
  • 1.
  • 2.
  • 3.
  • 4.

这里,logAppend 设置为 true 表示日志将被追加到现有文件中,而不是覆盖它。

日志级别(systemLog.verbosity

控制日志的详细程度。可以设置为从 0(仅错误消息)到 5(详细的调试信息)的不同级别。

systemLog:
  verbosity: 2
  • 1.
  • 2.

注意:MongoDB 4.0 及以后版本中,verbosity 的设置方式可能有所不同,特别是当使用 JSON 格式的配置文件时。在一些版本中,可能需要使用更具体的日志组件设置(如 systemLog.component.verbosity)。

日志文件大小和滚动(适用于 MongoDB 4.2+)

MongoDB 4.2 引入了日志文件的自动滚动功能,可以配置日志文件的最大大小和数量。

systemLog:
  destination: file
  path: "/var/log/mongodb/mongod.log"
  logAppend: true
  logRotate: "rename"
  sizeRollOverKB: 10240  # 日志文件大小限制为 10MB
  maxLogSizeMB: 50       # 与 sizeRollOverKB 互斥,使用其一即可
  timeStampFormat: iso8601-utc
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

注意:sizeRollOverKBmaxLogSizeMB 是互斥的,只应设置一个。

3. 重启 MongoDB 服务

修改配置文件后,需要重启 MongoDB 服务以使更改生效。这通常可以通过系统的服务管理工具完成,如 systemctl(Linux 系统上的 systemd)或 Windows 服务管理器。

4. 验证配置

查看日志文件,确认 MongoDB 是否按预期生成了日志,并且日志级别和路径设置正确。

通过这些步骤,可以设置和定制 MongoDB 的日志记录,以满足监控和故障排查需求。记得查阅正在使用的 MongoDB 版本的官方文档,因为配置选项可能会随着版本的不同而有所变化。