Mongodb日志类型以及日志轮转
1.Mongodb日志类型
系统日志:启动、关闭、错误、警告等。
Journal 日志:保证崩溃恢复的数据完整性。
Oplog:副本集复制操作记录。
慢查询日志:超过 slowms 阈值的操作,包含执行计划、锁等待、CPU 时间等。
优化建议:
开启慢查询日志:db.setProfilingLevel(1, 200)
定期日志轮转:logRotate: rename
敏感数据脱敏:redactClientLogData: true
结合监控工具(如 MongoDB Cloud Manager、Prometheus+Grafana)进行可视化分析。
说明:
db.setProfilingLevel(level,) 0=off 1=slow 2=all
第一个参数是指定级别,不同的级别代表不同的意义,0表示关闭,1表示默认记录耗时大于100毫秒的操作,2表示记录所有操作。第二个参数则是自定义"耗时过长"标准,比如记录所有耗时操作200ms的操作
2.Mongodb日志轮转
1.MongoDB自带机制,执行如下命令可以切换日志文件,不需要重启服务
db.runCommand({logRotate:1})
参考链接:https://mongodb.ac.cn/docs/manual/reference/command/logRotate/



建议配置
systemLog:
quiet: false
destination: file
logAppend: true
logRotate: reopen
path: /var/log/mongodb/mongod.log
quiet的不同值的含义:
quiet: true:如果将quiet设置为true,MongoDB 会显著减少日志输出量。只有非常重要的日志消息,如严重错误(例如数据库无法启动、关键组件故障等)才会被记录。这种设置在生产环境中可能用于减少日志文件的大小和降低 I/O 负载,但同时也会导致可用于故障排查和系统监控的信息大幅减少。例如,在日常操作过程中,常规的连接建立、查询执行等信息将不会被记录。
quiet: false: 当设置为false时,你会得到更详细的日志,有助于调试和监控 MongoDB 的运行状况。例如,你可以看到每个客户端连接的详细信息、执行的查询语句(如果开启了查询日志记录相关配置)、副本集状态变化等信息,这些对于诊断性能问题、排查连接故障以及了解数据库整体运行情况非常有帮助。例如,在排查某个慢查询问题时,详细的日志可能记录了查询执行的时间、涉及的集合以及查询条件等关键信息。
·destination:定义日志存在哪里,可以设置为file、syslog
·path:日志文件的位置和名称。缺省是:/var/log/mongodb/mongod.log。如果设置了destination: file,就必须配置path
·verbosity:定义日志级别
·quiet:如果设置为true,mongodb会运行在quite模式,限制写入日志的量。生产环境通常建议设置为false
·traceAllExceptions:如果设置为true,会打印verbose信息,提供用于调试的额外信息
·syslogFacility:默认是user,与操作系统的syslog设置有关
·logAppend:如果设置为 true,重启后将日志条目追加到已经存在日志文件;如果设置为 false,重启后将创建新的日志文件,并将老的日志文件做备份。
·logRotate:设置日志文件rotation,可以设置成rename、reopen。rename会在老的日志文件后面加上时间戳,并打开新的日志文件;reopen会关闭原来的日志文件并重新打开它。