1. 程式人生 > >關於MongoDB資料庫的日誌解析

關於MongoDB資料庫的日誌解析

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")

上面的兩種方法都是修改,那麼能否初始化是就配置呢?其實是可以的,我們只需要在初始配置檔案中加入相應的引數就可以了,在此不再展開。

本文版權歸作者所有,未經作者同意不得轉載,謝謝配合!!!