充分利用MongoDB的監控功能

充分利用MongoDB的監控功能

在完成應用系統開發並上線運行後,你就可以讓全世界分享自己的工作成果了。在召開系統發佈會之前,應密切關注數據庫的運行性能。數據庫監控是生產準備環節的必要組成部分,但在預備發佈階段很容易被忽視。

不用擔心,MongoDB已經替你考慮到了這一點。我們將告訴你如何監控數據庫,無論數據庫是安裝在本地,還是通過MongoDB Atlas放在雲端託管。現在,讓我們先看看你能獲得哪些免費服務。

MongoDB中文社區,一個mongoers都會來的社區!(mongoing.com)

Atlas上的免費服務

每個MongoDB Atlas集群都提供監控功能。如果你沒有使用Atlas,可以從這裡獲得一個免費的M0級複製集,自行了解我們將要討論的儀表盤功能。以下是一張指標儀表盤的快照,來自於免費的M0級複製集。

充分利用MongoDB的監控功能

在這裡我們看到的是來自複製集三個節點的曲線圖。在這個實例中,所有活動都發生在第一個主節點。上圖中的指標是一些控件,我們可以按照可調整的粒度查看特定時間段的指標。在曲線圖上移動指針,你就會得到相應時間點的精確數據。

曲線圖第一行顯示的是在每個節點上執行的操作總數,通過選擇“顯示每張圖表的操作計數器”複選框,可以將這張圖表分解成不同的操作計數器。下面一行顯示的是隨時間推移的連接數量信息。

向下滾動,我們會看到更多圖表。現在,我們看到的是部署尺寸(只能看到較小的集群和複製集上的數據)和網絡連接數。

充分利用MongoDB的監控功能

你還可以憑興趣切換行或節點,無論它們是在可視範圍之內,還是之外。這就是你的關鍵指標集,如果你對Atlas集群進行擴展,Atlas會自動為你採集更多的數據,稍後我們還會對此進行介紹。

本地MongoDB的免費服務

當然,你也可以在本地開發並使用MongoDB這一隨處運行的數據庫。好消息是,我們為你提供了一個免費的監控解決方案,更好的消息是,你已經擁有了它,因為它已植入到了你的MongoDB服務器中。只要在本地服務器上運行db.enableFreeMonitoring(),你就可以將指標發送給我們的免費監控服務。通過這項服務,你可以在一個配有豐富圖表的環境中查看過去24小時的活動。該命令本身會返給你一個網址,通過該網址可以查看指標數據:

充分利用MongoDB的監控功能

如果忘記了這個網址,你可以使用mongo shell登錄本地數據庫,然後就可以看到網址了。如果你想確保這些指標的私密性,請安全保存好這個網址。

以下是一張本地MongoDB的截圖,它展示的是我輸入紐約市出租車數據集後出現的結果。你可以看到CPU利用率、指令運行時間和磁盤利用率等數據。

充分利用MongoDB的監控功能

在此可以看出,我們主要執行的是寫操作,而且是用一個650MB的數據集以恆定的速度逐漸填滿了一個驅動器。這些寫操作的執行時間也很穩定。向下滾動屏幕,就可以看到更多的指標:

充分利用MongoDB的監控功能

現在可以看到,我們每秒在系統中插入了大約30,000個文檔;另外還能看到存儲利用率數據,無論是駐留存儲,還是虛擬存儲;同時,還有一個相關的網絡流量突發情況(本實例中,只能在本地訪問MongoDB,因此,該突發情況一定出現在本地接口)。繼續向下滾動屏幕,就可以看到一些關於操作、複製和查詢效率的指標:

efficiency

充分利用MongoDB的監控功能

目前沒有正在進行的複製活動,而且我們也沒有執行數據庫的查詢操作,因此,後面的兩項指標為0。如果是更為典型的工作負載,這裡就會出現大量關於性能的洞察數據。繼續滾動屏幕,最後我們看到的是系統隊列和CPU統計數據:

充分利用MongoDB的監控功能

請注意我們移動光標的方式:將光標移動到曲線圖相應的時間位置,我們就可獲得任意特定時間點的細分數據。

好,關於本地MongoDB,我們介紹的信息已經足夠多了。與Atlas不同,免費監控服務只能保存24小時的數據庫監控數據,因此最好將其用於檢查數據庫的即時性能狀況。

通過db.disableFreeMonitoring()可以很方便地關閉這項服務。

命令行方式的監控操作

如果你習慣以MongoDB命令行的方式來工作,我們還提供了另一套監控工具。Mongostat和mongotop命令能夠生成一系列性能數據,並在終端上顯示出來。MongoDB還提供了一些函數,通過它們也可以獲取指標數據,例如:db.ServerStatus(),db.stats()和replSetGetStatus等管理命令。

儘管有這些功能,你仍然需要親力親為,利用這些功能對數據進行採集和管理。你還可以通過第三方工具監控歷史數據,以實現數據的可視化。另外,不要忘記使用日誌;MongoDB服務器的日誌中飽含大量的系統性能信息,能夠幫助你精確定位並查詢導致緩慢的問題根源。

Atlas上的額外收費服務

在結束討論之前,我們必須提一提剩下的內容,那就是MongoDB Atlas可以提供的監控服務。Atlas的免費監控服務是必要監控指標的最小集。如果你進到付費集群,指標的數量就會增加。例如,在M10集群,你可以看到下圖中的所有指標:

充分利用MongoDB的監控功能

不僅是數據庫指標,還包括一系列支撐硬件和操作系統的指標,都可以為你提供完整的Atlas集群工作狀態圖。這張圖是基於歷史日誌數據構建起來的。

如果你希望獲得更多的即時信息,可以在Atlas集群視圖上通過實時標籤獲取你的集群行為即時信息。這些信息包括CPU和磁盤使用率,同時還包括:最活躍的採集活動、隊列執行時間和正在運行的操作數量。你可以把它想象成監測數據庫“心跳”的聽診器。

充分利用MongoDB的監控功能

隨著集群規模的增加,我們會提供深入的歷史指標分析和實時快照功能,這些功能都是作為部署內容的一部分自動提供的。

因此,我們有免費的MongoDB Atlas監控服務,包括免費服務和免費工具,還有收費的MongoDB Atlas監控工具,它具備實時查看功能。現在,你準備選擇哪種服務呢?我們建議你選擇在配置最低的情況下能夠提供最豐富信息的服務。

更多學習資源,請訪問MongoDB官方網站www.mongodb.com/zh。

MongoDB中文社區北京大會即將開始,不想錯過?就關注我們吧


分享到:


相關文章: