Mongodb日志类型以及日志轮转

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会关闭原来的日志文件并重新打开它。

相关推荐
weixin_408717772 分钟前
mysql在新闻网站中的文章和评论数据库设计
jvm·数据库·python
weixin_568996065 分钟前
如何利用宝塔面板快速部署Node.js项目_配置PM2守护进程
jvm·数据库·python
weixin_586061468 分钟前
mysql如何处理表空间碎片问题_执行OPTIMIZE TABLE整理
jvm·数据库·python
qq_342295829 分钟前
c++怎么在指定位置插入数据而不覆盖_临时文件交换法【详解】
jvm·数据库·python
m0_7467523010 分钟前
JavaScript中Number构造函数对各种类型的转换规则
jvm·数据库·python
2301_8152795210 分钟前
golang如何使用struct嵌套_golang struct结构体嵌套使用方法
jvm·数据库·python
m0_7489203612 分钟前
如何优化SQL长文本字段查询_通过选择性返回减少IO消耗
jvm·数据库·python
HHHHH1010HHHHH13 分钟前
SQL处理大规模分组聚合的内存限制_调整服务器配置
jvm·数据库·python
2301_7775993713 分钟前
CSS如何让最后一个元素靠右显示_利用margin-left-auto技巧
jvm·数据库·python
吕源林15 分钟前
golang如何实现Apple Pay集成_golang Apple Pay集成实现教程
jvm·数据库·python