安裝配置實踐Ganglia-監控叢集
Ganglia是UC Berkeley發起的一個開源叢集監視專案,設計用於測量數以千計的節點。Ganglia的核心包含gmond、gmetad以及一個Web前端。Ganglia叢集主要用來監控系統性能,它由RRDTool工具處理資料,並生成相應的監控相關的圖形,並提供一個Web控制檯來直觀地提供給客戶端,管理員可以通過豐富的圖形來對整個被監控的物理機器叢集節點進行評估。Ganglia能夠監控的內容很多,如CPU利用率 、Mem利用率、硬碟利用率, I/O負載、網路流量情況等,通過曲線很容易見到每個節點的工作狀態,對合理調整、分配系統資源,提高系統整體效能起到重要作用。需要知道的是,Ganglia可以做系統監控,但是,目前它不支援伺服器異常或故障報警功能。
Ganglia監控叢集架構
下面,我們參考《Monitoring with Ganglia》一書,對Ganglia的架構有一個基本瞭解,然後在配置使用過程中,能夠更好地理解監控的基本原理。下面是Ganglia的整體架構,如圖所示:
通過上圖我們可以看到,Ganglia叢集主要是由gmond、gmetad、gweb這3個守護程序組成,其中gmetad程序相當於監控叢集的Master,而多個gmond程序可以進行分組,每個分組其實是一個用來收集監控資料的代理服務叢集,也就是說,多個gmond叢集在整個Ganglia監控叢集中作為從節點的角色。
下面,詳細說明這個3個守護程序:
- gmond
gmond相當於一個代理(agent)服務程序,它被部署在待監控的各個節點上,主要負責與宿主節點作業系統互動,獲取到節點的一些監控資料,如CPU負載、磁碟容量、記憶體容量、網路狀況等等。gmond程序收集到很多監控的元資料資訊後,等待gmetad週期性地輪詢這些資訊。gmond程序執行時給系統帶來的負載是非常小的,從而不會影響使用者應用程式效能。
從《Monitoring with Ganglia》一書中引用一個給出的gmond架構圖,如圖所示:
這是2個gmond叢集,每個叢集有一個是主節點,其餘的是從節點,主節點上的gmond服務與該gmond叢集中其它從節點通訊收集監控資料,gmond叢集中的主節點通過組播的方式與gmetad伺服器通訊。
- gmetad
gmetad可以看成是Ganglia叢集的Master,它採用poll的方式,主動與叢集中各個gmond程序互動,週期性地輪詢每個gmond程序收集到的元資料,然後儲存到RRD資料庫中,為Web展示監控資料做準備。
- gweb
gweb程序主要是用來展示展示gmetad程序從各個節點上輪詢到的監控元資料,這裡,用來展示的資料,實際上是經過RRDTool這個工具處理過的。
下面,是我在CentOS-5.9系統下的安裝配置實踐,系統為64位。
Ganglia伺服器安裝配置
安裝Ganglia伺服器,需要用到的軟體包,如下所示:
- pcre-8.33.tar.bz2
- confuse-2.7.tar.gz
- rrdtool-1.4.7.tar.gz
- php-5.5.14.tar.gz
- ganglia-3.6.0.tar.gz
- ganglia-web-3.5.9.tar.gz
- nginx-1.6.0.tar.gz
下面介紹安裝和配置的過程:
- 安裝基礎依賴軟體包
首先保證yum源可用,可以檢視或者修改,在目錄下面/etc/yum.repo.d/可以新增或者修改。接著,就可以執行如下命令安裝一些基礎依賴軟體包:
1 |
yum
-y install apr-devel
apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel pkgconfig |
如果安裝過程中,沒有出錯,則可以正常進行下一步,如果出現錯誤,可能會影響後面的安裝過程。
- 安裝PCRE軟體包
1 |
tar jxvf
pcre-8.33. tar .bz2 |
2 |
cd pcre-8.33 |
3 |
./configure
--prefix=/usr --libdir=/usr/lib64 |
4 |
make |
5 |
make install |
- 安裝confuse軟體包
1 |
tar zxvf
confuse-2.7. tar .gz |
2 |
cd confuse-2.7 |
3 |
./configure
CFLAGS=-fPIC --disable-nls |
4 |
make |
5 |
make
|