ganglia 是 uc berkeley 發起的一個開源監視項目,設計用于測量數以千計的節點。每台計算機都運作一個收集和發送度量資料(如處理器速度、記憶體使用量等)的名為 gmond 的守護程序。它将從作業系統和指定主機中收集。接收所有度量資料的主機可以顯示這些資料并且可以将這些資料的精簡表單傳遞到層次結構中。正因為有這種層次結構模式,才使得 ganglia 可以實作良好的擴充。gmond 帶來的系統負載非常少,這使得它成為在叢集中各台計算機上運作的一段代碼,而不會影響使用者性能。
ganglia的架構為層次架構,安裝的過程主要是主節點和從節點的安裝
1 ganglia 主節點上安裝步驟
1.1 安裝php和apache 預設是安裝的!
[root@rac1 ~]#yum install httpd php
1.2 安裝必要的庫,
[root@rac1 ~]#yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python--devel libxrender-devel zlib libpng freetype libjpeg fontconfig gd libxml2 pcre pcre-devel
[root@rac1 ~]#yum -y install libconfuse libconfuse-devel.x86_64 # 安裝confuse庫
[root@rac1 ~]#yum install rrdtool
1.3 安裝rrdtiool庫
[root@rac1 ~]# wget http://oss.oetiker.ch/rrdtool/pub/rrdtool.tar.gz
[root@rac1 ~]# tar zxvf rrdtool.tar.gz
[root@rac1 ~]# cd rrdtool-1.4.5
[root@rac1 ~]# ./configure --prefix=/usr && make -j8 && make install
[root@rac1 ~]# which rrdtool
[root@rac1 ~]# ldconfig
1.4 開始正式安裝ganglia
[root@rac1 ~]# wget http://cdnetworks-kr-1.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.1.7/ganglia-3.1.7.tar.gz
[root@rac1 ~]# tar zxvf ganglia-3.1.7.tar.gz
[root@rac1 ~]# cd ganglia-3.1.7
[root@rac1 ~]# ./configure --with-gmetad --sysconfdir=/etc/ganglia && make -j8 && make install # 在主節點上需要編譯安裝gmetad程序,這個是和從節點安裝的主要不同點
[root@rac1 ~]# cp -rp ./web /var/www/html/ganglia
[root@rac1 ~]# cp ./gmetad/gmetad.init /etc/init.d/gmetad
[root@rac1 ~]# cp ./gmond/gmond.init /etc/init.d/gmond
[root@rac1 ~]# gmond -t |tee /etc/ganglia/gmond.conf # generate initial gmond config
1.5 為rrds建立存放圖檔檔案的目錄以及進行配置
[root@rac1 ~]# mkdir -p /u01/ganglia/rrds
[root@rac1 ~]# chown -r nobody:nobody /u01/ganglia
[root@rac1 ~]# vi /var/www/html/ganglia/conf.php# 修改以下内容,指定rrds存放位置
# where gmetad stores the rrd archives.
$gmetad_root = "/u01/ganglia";
$rrds = "$gmetad_root/rrds";
1.6 對gmond gmetad 以及apache進行配置
[root@rac1 ~]# vi /etc/ganglia/gmetad.conf # 修改将data source後面的字元串換成你的叢集名字,例如my cluster 将rrd_rootdir "/u01/ganglia/rrds"加入最後一行
[root@rac1 ~]# vi /etc/ganglia/gmond.conf # 修改将cluster中的name後換成你的叢集名字,例如my cluster,記得一定要和gmetad.conf中data source的叢集名字一樣,
# 另外,為了将ganglia監控叢集的傳播消息方式由廣播改為單博,需要注釋掉和預設的廣播位址239.2.11.71相關的所有行,将host=主節點ip或是主機名加入udp_send_channel所在的配置組中。對于單點傳播和多點傳播的差別,建議檢視ganglia的手冊
vi /etc/httpd/conf.d/php.conf# 去掉最後一行的井号,使得apache可以解析php腳本
1.7 啟動gmond gmetad 以及apache
[root@rac1 ~]# /etc/init.d/gmetad start #start service
[root@rac1 ~]# /etc/init.d/gmond start
service httpd start
[root@rac1 ~]# 主節點上這三個程序成功啟動後,可以使用浏覽器通過 :主機的ip/ganglia 這樣url來通路,會發現叢集中有一個主機被監控
ganglia 2 從節點上安裝步驟
在主機點上,使用pgm遠端操作rac[2-3]三台機器,在這三台機器上安裝gmond程序,來作為從程序
ganglia 2.1 安裝依賴的庫
pgmscp -a rac[2-3] ganglia-3.1.7.tar.gz /home/hadoop
pgm rac[2-3] "yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libxrender-devel zlib libpng freetype libjpeg fontconfig gd libxml2 pcre pcre-devel"
pgm rac[2-3] "yum -y install libconfuse libconfuse-devel.x86_64 -b test"
ganglia 2.2 配置安裝ganglia
pgmscp rac[2-3] ganglia-3.1.7.tar.gz /home/hadoop
pgm rac[2-3] "tar zxvf ganglia-3.1.7.tar.gz"
pgm rac[2-3] "cd ganglia-3.1.7 && ./configure --sysconfdir=/etc/ganglia && make -j8 && make install"
pgm rac[2-3] "cd ganglia-3.1.7 && cp gmond/gmond.init /etc/init.d/gmond "
pgmscp -a rac[2-3] /etc/ganglia/gmond.conf /home/hadoop
pgm rac[2-3] "cp /home/hadoop/gmond.conf /etc/ganglia/" # 将本機的gmond.conf複制到遠端的ganglia配置目錄下,其實也可以采用gmond -t |tee /etc/ganglia/gmond.conf來生成配置檔案的,但是,還是需要再配置成和主節點上一樣的,不如直接将主節點上的複制過來,一步到位:)
ganglia 2.3啟動從節點上的gmond程序
pgm rac[2-3] "/etc/init.d/gmond start" # 從節點上gmond程序成功啟動後,可以使用浏覽器通過 :主機的ip/ganglia 這樣url來通路,會發現叢集中多了三個被監控的主機!
結果截圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZwpmLxYTM5MjMyMTMyAjMxAjMfNTN2QjN2IjMvwlMw8CXyEDMy8CXzRnbl1GajFGd0F2LcRXZu5iY1BHdp5yZvxmYvw1LcpDc0RHaiojIsJye.jpg)