Ganglia3.1.7安裝與配置
一、所需要軟體
二、安裝過程
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 本地windows搭建spark環境,安裝與詳細配置(jdk安裝與配置,scala安裝與配置,hadoop安裝與配置,spark安裝與配置)WindowsSparkJDKHadoop
- centos7 (阿里雲、linux) 單機spark的安裝與配置詳解(jdk安裝與配置,scala安裝與配置,hadoop安裝與配置,spark安裝與配置)CentOS阿里LinuxSparkJDKHadoop
- MacVim安裝與配置Mac
- [Redis] 安裝與配置Redis
- 【MongoDB】安裝與配置MongoDB
- 【Redis】安裝與配置Redis
- 【MySQL】安裝與配置MySql
- vim安裝與配置
- jdk安裝與配置JDK
- Rabbitmq安裝與配置MQ
- MySQL安裝與配置MySql
- Nginx安裝與配置Nginx
- Grafana 安裝與配置Grafana
- Redis安裝與配置Redis
- Mahout安裝與配置
- Spark安裝與配置Spark
- Nginx 安裝與配置Nginx
- Kafka SSL安裝與配置Kafka
- Supervisor安裝與配置
- Mac Flutter安裝與配置MacFlutter
- macOS Java安裝與配置MacJava
- Centos安裝與配置RedisCentOSRedis
- Telnet安裝與配置
- Mac 安裝與配置mongodbMacMongoDB
- JAVA—JDK安裝與配置JavaJDK
- Tomcat安裝與配置Tomcat
- 【Jenskins】安裝與配置
- Hive的安裝與配置Hive
- PG的安裝與配置
- yum的安裝與配置
- NetBackup安裝與配置
- TortoiseGit安裝與配置(轉)Git
- Redis的安裝與配置Redis
- Vue的安裝與配置Vue
- WAS與IHS整合的安裝與配置
- 詳解:Flannel安裝與配置
- sqoop 安裝與配置使用OOP
- maven安裝與基礎配置Maven