在Linux上,MongoDB的日志管理主要包括以下几个方面:
日志文件位置:默认情况下,MongoDB将日志文件存储在/var/log/mongodb目录中。你可以在启动MongoDB时通过--logpath参数指定日志文件的路径。
日志级别:MongoDB支持不同级别的日志记录,包括:v=0(默认,仅记录严重错误)、v=1(记录一般信息)、v=2(记录详细信息)和v=3(记录调试信息)。你可以通过--logLevel参数设置日志级别。
日志轮转:为了防止日志文件过大,可以使用日志轮转工具(如logrotate)来定期压缩、归档和删除旧的日志文件。创建一个logrotate配置文件(如/etc/logrotate.d/mongodb),并添加以下内容:
/var/log/mongodb/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 mongodb mongodb
}
这个配置表示每天轮转一次日志文件,保留最近7天的日志,压缩旧的日志文件,并设置日志文件的权限。
setParameter设置的systemLog.logRotateRenameDeleteThresholdMB参数值的日志文件。你可以通过以下命令设置该参数:db.setParameter({setParameter: 1, logRotateRenameDeleteThresholdMB: 1024})
这将设置MongoDB在删除旧日志文件之前等待的总大小为1024MB。
tail、grep等命令实时查看MongoDB的日志。例如,要查看/var/log/mongodb/mongod.log文件的最后10行,可以运行:tail -n 10 /var/log/mongodb/mongod.log
要实时查看包含"error"关键字的日志行,可以运行:
tail -f /var/log/mongodb/mongod.log | grep "error"
通过以上方法,你可以在Linux上有效地管理MongoDB的日志。