MongoDB数据库的日志文件深入分析
前言
日志是MongoDB中一个非常重要的功能,他保证了数据库服务器在意外断电、自然灾害下数据的完整性。MongoDB日志记录了数据库实例的健康状态、语句的执行状况、资源的消耗情况,所以日志对于分析数据库服务和性能优化很有帮助。
因此,很有必要花费一些时间来学习解析一下MongoDB的日志文件。
下面话不多说了,来一起看看详细的介绍吧。
日志信息的格式
<日志时间><严重级别><信息所属分类>[<内容>]<消息>
例如:
2014-11-03T18:28:32.450-0500INETWORK[initandlisten]waitingforconnectionsonport27017
日志信息严重级别
级别 级别描述 F Fatal E Error W Warning I Informational,forVerbosityLevelof 0 D Debug,forAllVerbosityLevels> 0
信息所属分类
日志分类 英文 分类描述 登入信息 ACCESS 登入访问相关的信息,例如登录验证情况。 命令信息 COMMAND 数据库执行命令相关信息,例如,查询。 控制管理信息 CONTROL 记录控制管理相关的信息,例如数据库初始化。 FTDC信息 FTDC(full-timediagnosticdata) 全程检测数据信息,例如Server的状态统计信息。 索引信息 INDEX 索引相关信息,例如索引的创建过程信息。 网络信息 NETWORK 网络相关信息,例如网络连接信息。 查询信息 QUERY 查询相关信息,例如查询计划信息。 副本集信息 REPL 副本集相关信息,例如副本集初始过程、心跳、回滚等信息 分片信息 SHARDING 分片相关信息,例如mongos的启动信息 存储信息 STORAGE 存储相关信息,例如将storage层的数据刷入磁盘的信息。 还原信息 RECOVERY 还原活动相关的信息 日志信息 JOURNAL 日志相关的信息 写操作信息 WRITE 写操作相关的信息,例如更新(update)的命令。
查询日志详细等级
MongoDB将日志详细等级划分为0~5
1. 0是MongoDB日志的的默认级别,会包含Informational 类信息。
2. 1~5是调试级别,会记录客户端所有的完整请求
查询日志详细等级的命令。
db.getLogComponents()
修改日志详细等级
修改日志详细等级的途径有两种。
第一种设置logComponentVerbosity参数来进行修改。
另外还需说明的一点是日志分类还可以进一步细化,
例如:将systemLog整体设置为1,其中query子项和storage子项设置为2,而子项storage的子项设置journal再设置为1。
修改的具体命令为:
db.adminCommand({ setParameter:1, logComponentVerbosity:{ verbosity:1, query:{ verbosity:2 }, storage:{ verbosity:2, journal:{ verbosity:1 } } } })
第二种方法,通过db.setLogLevel()进行修改。
此种方法多是针对单一的日志类别进行修改。另外还有一点需要特别指出,我们有时候会通过db.getLogComponents()看到级别日志级别为-1,其实-1,代表和其父类别的等级一样。
例如,我们将query类别的日志的详细级别设置为父类(systemLog)的日志详细级别,可以执行以下命令:
db.setLogLevel(-1,"query")
上面的两种方法都是修改,那么能否初始化是就配置呢?其实是可以的,我们只需要在初始配置文件中加入相应的参数就可以了,在此不再展开。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。