Ganglia3.1.7安裝與配置

thamsyangsw發表於2014-03-28


一、所需要軟體

二、安裝過程
    1、Ganglia執行平臺的安裝
    2、Ganglia依賴庫的安裝
    3、RRDTool的安裝
    4、Ganglia的安裝 (包括使用yum方式安裝)


三、簡單配置

四、啟動與訪問

五、被監控節點上安裝Ganglia (包括使用yum方式安裝)


六、遇到的問題,及解決辦法 

流行的開源伺服器叢集監控工具有很多,例如Nagios、Cacti、Ganglia、Zenoss、Clumon,它們在底層都利用了RRDTool。國內最常用的就是Cacti+Nagios,但是Ganglia其實也很不錯,Ganglia+Nagios的組合也很強大。

Ganglia是一個可伸縮的監控系統,尤其適合用來監計算機叢集、網格等。Ganglia監控系統的組成部分包括:兩個獨立的daemon,一個基於PHP的web前端,和一些其它的應用程式。

gmond(Ganglia Monitoring Daemon):執行於節點上的daemon
gmetad(Ganglia Meta Daemon):伺服器端的daemon
Ganglia PHP Web Frontend:基於PHP的web前端
Ganglia官網:
Ganglia Wiki:

一、所需軟體:
平臺:linux+apache+php
依賴庫:
apr-devel
apr-util
check-devel
cairo-devel
pango-devel
libxml2-devel
rpmbuild
glib2-devel
dbus-devel
freetype-devel
fontconfig-devel
gcc-c++
expat-devel
python-devel
libXrender-devel
libconfuse(它無法透過yum安裝)
pcre(無法透過yum安裝)
RRDTool:rrdtool-1.4.5.tar.gz
Ganglia:ganglia-3.1.7.tar.gz

二、安裝過程

參考了Ganglia Wiki上的安裝配置文件,以及IBM網站上《Ganglia 和 Nagios》:

1)apache+php的安裝:大略如下:

apache:
01.wget
02.tar -zxvf httpd-2.2.19.tar.gz
03.cd httpd-2.2.19
04../configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most
05.make && make install
06. 
07./usr/local/apache2/bin/apachectl start
http://192.168.9.45,訪問成功!
 
php:
準備手動編譯安裝,但是在下載gd庫時出錯,沒有下載到,索性使用yum安裝
01.yum -y install zlib libpng jpeg freetype2 libxml2 gdphp-mbstring
02.yum -y install php

apache對php的支援:
在使用yum安裝PHP時,已經預設在httpd的配置目錄下建立了conf.d目錄及相關檔案,我們不需要進行任何的操作。直接啟動httpd,然後測試php是否安裝成功。

若是原始碼安裝PHP,使apache支援php需要如下的兩步操作:

首先,複製libphp5.so 到apache的module目錄下:
01.cp /usr/lib64/httpd/modules/libphp5.so /usr/local/apache2/modules/

然後,vi /usr/local/apache2/conf/httpd.conf,新增:
01.
02.    SetHandler application/x-httpd-php
03.

04.
05.    SetHandler application/x-httpd-php
06.

07.
08.    SetHandler application/x-httpd-php-source
09.

10. 
11.LoadModule php5_module modules/libphp5.so
12. 
13.
14.   DirectoryIndex index.html index.php
15. 


重啟apache,測試PHP是否安裝成功:

vi /usr/local/apache2/htdocs/index.php,新增:
01.
02.phpinfo();
03.?>


訪問:http://192.168.9.45/index.php,訪問成功!

2)依賴庫的安裝:
01.yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpmbuild glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel

3)libconfuse的安裝(自己使用google搜尋下載地址):
01.wget
02.tar -zxvf confuse-2.7.tar.gz
03.cd confuse-2.7
04../configure CFLAGS=-fPIC --disable-nls
05.make && make install

調整lib庫的位置:
vi /etc/ld.so.conf.d/libconfuse.conf,新增:/usr/local/lib,然後/sbin/ldconfig -v 

4)pcre安裝:

pcre是perl 相容的正規表示式庫,在使用正則匹配時會很用。不安裝的話,ganglia安裝時會報錯:libpcre not found, specify --with-libpcre=no to build without PCRE support。
01.wget
02.tar -jxvf pcre-8.12.tar.bz2
03.cd pcre-8.12
04../configure && make && make install


調整lib庫的位置:
vi /etc/ld.so.conf.d/libpcre.conf,新增:/usr/local/lib,然後/sbin/ldconfig -v
5)RRDTool的安裝:
01.wget
02.tar -zxvf rrdtool-1.4.5.tar.gz
03.cd rrdtool-1.4.5
04../configure --prefix=/usr/local
05.make && make install

調整lib庫的位置:
vi /etc/ld.so.conf.d/librrd.conf,新增:/usr/local/lib,然後/sbin/ldconfig -v

6)Ganglia的安裝:
要注意的是,Ganglia在安裝時預設不安裝gmetad,所以需要在configure時指定:--with-gmetad,還需要指定RRDTool庫的路徑:--with-librrd=… !
01.wget
02.tar -zxvf ganglia-3.1.7.tar.gz
03.cd ganglia-3.1.7
04../configure --with-gmetad --with-librrd=/usr/local/lib --sysconfdir=/etc/ganglia
05.make
06.make install

編譯安裝成功!
幾個重要檔案的預設安裝位置:
/usr/bin/gstat
/usr/bin/gmetric
/usr/sbin/gmond
/usr/sbin/gmetad
/etc/ganglia/gmetad.conf
需要進一步的操作,新增gmond和gmetad為系統服務:
01.cp gmond/gmond.init /etc/rc.d/init.d/gmond
02.cp gmetad/gmetad.init /etc/rc.d/init.d/gmetad
03.chkconfig --add gmond && chkconfig gmond on
04.chkconfig --add gmetad && chkconfig gmetad on

7)Ganglia web前端的安裝:
01.mkdir /var/www/html/ganglia
02.cp -r web/* /var/www/html/ganglia
Ganglia的Wiki特別指出,web前端的執行需要rrdtool,以及gmetad中的rrds/目錄,沒有這兩個東西,無法出圖。gmetad中rrd圖形預設儲存的目錄位置為/var/lib/ganglia/rrds:
01.mkdir -p /var/lib/ganglia/rrds
02.chown nobody:nobody /var/lib/ganglia/rrds 
rrdtool的位置是/usr/local/bin/rrdtool,編譯web前端的配置檔案時會在那兒進行定義。

是不是覺得編譯安裝很麻煩?你也可以使用yum安裝方式,只是Ganglia版本稍微低一些。Yum安裝方式很簡單,首先要安裝epel源 (什麼是epel ?自行google一下 ),然後執行:
01.yum install rrdtool httpd php ganglia*   以ganglia開頭的幾個軟體都要安裝
三、Ganglia的簡單配置:

1)生成gmond預設配置檔案:
01.gmond -t |tee /etc/ganglia/gmond.conf 

2)伺服器端配置檔案gmetad.conf,主要是配置data_source引數。它設定了被監控端伺服器的地址及埠,可以指定多個被監控端伺服器:
01.data_source “hadoop” 10 192.168.9.45
02.grid_name “hadoop cluster status”    /*設定一個web前端顯示的名稱,隨意命名。

3)被監控節點配置檔案gmond.conf:

gmond.conf包括了幾個部分:globals、cluster、udp_send_channel、udp_recv_channel等,如果只是想要Ganglia簡單地執行,兩個操作就可以了,兩個操作都是在cluster配置段中進行修改:

首先,命名你的叢集:

命名一個cluster名稱,名稱與gmetad.conf中的data_source保持一致。我的命名:name = "hadoop"

然後,修改tcp_accept_channel配置段如下:
01.tcp_accept_channel {
02. port = 8649
03. acl {
04.    default = "deny"
05.    access {
06.      ip = 192.168.9.45 /*這裡用來監控伺服器的地址
07.      mask = 32
08.      action = "allow"
09.      }
10.   }
11.}


把這個gmond.conf配置檔案分發到每個被監控的節點伺服器上,重啟監控端的gmetad和gmond,以及節點端的gmond,即可對節點進行監控。

4)修改web前端配置檔案/var/www/html/conf.php,指定gmetad中儲存rrd圖形的目錄,以及rrdtool的位置:
01.$gmetad_root = "/var/lib/ganglia";
02.$rrds = "$gmetad_root/rrds";
03. 
04.define("RRDTOOL", "/usr/local/bin/rrdtool");


四、啟動ganglia,並訪問其web頁面:

service gmond start

service gmetad start

service httpd restart

訪問: http://192.168.9.45/ganglia 

五、被監控節點上安裝Ganglia:

根據IBM網站上的文章所述,只需要複製幾個檔案到節點機器,即可使用Ganglia對這些機器進行監控。但是我們一般都不允許以root帳戶連線遠端伺服器,所以也比較煩瑣,還不如直接安裝。

被監控節點伺服器不需要安裝RRDTOOL,php等,只需要gmond。編譯安裝方式跟監控節點一樣,但configure時要簡單一些,下面一條命令即可:
01../configure --sysconfdir=/etc/ganglia

被監控節點上安裝ganglia-gmond完畢後,從監控節點複製gmond.conf檔案到被監控節點,然後啟動/重啟gmond,然後重新整理監控web頁面即可。
最好重啟一下監控節點的gmetad。

然後把被監控端的gmond新增系統為系統服務,前面已經講過了。略過。

被監控節點也可以使用yum方式安裝,也是首先安裝epel源,然後只需要執行下面命令:
01.yum install ganglia-gmond 

六、安裝過程中遇到的錯誤及解決辦法:

1)在configure apache時,遇到下列錯誤:

configure: error: Cannot use an external APR with the bundled APR-util

原因是apr和apr-util版本過低,下載並安裝最新版,如下:
01.wget
02.tar -zxvf apr-1.4.5.tar.gz
03.cd apr-1.4.5
04../configure && make && make install


調整lib庫的位置:
vi /etc/ld.so.conf.d/libapr.conf,新增/usr/local/apr/lib,執行/sbin/ldconfig -v

apr-util的安裝參考上述apr的安裝過程。
下載地址:wget

2)Ganglia configure失敗:
Checking for apr
checking for apr-1-config... no
configure: error: apr-1-config binary not found in path
解決:
yum -y install apr-devel

4)Ganglia make出錯:

/usr/bin/ld: /usr/local/lib/libconfuse.a(confuse.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

/usr/local/lib/libconfuse.a: could not read symbols: Bad value

collect2: ld returned 1 exit status

make[2]: *** [libganglia.la] Error 1

make[2]: Leaving directory `/usr/local/ganglia-3.1.7/lib'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/usr/local/ganglia-3.1.7'

make: *** [all] Error 2

解決:

據網上資料,這個錯誤是因為在編譯libconfuse時,需要指定特殊的選項:CFLAGS=-fPIC --disable-nls

重新編譯libconfuse,並調整lib庫:
01../configure CFLAGS=-fPIC --disable-nls && make && make install 


5)Ganglia訪問失敗:

There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied

解決:

需要關閉selinux:vi /etc/selinux/config,把SELINUX=enforcing改成SELINUX=disable;需要重啟機器。

可以使用命令setenforce 0來關閉selinux而不需要重啟,重新整理頁面,即可訪問!但此方法只是一權宜之計。要想永久修改selinux設定,還是要使用第一種方法。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26613085/viewspace-1131723/,如需轉載,請註明出處,否則將追究法律責任。

相關文章