MongoDB 日志切割
MongoDB 默認是不會進行切割日志的,除非我們配置了 logRotate = rename,並且重啟 MongoDB 服務,才會進行切割日志的,那么為了避免實際中我們一個日志文件過大,我們需要對日志進行切割,有兩個辦法:
1. 通過 MongoDB 管理命令進行切割
使用該命令時需要在 MongoDB 運行時指定日志文件路徑。--logpath [file]
,或者在配置文件中指定。
use admin
db.runCommand({logRotate:1})
2. 通過 Linux 系統自帶的服務 logrotate 進行切割
首先我們需要配置 MongoDB 參數 logRotate = reopen, logappend = true,然后通過 Linux 系統自帶的 logrotate。配置文件放置在 /etc/logrotate.d/
, 切割配置文件示例:
/opt/mongodb/log/mongodb.log {
rotate 180
daily
size 100M
olddir /opt/mongodb/log/oldlog
copytruncate
dateext
compress
notifempty
missingok
}
3. 通過向進程發送 SIGUSR1 信號來切割日志
如果我們的進程 id 是19555,那么我們可以通過以下命令來切割日志的。只要我們執行了該命令,日志就會立即進行切割。
kill -SIGUSR1 19555