linux

MongoDB在Linux中的日志管理如何设置

小樊
44
2025-12-18 12:18:25
栏目: 云计算

MongoDB 在 Linux 中的日志管理设置

一 配置文件与基础参数

systemLog:
  destination: file            # 输出到文件;也可设为 syslog 或 stderr
  path: /var/log/mongodb/mongod.log
  logAppend: true             # 重启后追加而非覆盖
  verbosity: 1                 # 全局日志详细程度,0~5,越大越详细
  # 可选:按组件细粒度控制
  # component:
  #   storage:
  #     journal:
  #       verbosity: 2
sudo systemctl restart mongod
-- 将全局详细程度设为 1
db.setLogLevel(1)

-- 仅调整 storage.journal 组件为 2
db.setLogLevel(2, "storage.journal")

-- 查看当前各组件日志级别
db.getLogComponents()

二 日志轮转的两种方式

/var/log/mongodb/mongod.log {
    daily
    rotate 7
    missingok
    notifempty
    compress
    delaycompress
    create 0640 mongodb mongodb
    sharedscripts
    postrotate
        # 若使用 systemLog.logRotate: rename,则通知 MongoDB 执行内置轮转
        if pgrep mongod >/dev/null; then
            systemctl kill --signal=SIGUSR1 mongod 2>/dev/null || \
            /bin/kill -SIGUSR1 $(cat /var/run/mongodb/mongod.pid 2>/dev/null) >/dev/null 2>&1
        fi
    endscript
}

三 慢查询与审计日志

operationProfiling:
  slowOpThresholdMs: 100   # 超过 100ms 的操作记录为慢查询
  mode: slowOp             # 也可设为 all 或 off
security:
  authorization: enabled

auditLog:
  destination: file
  format: JSON
  path: /var/log/mongodb/audit.json
  # 可选:按条件过滤
  # filter: '{ "severity": { "$gte": 1 } }'

四 日志查看与安全运维建议

0
看了该问题的人还看了