分佈式監控系統Ganglia學習------(1)基本原理

最近在學習Ganglia,記錄一下學習的具體過程和心得。

一 相關資源

官網:提供了demos和代碼下載。

book: 《Monitoring with Ganglia》,Ganglia作者寫的書,深入淺出。

paper: 《The Ganglia Distributed Monitoring System: Design, Implementation, and Experience》可以快速瞭解Ganglia的基本原理。

二 Ganglia整體架構

Ganglia是用C實現的一個分佈式監控系統,主要由gwebgmetadgmond三個模塊構成,整體架構如下圖所表示



Gmond(Ganglia monitoring daemon): 主要負責數據採集

Gmond可以理解爲一個數據採集的Agent,最終會部署到每個需要監控的節點上。Gmond比較有意思的地方在於,既可以發送數據,又可以接受數據。Gmond採集到本機的數據後,可以把數據通過多播或單播的方式發送出去。單播比較容易理解,對應的節點會收到數據。多播,又稱組播,同一組內的節點都會收到數據。

對應規模較小的集羣,所以節點可以部署在同一個網段。如果使用多播方式,Gmond發送數據後,集羣內所以的節點(包括自己)都會收到數據。這樣,每個節點上都會有整個集羣的監控數據。也就是說,通過訪問任何一個節點都可以獲取到整個集羣的監控數據。如果節點個數很多,不能部署在同一個網段,可以將劃分爲多個集羣。集羣內部使用多播,集羣之間使用單播。

Gmond使用XDR存儲採集到的監控數據,並對外提供了數據查詢的接口。通過訪問制定的端口,可以獲取到監控數據,監控數據傳輸時使用XML格式。

Gmetad(Ganglia Meta daemon):主要負責數據的存儲

Gmetad用於輪詢Gmond獲取監控數據,並對數據進行入庫。Gmond的數據是存儲在內存中的,Gmetad通過制定端口獲取數據,然後將數據寫入RRD數據庫中。

Gweb(Ganglia web): 負責監控數據的展示

Gweb調用RRD的接口獲取並展示數據。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章