MongoDB日誌記錄了資料庫實例的健康狀態、語句的執行狀況、資源的消耗情況,所以日誌對於分析資料庫服務和性能優化很有幫助。 因此,很有必要花費一些時間來學習解析一下MongoDB的日誌文件。 日誌信息的格式 <日誌時間> <嚴重級別> <信息所屬分類> [<內容>] <消息> 例如 : 2014- ...
MongoDB日誌記錄了資料庫實例的健康狀態、語句的執行狀況、資源的消耗情況,所以日誌對於分析資料庫服務和性能優化很有幫助。
因此,很有必要花費一些時間來學習解析一下MongoDB的日誌文件。
日誌信息的格式
<日誌時間> <嚴重級別> <信息所屬分類> [<內容>] <消息>
例如 :
2014-11-03T18:28:32.450-0500 I NETWORK [initandlisten] waiting for connections on port 27017
日誌信息嚴重級別
級別 |
級別描述 |
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")
上面的兩種方法都是修改,那麼能否初始化是就配置呢?其實是可以的,我們只需要在初始配置文件中加入相應的參數就可以了,在此不再展開。
本文版權歸作者所有,未經作者同意不得轉載,謝謝配合!!!