在 Linux 上配置 MongoDB 的日志,主要有两种方式:
下面以 MongoDB 4.x / 5.x / 6.x 常见版本为例说明。
MongoDB 默认配置文件路径通常是:
/etc/mongod.conf(系统包安装)/usr/local/mongodb/etc/mongod.conf(源码/二进制安装)systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
verbosity: 0
| 参数 | 说明 |
|---|---|
| destination | file(文件)或 syslog |
| path | 日志文件路径 |
| logAppend | true 重启后追加日志,不覆盖 |
| verbosity | 日志级别(0~5,0最简洁,5最详细) |
MongoDB 4.4+ 支持:
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logRotate: reopen
然后配合 logrotate:
sudo vim /etc/logrotate.d/mongodb
内容示例:
/var/log/mongodb/mongod.log {
daily
rotate 7
compress
missingok
notifempty
sharedscripts
postrotate
/bin/kill -SIGUSR1 `cat /var/run/mongod.pid 2>/dev/null` 2>/dev/null || true
endscript
}
systemLog:
destination: syslog
适用于 rsyslog / journalctl
operationProfiling:
slowOpThresholdMs: 100
mode: slowOp
日志中会出现类似:
command xxx took 150ms
mongod --logpath /var/log/mongodb/mongod.log --logappend
sudo systemctl restart mongod
或:
mongod --config /etc/mongod.conf
确保 MongoDB 用户(通常是 mongodb)有写权限:
sudo mkdir -p /var/log/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb
如果你愿意,可以告诉我:
我可以给你一份完全适配你环境的配置。