/etc/mongod.conf
,設置 systemLog.path
(如 /var/log/mongodb/mongod.log
)、logAppend
(追加模式)、verbosity
(日志級別,0-5,0為默認)。mongo
shell 執行 db.setLogLevel(<level>, <component>)
,如 db.setLogLevel(1, "query")
控制查詢組件日志詳細程度。sudo apt-get install logrotate
。/etc/logrotate.d/mongodb
,示例內容:/var/log/mongodb/mongod.log {
daily
rotate 7
compress
missingok
notifempty
create 640 mongodb mongodb
postrotate
kill -SIGUSR1 `cat /var/run/mongodb.pid`
endscript
}
(rotate 7
保留7天日志,compress
壓縮舊日志,postrotate
通知 MongoDB 重新打開日志文件)。cat
、tail -f
、less
命令查看日志文件,如 tail -f /var/log/mongodb/mongod.log
。jq
工具解析 JSON 格式日志:cat /var/log/mongodb/mongod.log | jq .
。chown
和 chmod
限制日志文件訪問權限,如 sudo chown mongodb:mongodb /var/log/mongodb/mongod.log
,chmod 640
。logwatch
或 Prometheus+Grafana 監控日志文件變化及異常。E11000
重復鍵錯誤)、慢查詢記錄(slowOpThresholdMs
參數)分析問題。參考來源: