一.MongoDB簡介:
MongoDB是一個基於分布式文件存儲的數據庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
它的特點是高性能、易部署、易使用,存儲數據非常方便。主要功能特性有:
*面向集合存儲,易存儲對象類型的數據。
*模式自由。
*支持動態查詢。
*支持完全索引,包含內部對象。
*支持查詢。
*支持復制和故障恢復。
*使用高效的二進制數據存儲,包括大型對象(如視頻等)。
*自動處理碎片,以支持雲計算層次的擴展性。
*支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。
*文件存儲格式為BSON(一種JSON的擴展)。
*可通過網絡訪問。
二、監控工具
近幾年由於大數據的興起,在實際工作中我們對非關系型和大數據量的處理越來越多,mongoDB由於容易使用,在國內很多項目已經大量使用。它可以安裝在windows和linux平台。但是之前由於監控工具的不完善,大家在對數據庫的監控上一直沒有太好的手段,基本使用cacti、nagos、zabbx或者mongodb之前提供的mongostat,詳細用法可以參照如下:
http://www.cnblogs.com/renyb/archive/2013/01/18/2866632.html
但是10gen(MongoDB官方)認識到之前的工具的配置和使用都有很大的局限,2011年發布了官方的監控程序,叫做MMS(MongoDB Monitoring Service),目前此版本已經相當成熟並且圖形化界面做得非常好。
其工作原理如下:
- 在MMS服務器上配置你的MongoDB信息(Host,Port,User,Passwd等)
- 在一台能夠訪問你MongoDB服務的內網機器上運行其提供的Agent腳本
- Agent腳本從MMS服務器獲取到你配置的MongoDB信息
- Agent腳本連接到相應的MongoDB獲取必要的監控數據
- Agent腳本將監控數據上傳到MMS的服務器
- 登錄MMS網站查看整理過后的監控數據圖表了
另外多提一句,此監控工具的手機版已經發布,可以在google play商城上下載,名字叫做MongoDB Management Service(MMS),但是play比較煩人只能安裝不能下載,我試了幾次都沒有成功下載,有能下載的可以貢獻個apk給大家。
三、MMS安裝部署
MMS的監控內容其實很不錯,還支持硬件監控,但是需要MongoDB運行在linux主機上,由於目前我的環境是在windows平台上,沒有現成的環境,下面就主要介紹在windows下的安裝部署,后續有機會在實驗在linux上的部署。當然官方有安裝說明。
- 安裝python
下載安裝python (Python 2.7.5 Windows X86-64 Installer 3.3的貌似不可以用,優先安裝64位的)
http://www.python.org/getit/
- 安裝pymongo
注意pymongo的版本需要和pythonpython一致,如
pymongo-2.5.2.win-amd64-py2.7.exe 必須是與python對應的版本
https://pypi.python.org/pypi/pymongo/#downloads
- 下載10gen-mms-agent-[group].zip
使用mms首先需要登錄到mms.mongodb.com去注冊一個組,然后再組中增加主機等信息。系統會自動生成包含這個組的配置信息的專用的Monitoring Agent,下載。
- 配置PowerShell
Win7默認是安裝的。如果沒有安裝請單獨下載。
執行 Get-Host 查看當前PowerShell的版本
執行 Get-ExecutionPolicy 查看執行策略限制,默認一般是Restricted
執行 Set-ExecutionPolicy -ExecutionPolicy Unrestricted 解除執行策略限制
- 運行agent
執行下載的agent中的mongommsinstall.bat安裝mms服務,成功后在服務中可以看到名稱為mms的服務。
四、監控
1.填寫host信息
本地mms服務啟動后,在mms官網登陸后填寫:
Host Type 主機類型
Internal Hostname 主機地址(相對於agent的地址,可以是localhost,192.168.x.x,也可以是域名和公網地址)
Port 端口號
DB Username 賬戶名(可選,admin庫的賬戶名)
DB Password 密碼(可選,admin庫的密碼)
2.數據同步
等待大約10分鍾,就可看到數據了。
五、使用說明
網上的很多資料也都僅僅局限在安裝,對具體的內容沒有做詳細的說明。這里我僅僅記錄下這2天發現的一些tip。
- 一個組可以配置多主機,之前是只能一個組有一台主機,但是10gen馬上認識到自己的問題,使用mongodb怎么可能只有一台主機,起碼也是主從啊,索引現在可以配置多台主機。
- 提醒
Agent停止,在頁面最上面右側會有專門的提醒。
Db down掉按道理也應該有提醒,但是由於目前沒有配置硬件監控,看不到硬件的圖形,但是在常規圖形監控中發現了一個很有趣的東西,上圖:
在上圖中的紅色豎線就是我單獨測試db down掉的情況,看來mms還是能很快捕捉到數據庫的異常。當然在上面可以設置刷新間隔為1分鍾,5分鍾,1小時,1天等等,查看維度是隨着刷新間隔自動關聯的,也可以靈活設定。
下一篇我會對監控的內容進行詳細說明,如果大家喜歡可以支持下。