DAY23 MongoDB 免費監控工具
產品或服務上線最重要的當然是穩定度,大一點的團隊會設置監控部門,而人少的團隊更需要做好監控自動化,減少沒有警告或是誤警的發生率。
MongoDB 其實很佛心的讓你可以簡單幾個指令查到當前狀態,甚至有基礎的免費雲端監控服務,我們馬上來看看。
取得目前監控狀態
db.getFreeMonitoringStatus()
1 | ith2021> db.getFreeMonitoringStatus() |
這個是資料庫啟動後查詢的結果,狀態不是官網說的 enabled
或 disabled
,但只要經過修改後就不會是這個 undecided
了。
ok 則是代表這個 getFreeMonitoringStatus
操作有成功執行。
啟用監控服務
db.enableFreeMonitoring()
1 | ith2021> db.enableFreeMonitoring() |
- state: 可以看到狀態已經是回傳
enabled
- message: 這幾乎是固定的訊息,告訴你可以在任何時間下啟用或關閉免費的監控服務。下面提供的 url 則是免費的雲端監控網址,任何人都可以直接透過這個網址查看所有內容。
- userReminder: 系統給予的額外資訊,但我是沒有看過有特別內容過。
啟動後我們還不急著看監控內容,再次取得監控狀態看會發生甚麼事
1 | ith2021> db.getFreeMonitoringStatus() |
再次取用基本上就是一樣的訊息,啊~userReminder
有內容了,還是個程式沒寫好的重複內容XD
如何關閉自動監控
db.disableFreeMonitoring()
1 | ith2021> db.disableFreeMonitoring() |
嗯,毫無反應,就是給你一個執行的結果而已。
免費雲端監控內容
Banner 頁面版本資訊和幫助文件,下面四個主要的數據,分別是
- CPU 使用量
- 讀取操作的執行時間
- 查詢目標:查詢效率,指的是查詢需要掃描的文件數量,若超過一千則認為是不好的查詢
- 每秒鐘的讀取操作數量
這邊擷取另一張使用 replication 的圖片,可以看到每個項目有三張折線圖,上方有著 P (Primary) 與兩個 S (Secondary)。
https://ithelp.ithome.com.tw/upload/images/20210917/20140504Dr5wjwsghO.png
預設的粒度如果覺得太大,可以透過匡選放大粒度,並透過右上的 reset 按鈕恢復成預設的大小。
注意事項
首先要強調一點,這些內容都是來自這個指令 db.serverStatus()
,所以你也能自己做到這樣、甚至更好的服務。
既然是免費的,肯定背後有一些目的了,我想動機也很單純,推廣 MongoDB 的雲端服務,MongoDB Atlas。免費監控的網頁很諸多限制,我個人也是只建議在測試環境使用。
- 沒有權限控管,只要知道這個網址的人,都能夠看到你的資料庫狀態
- 監控資料只會保留最近的 24 小時
- 監控功能較為陽春
- 監控範圍只有 單一節點 或是 Replication,sharding 是沒有提供監控的
- 需要連著對外網路 (暴露危險)
其實沒有登入與權限控管,大概就不用上到正式環境了。且只有24小時的資料尚不足以分析趨勢,特別是活動期間或是週末這種尖峰時刻差異,因此是否自建監控與維護 MongoDB 還是直接採用 MongoDB Atlas 服務非常值得評估。