在 Debian 上配置 MongoDB 日志,主要取决于你使用的 MongoDB 版本 以及 安装方式(apt 官方包 / tarball / Docker)。下面以 Debian + 官方 apt 安装的 MongoDB(4.4 / 5.0 / 6.0 / 7.0) 为例说明。
MongoDB 的主配置文件通常是:
/etc/mongod.conf
日志相关配置在 systemLog 节点下。
编辑配置文件:
sudo vim /etc/mongod.conf
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
说明:
destination: file:日志写入文件path:日志文件路径logAppend: true:重启后追加,不覆盖systemLog:
destination: syslog
日志会出现在:
/var/log/syslog
或
journalctl -u mongod
systemLog:
verbosity: 1
级别说明:
0:默认(推荐)1~5:越往后越详细(调试用)也可以针对模块设置(高级):
systemLog:
component:
query:
verbosity: 2
operationProfiling:
slowOpThresholdMs: 100
mode: slowOp
说明:
mongod.log 中查看:
cat /etc/logrotate.d/mongodb-server
示例内容:
/var/log/mongodb/mongod.log {
daily
rotate 10
compress
missingok
notifempty
sharedscripts
postrotate
/bin/kill -SIGUSR1 $(cat /var/lib/mongodb/mongod.lock)
endscript
}
手动测试:
sudo logrotate -f /etc/logrotate.d/mongodb-server
use admin
db.runCommand({ logRotate: 1 })
sudo systemctl restart mongod
查看状态:
sudo systemctl status mongod
查看日志:
tail -f /var/log/mongodb/mongod.log
sudo mkdir -p /var/log/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb
YAML 对缩进敏感,确保使用 2 个空格,不要使用 Tab。
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
verbosity: 0
operationProfiling:
slowOpThresholdMs: 100
mode: slowOp
如果你愿意,可以告诉我:
我可以给你更精确的配置。