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")
上面的兩種方法都是修改,那麼可否初始化是就配置呢?實際上是能夠的,咱們只須要在初始配置文件中加入相應的參數就能夠了,在此再也不展開。
本文版權歸做者全部,未經做者贊成不得轉載,謝謝配合!!!