MongoDB日志记录了数据库实例的健康状态、语句的执行情况、资源的消耗状况,因此日志对于分析数据库服务和性能优化颇有帮助。mongodb
所以,颇有必要花费一些时间来学习解析一下MongoDB的日志文件。数据库
日志信息的格式性能优化
<日志时间> <严重级别> <信息所属分类> [<内容>] <消息>网络
例如 :性能
2014-11-03T18:28:32.450-0500 I NETWORK [initandlisten] waiting for connections on port 27017学习
日志信息严重级别优化
级别spa |
级别描述调试 |
F日志 |
Fatal |
E |
Error |
W |
Warning |
I |
Informational, for Verbosity Level of 0 |
D |
Debug, for All Verbosity Levels > 0 |
信息所属分类
日志分类 |
英文 |
分类描述 |
登入信息 |
ACCESS |
登入访问相关的信息,例如登陆验证状况。 |
命令信息 |
COMMAND |
数据库执行命令相关信息,例如,查询。 |
控制管理信息 |
CONTROL |
记录控制管理相关的信息,例如数据库初始化。 |
FTDC信息 |
FTDC(full-time diagnostic data ) |
全程检测数据信息,例如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")
上面的两种方法都是修改,那么可否初始化是就配置呢?实际上是能够的,咱们只须要在初始配置文件中加入相应的参数就能够了,在此再也不展开。
本文版权归做者全部,未经做者赞成不得转载,谢谢配合!!!