每台計算機都運行一個收集和傳送度量數據的名為 gmond 的守護進程。接收所有度量數據的主機可以顯示這些數據並且可以將這些數據的精簡表單傳遞到層次結構中。正因為有這種層次結構模式,才使得 Ganglia 可以實現良好的擴展。gmond 帶來的系統負載非常少,這使得它成為在集群中各台計算機上運行的一段代碼,而不會影響用戶性能。所有這些數據多次收集會影響節點性能。網路中的 “抖動”發生在大量小訊息同時出現時,可以通過將節點時鐘保持一致,來避免這個問題。
gmetad可以部署在集群內任一台節點或者通過網路連線到集群的獨立主機,它通過單播路由的方式與gmond通信,收集區域內節點的狀態信息,並以XML數據的形式,保存在資料庫中。
由rrdtool工具處理數據,並生成相應的的圖形顯示,以Web方式直觀的提供給客戶端。
Ganglia工作原理
Ganglia包括如下幾個程式,他們之間通過XDL(xml的壓縮格式)或者XML格式傳遞監控數據,達到監控效果。集群內的節點,通過運行gmond(客戶端Daemon)收集發布節點狀態信息,然後gmetad(服務端Daemon)周期性的輪詢gmond收集到的信息,然後存入rrd資料庫,通過web伺服器可以對其進行查詢展示。Ganglia優點
自動收集數據集群內各個節點的信息收集可以通過ganglia系統自動的收集起來,這個收集是獨立進行地。其通信性能都是經過良好設計和最佳化的。具體的機制是:周期性的將這些信息傳送給gmond,這樣信息就加入了ganglia監控系統。通過ganglia的監控機制完成監控數據的收集顯示的功能。Ganglia系統的機制可以參考2.1ganglia工作原理。
圖形界面
數據可以通過圖形顯示出來。通過登錄web伺服器即可查看。目前可以通過該視圖查看集群及單獨節點的狀態曲線。同時具有基本的排序機制,可以根據值降序或者升序排序。可以查看過去1小時1天1周1年等時間段的狀態曲線。
資料庫rrdtool存儲了歷史數據
由於採用了rrd存儲數據,這樣我們不單可以查看當前的狀態,還可以查看之前的狀態歷史,同時可以將metrics隨時間的變化以曲線的方式變現表現出來。而單獨的向檔案寫日誌很難保存和方便地查看之前的歷史記錄。而且有可能使得日誌檔案很大。RRDtool具有如下優點:
1.
除了存儲數據之外,它具有可以創建圖形的工具;
2.
它的資料庫檔案大小是固定的,新的數據添加到已有數據的後面,當到了檔案末尾的時候就開始從檔案開始寫數據,RoundRobin就是指這個意思;
3.
一般的資料庫只能存儲數據本身,而rrd可以存儲相對與以前的數據的變動
4.
一般的資料庫是在提供數據的時候才更新,而RRD是在每一個預先設好的時間間隔都會更新,每次更新的時候,timestamp也會存儲進去
Ganglia監控軟體主要是用來監控系統性能的軟體,如:cpu、mem、硬碟利用率,I/O負載、網路流量情況等,通過曲線很容易見到每個節點的工作狀態,對合理調整、分配系統資源,提高系統整體性能起到重要作用。支持瀏覽器方式訪問,但不能監控節點硬體技術指標ganglia是分散式的監控系統,有兩個Daemon,分別是:客戶端GangliaMonitoringDaemon(gmond)和服務端GangliaMetaDaemon(gmetad),還有GangliaPHPWeb
Frontend(基於web的動態訪問方式)組成。是一個Linux下圖形化監控系統運行性能的軟體,界面美觀、豐富,功能強大。
gmetad可以部署在集群內任一台節點或者通過網路連線到集群的獨立主機,它通過單播路由的方式與gmond通信,收集區域內節點的狀態信息,並以XML數據的形式,保存在資料庫中。
RRDtool是系統存放和顯示time-series(即網路頻寬、溫度、人數、伺服器負載等)。並且它提出有用的圖表由處理數據強制執行有些數據密度。
Ganglia依賴以下包:
zlib-1.2.2-4
libpng-1.2.1-6
freetype2-2.1.7-2
libart_lgpl-2.3.16-1
rrdtool-1.2.11
perl
1)server端的安裝
A.gmetad需要先安裝RRDTool,默認的安裝路徑:/usr/local/rrdtool-
tarzxvfrrdtool-*.tar.gz
cdrrdtool-*
./configure--prefix=/usr#使用/usr會減少很多麻煩,頭檔案會放到/usr/include,庫檔案放到/usr/lib
make;makeinstall
B.gmetad的安裝(目前版本是3.0.3)
gmetad不是默認安裝的,安裝時需要加參數--with-gmetad。即rrdtool庫及其頭檔案必須存在,默認的路徑是/usr/include/rrd.h和/usr/lib/librrd.a,如果在安裝rrdtool時安在了不同的路徑下,這裡需要指明它們的路徑。
tar–zxvfganglia-3.0.3.tar.gz
cdganglia-*
./configure--prefix=/usr/local/gangliaCFLAGS="-I/rrd/header/path"\
CPPFLAGS="-I/rrd/header/path"
LDFLAGS="-L/rrd/library/path"--with-gmetad
make;makeinstall
將gmetad.init檔案拷貝到/etc/init.d/:
cdganglia-3.0.3/gmetad
cpgmetad.init/etc/init.d/gmetad
將配置檔案拷貝到/etc目錄下:
cpgmetad.conf/etc/gmetad.conf
chkconfiggmetadon
chkconfig--listgmetad
GMETAD0ff1ff2n3n4n5<=""span=""
data-media-type="image"data-inited="true"
style="cursor:default;display:inline-block;">title=點擊圖片可在新視窗打開align=absmiddle
v:shapes="_x0000_i1030">n6title=點擊圖片可在新視窗打開
align=absmiddleborder=0v:shapes="_x0000_i1031">ff
Wheusinggmetadmakesureyouhavedirectory
/var/lib/ganglia/rrds
ownedby"nobody"
FormoreinfolookatREADME
啟動gmetad:
servicegmetadstart
StartingGANGLIAgmetad:[OK]
驗證gmetad正常工作:telnetlocalhost8651
就可以得到監控的各個主機的狀態。
gmetad.conf的配置
#data_source"anothersource"1.3.4.7:86551.3.4.8
data_source"SERVER"10node1node2
data_source是最重要的參量,在GMOND的Clusername配置必須與data_source的相同,這個參量被設定為群的名字,被監測以便能監測那群狀態。如果有二個或更多監測對象,當有一對象不能被監測,將讀取data_source配置的下一個對象
2)client端安裝和配置
安裝ganglia:
tarzxvfganglia-3.0.3.tar.gz
cdganglia-3.0.3
./configure--prefix=/usr/local/ganglia
make;makeinstall
cdganglia-3.0.3/gmond
gmond–t>/etc/gmond.conf
cpgmond.init/etc/init.d/gmond
chkconfiggmondon
chkconfig--listgmond
gmond0<=""span=""
data-media-type="image"data-inited="true"
style="cursor:default;display:inline-block;">title=點擊圖片可在新視窗打開align=absmiddle
v:shapes="_x0000_i1032">ff1title=點擊圖片可在新視窗打開
align=absmiddleborder=0v:shapes="_x0000_i1033">ff2<=""span=""
data-media-type="image"data-inited="true"
style="cursor:default;display:inline-block;">title=點擊圖片可在新視窗打開align=absmiddle
v:shapes="_x0000_i1034">n3title=點擊圖片可在新視窗打開
align=absmiddleborder=0v:shapes="_x0000_i1035">n4n5n6ff
servicegmondstart
StartingGANGLIAgmond:[OK]
驗證gmond正常工作:telnetlocalhost8649就可以獲取機群內運行gmond的主機的信息
配置gmond.conf:
/etc/gmond.conf:
globals{
setuid=no
user=nobody
cleanup_threshold=300/*SECS*/
}
修改監控組名稱
name=“SERVER”
配置完成後重新啟動gmond.
3)安裝web前端
cp-aganglia-3.0.3/web/var/www/html/ganglia
確定webserver支持PHP4
對apache來說,php模組mod_php的狀態應該是enabled,貌似默認就是的^_^
配製檔案是/var/www/html/ganglia/conf.php