MongoDB數(shù)據(jù)庫的日志文件深入分析
前言
日志是MongoDB中一個非常重要的功能,他保證了數(shù)據(jù)庫服務(wù)器在意外斷電、自然災(zāi)害下數(shù)據(jù)的完整性 。MongoDB日志記錄了數(shù)據(jù)庫實(shí)例的健康狀態(tài)、語句的執(zhí)行狀況、資源的消耗情況,所以日志對于分析數(shù)據(jù)庫服務(wù)和性能優(yōu)化很有幫助。
因此,很有必要花費(fèi)一些時間來學(xué)習(xí)解析一下MongoDB的日志文件。
下面話不多說了,來一起看看詳細(xì)的介紹吧。
日志信息的格式
<日志時間> <嚴(yán)重級別> <信息所屬分類> [<內(nèi)容>] <消息>
例如 :
2014-11-03T18:28:32.450-0500 I NETWORK [initandlisten] waiting for connections on port 27017
日志信息嚴(yán)重級別
級別 |
級別描述 |
F |
Fatal |
E |
Error |
W |
Warning |
I |
Informational, for Verbosity Level of 0 |
D |
Debug, for All Verbosity Levels > 0 |
信息所屬分類
日志分類 |
英文 |
分類描述 |
登入信息 |
ACCESS |
登入訪問相關(guān)的信息,例如登錄驗(yàn)證情況。 |
命令信息 |
COMMAND |
數(shù)據(jù)庫執(zhí)行命令相關(guān)信息,例如,查詢。 |
控制管理信息 |
CONTROL |
記錄控制管理相關(guān)的信息,例如數(shù)據(jù)庫初始化。 |
FTDC信息 |
FTDC(full-time diagnostic data ) |
全程檢測數(shù)據(jù)信息,例如Server的狀態(tài)統(tǒng)計信息。 |
索引信息 |
INDEX |
索引相關(guān)信息,例如索引的創(chuàng)建過程信息。 |
網(wǎng)絡(luò)信息 |
NETWORK |
網(wǎng)絡(luò)相關(guān)信息,例如網(wǎng)絡(luò)連接信息。 |
查詢信息 |
QUERY |
查詢相關(guān)信息,例如查詢計劃信息。 |
副本集信息 |
REPL |
副本集相關(guān)信息,例如副本集初始過程、心跳、回滾等信息 |
分片信息 |
SHARDING |
分片相關(guān)信息,例如mongos的啟動信息 |
存儲信息 |
STORAGE |
存儲相關(guān)信息,例如將 storage 層的數(shù)據(jù)刷入磁盤的信息。 |
還原信息 |
RECOVERY |
還原活動相關(guān)的信息 |
日志信息 |
JOURNAL |
日志相關(guān)的信息 |
寫操作信息 |
WRITE |
寫操作相關(guān)的信息,例如更新(update)的命令。 |
查詢?nèi)罩驹敿?xì)等級
MongoDB將日志詳細(xì)等級劃分為0~5
1. 0 是MongoDB日志的的默認(rèn)級別,會包含 Informational 類信息。
2. 1~5 是調(diào)試級別,會記錄客戶端所有的完整請求
查詢?nèi)罩驹敿?xì)等級的命令。
db.getLogComponents()
修改日志詳細(xì)等級
修改日志詳細(xì)等級的途徑有兩種。
第一種 設(shè)置logComponentVerbosity 參數(shù)來進(jìn)行修改。
另外還需說明的一點(diǎn)是日志分類還可以進(jìn)一步細(xì)化,
例如:將systemLog 整體設(shè)置為1,其中 query 子項 和storage子項 設(shè)置為2,而子項storage的子項設(shè)置journal再設(shè)置為1。
修改的具體命令為:
db.adminCommand( { setParameter: 1, logComponentVerbosity: { verbosity: 1, query: { verbosity: 2 }, storage: { verbosity: 2, journal: { verbosity: 1 } } } } )
第二種方法,通過 db.setLogLevel()
進(jìn)行修改。
此種方法多是針對單一的日志類別進(jìn)行修改。另外還有一點(diǎn)需要特別指出,我們有時候會通過db.getLogComponents()
看到級別日志級別為-1,其實(shí)-1,代表和其父類別的等級一樣。
例如,我們將query類別的日志的詳細(xì)級別設(shè)置為父類( systemLog)的日志詳細(xì)級別,可以執(zhí)行以下命令:
db.setLogLevel(-1, "query")
上面的兩種方法都是修改,那么能否初始化是就配置呢?其實(shí)是可以的,我們只需要在初始配置文件中加入相應(yīng)的參數(shù)就可以了,在此不再展開。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- Docker mongoDB 4.2.1 安裝并收集springboot日志的步驟詳解
- MongoDB中4種日志的詳細(xì)介紹
- 如何利用MongoDB存儲Docker日志詳解
- SpringBoot中l(wèi)ogback日志保存到mongoDB的方法
- Linux下定時切割Mongodb數(shù)據(jù)庫日志并刪除指定天數(shù)前的日志記錄
- 深入講解MongoDB的慢日志查詢(profile)
- 使用MongoDB分析Nginx日志的方法詳解
- MongoDB運(yùn)行日志實(shí)現(xiàn)自動分割的方法實(shí)例
- Node.js和MongoDB實(shí)現(xiàn)簡單日志分析系統(tǒng)
- MongoDB日志文件過大的解決方法
- 詳解MongoDB中的日志模塊
相關(guān)文章
MongoDB開發(fā)規(guī)范與數(shù)據(jù)建模詳解
在MongoDB中,遵循良好的開發(fā)規(guī)范和數(shù)據(jù)建模技巧可以提升數(shù)據(jù)庫性能,簡化數(shù)據(jù)管理,并減少潛在的錯誤,這篇文章主要介紹了MongoDB開發(fā)規(guī)范與數(shù)據(jù)建模,需要的朋友可以參考下2024-08-08MongoDB聚合$listSampledQueries實(shí)例操作
使用$listSampledQueries可以返回指定集合或所有集合的采樣查詢,analyzeShardKey命令使用采樣查詢來計算分片密鑰的讀寫分布指標(biāo),這篇文章主要介紹了MongoDB聚合$listSampledQueries,需要的朋友可以參考下2024-02-02在Linux服務(wù)器中配置mongodb環(huán)境的步驟
這篇文章主要介紹了在Linux服務(wù)器中配置mongodb環(huán)境的步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07MongoDB數(shù)據(jù)庫授權(quán)認(rèn)證的實(shí)現(xiàn)
本文主要介紹了MongoDB數(shù)據(jù)庫授權(quán)認(rèn)證的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12Ubuntu環(huán)境下mongodb安裝配置詳細(xì)步驟
大家好,本篇文章主要講的是Ubuntu環(huán)境下mongodb安裝配置詳細(xì)步驟,感興趣的同學(xué)快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-11-11