隨著MongoDB中保存的數(shù)據(jù)越來(lái)越多,對(duì)MongoDB服務(wù)狀態(tài)的監(jiān)控也越來(lái)越重要也祠,經(jīng)常關(guān)注服務(wù)是否健康茫船,才能防止故障以及優(yōu)化。
1.靜態(tài)監(jiān)控db.serverStatus()
使用mongo命令進(jìn)入shell客戶(hù)端后輸入以下命令可以查看MongoDB服務(wù)的狀態(tài)招盲,有助于故障診斷和性能分析低缩。
db.serverStatus()
此命令的輸出信息非常多,看得眼花繚亂曹货,可以根據(jù)實(shí)際情況有選擇地查詢(xún)監(jiān)控信息咆繁。
- 主機(jī)名
db.serverStatus().host
- 鎖
db.serverStatus().locks
- 全局鎖
db.serverStatus().globalLock
- 內(nèi)存
db.serverStatus().mem
- 連接數(shù)
db.serverStatus().connections
- 額外信息
db.serverStatus().extra_info
- 索引統(tǒng)計(jì)
db.serverStatus().indexCounters
- 后臺(tái)刷新
db.serverStatus().backgroundFlushing
- 游標(biāo)
db.serverStatus().cursors
- 網(wǎng)絡(luò)
db.serverStatus().network
- 副本集
db.serverStatus().repl
- 副本集操作計(jì)數(shù)器
db.serverStatus().opcountersRepl
- 操作計(jì)數(shù)器
db.serverStatus().opcounters
- 斷言
db.serverStatus().asserts
- 回寫(xiě)隊(duì)列
db.serverStatus().writeBacksQueued
- 持久化
db.serverStatus().dur
- 記錄狀態(tài)
db.serverStatus().recordStats
- 工作集
db.serverStatus({workingSet:1}).workingSet
- 指標(biāo)
db.serverStatus().metrics
2.動(dòng)態(tài)監(jiān)控mongostat
MongoDB還提供了動(dòng)態(tài)的監(jiān)控工具mongostat,mongostat會(huì)每秒輸出一次serverStatus提供的重要信息顶籽。(有點(diǎn)類(lèi)似Linux系統(tǒng)上的top工具)玩般。
$ mongostat
insert query update delete getmore command % dirty % used flushes vsize res qr|qw ar|aw netIn netOut conn time
*0 *0 *0 *0 0 1|0 0.0 0.0 0 316M 58.0M 0|0 0|0 79b 21.1k 1 2018-05-21T17:03:55+08:00
*0 *0 *0 *0 0 1|0 0.0 0.0 0 316M 58.0M 0|0 0|0 79b 21.1k 1 2018-05-21T17:03:56+08:00
*0 *0 *0 *0 0 1|0 0.0 0.0 0 316M 58.0M 0|0 0|0 79b 21.1k 1 2018-05-21T17:03:57+08:00
*0 *0 *0 *0 0 1|0 0.0 0.0 0 316M 58.0M 0|0 0|0 79b 21.1k 1 2018-05-21T17:03:58+08:00
*0 *0 *0 *0 0 1|0 0.0 0.0 0 316M 58.0M 0|0 0|0 79b 21.1k 1 2018-05-21T17:03:59+08:00
*0 *0 *0 *0 0 1|0 0.0 0.0 0 316M 58.0M 0|0 0|0 79b 21.1k 1 2018-05-21T17:04:00+08:00
3.第三方工具
除了上述方法可以對(duì)MongoDB進(jìn)行監(jiān)控,還有一些第三方的工具礼饱,如:Hyperic坏为、Zabbix、OpenFalcon等镊绪,可以根據(jù)實(shí)際需要選擇匀伏。