在CentOS上进行MongoDB日志管理,主要包括配置、轮转、清理及监控等操作,具体如下:
配置日志路径与级别
/etc/mongod.conf
,在 systemLog
部分设置:systemLog:
destination: file
path: /var/log/mongodb/mongod.log # 日志路径,可自定义
logAppend: true # 追加日志(避免重启覆盖)
verbosity: 2 # 日志级别(0-5,2为默认,记录关键信息)
sudo systemctl restart mongod
。日志轮转(自动切割)
logrotate
工具,创建配置文件 /etc/logrotate.d/mongodb
:/var/log/mongodb/mongod.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate # 避免重启服务
postrotate
kill -SIGUSR1 $(cat /var/run/mongodb.pid) # 通知MongoDB重新打开日志文件
endscript
}
sudo chmod 644 /etc/logrotate.d/mongodb
,sudo logrotate -d /etc/logrotate.d/mongodb
。手动清理旧日志
find /var/log/mongodb/ -name "mongod.log.*" -mtime +30 -delete
。#!/bin/bash
LOG_DIR="/var/log/mongodb"
ARCHIVE_DIR="/var/log/mongodb/archive"
mkdir -p $ARCHIVE_DIR
mv $LOG_DIR/mongod.log* $ARCHIVE_DIR/
sudo chown -R mongodb:mongodb $ARCHIVE_DIR
监控与分析
tail -f /var/log/mongodb/mongod.log
。说明:
verbosity
越高,记录信息越详细,生产环境建议设置为2-3。logrotate
是官方推荐的日志轮转方案,需确保配置中 copytruncate
和 postrotate
正确使用,避免服务中断。