ganglia在centos下的安裝

最近安裝Ganglia,由於之前Linux基礎基本爲0,因此費了很大的周折。最後在失敗了好多次之後終於看到了夢寐以求的web界面。下面總結下這幾天來的工作。

ganglia是一個監控軟件,他包含三部分:Gmond,Gmetad和Gweb。在需要監控的主機上安裝Gmond,他會採集當前主機上的一些信息;Gmetad部署在服務器端,它輪訓主機,收集Gmond採集的主機信息,然後存在在rrdtool數據庫中;Gweb是一個前臺顯示的界面,他讀取Gmetad保存的rrd文件,顯示在web界面上。

部署規劃:

主機 IP
Leo 192.168.137.101(客戶端)
Sherry 192.168.137.66(服務器端)

 

安裝步驟:

1,依賴包的安裝

首先保證yum源可用,可以查看或者修改,在目錄下面/etc/yum.repo.d/可以添加或者修改。接着,就可以執行如下命令安裝一些基礎依賴軟件包

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

如果安裝過程中,沒有出錯,則可以正常進行下一步,如果出現錯誤,可能會影響後面的安裝過程。



安裝rrdtools

1
2
3
4
5
6
7
8
cd /usr/src/
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.8.tar.gz
tar zxvf rrdtool-1.4.8.tar.gz
cd rrdtool-1.4.8
./configure --prefix=/usr/local/rrdtool
make && make install
ln -s /usr/local/rrdtool/include/rrd.h /usr/include/rrd.h
ln -s /usr/local/rrdtool/lib/librrd.a /usr/lib/librrd.a

執行下命令,看是否安裝成功

/usr/local/rrdtool/bin/rrdtool

安裝expat依賴

1
2
3
4
5
6
7
8
9
wget http://downloads.sourceforge.net/project/expat/expat/2.0.1/expat-2.0.1.tar.gz
tar zxvf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure --prefix=/usr/local/expat
make && make install
對於64位操作系統,需要手動的拷貝下動態鏈接庫到lib64下
cd /usr/local/expat/
mkdir /usr/local/expat/lib64
cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/

安裝apr以及apr-util

1
2
3
4
5
6
7
8
9
10
11
wget https://archive.apache.org/dist/apr/apr-1.5.0.tar.gz
tar zxvf apr-1.5.0.tar.gz
cd apr-1.5.0
./configure --prefix=/usr/local/apr
make && make install
cd ..
wget https://archive.apache.org/dist/apr/apr-util-1.5.1.tar.gz
tar xf apr-util-1.5.1.tar.gz
cd apr-util-1.5.1
./configure --with-apr=/usr/local/apr --with-expat=/usr/local/expat
make && make install

同樣64位機器需要拷貝動態鏈接庫

/bin/cp -f /usr/local/apr/include/apr-1/* /usr/local/apr/include/
mkdir -p /usr/local/apr/lib64
/bin/cp -a -f /usr/local/apr/lib/* /usr/local/apr/lib64/

安裝confuse

1
2
3
4
5
wget http://download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz
tar xf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls --prefix=/usr/local/confuse
make && make install

拷貝動態鏈接庫

mkdir -p /usr/local/confuse/lib64
/bin/cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/

安裝pcre

pcre是perl 兼容的正規表達式庫,在使用正則匹配時會很用。不安裝的話,ganglia安裝時會報錯:libpcre not found, specify --with-libpcre=no to build without PCRE support。

1
2
3
4
5
6
cd /usr/src/
wget http://ftp.exim.llorien.org/pcre/pcre-8.34.tar.gz
tar zxvf pcre-8.34.tar.gz
cd pcre-8.34
./configure
make && make install

調整lib庫的位置:
vim /etc/ld.so.conf.d/libpcre.conf,添加:/usr/local/lib64,然後/sbin/ldconfig -v

安裝ganglia

現在纔是安裝ganglia的開始, 下載ganglia-3.2.0,解壓,安裝

1
2
3
4
cd ganglia-3.2.0
./configure --prefix=/usr/local/ganglia --with-librrd=/usr/local/rrdtool --with-libapr=/usr/local/apr --with-libexpat=/usr/local/expat \
--with-libconfuse=/usr/local/confuse --with-gmetad --enable-gexec --enable-status --sysconfdir=/etc/ganglia
make && make install

服務端配置

創建rrdtool數據目錄,看$ganglia-3.2.0/web/conf.php裏面的gmetad_root變量,並根據apache的運行用戶創建權限,例如apache運行於apache用戶上,如果沒有對apache進行權限更改,則會出現There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Connection refused的錯,只有service gmetad status顯示狀態正常,service gmetad start、stop正常時,ganglia纔算啓動成功 

mkdir -p /var/lib/ganglia/rrds
mkdir -p /var/lib/ganglia/dwoo
chown -R apache:apache /var/lib/ganglia

配置一個數據源,修改/etc/ganglia/gmetad.conf文件,同時將運行用戶設置爲rrdtool的目錄權限用戶,例如apache用戶

data_source "suc" 192.168.1.3    注意:這裏的192.168.1.3是被監控端的iP地址。
setuid_username "apache"

其中suc是數據源的名稱,客戶端分組會依賴此名稱,後面會提到。 添加自啓動腳本

/bin/cp -f /usr/src/ganglia-3.6.0/gmetad/gmetad.init /etc/init.d/gmetad
/bin/cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad
chkconfig --add gmetad

啓動gmetad服務

service gmetad start

報這樣錯誤:

error whileloading shared libraries: libpcre.so.1:
cannot open shared object file: No such file or directory

處理方法:ln -s /usr/local/lib/libpcre.so.1 /lib64

在啓動ganglia服務

service gmetad start

看見Starting GANGLIA gmetad: [ OK ]就代表運行正常了。

服務端的WEB配置

安裝web程序,這裏假定apache的root路徑在/var/www/html下面,具體路徑可查看/etc/httpd/conf/httpd.conf文件中的DocumentRoot配置。

mkdir /var/www/html/ganglia
cp -a -f /usr/src/ganglia-3.2.0/web/* /var/www/html/ganglia

禁用SELinux setenforce 0

修改rrdtool的路徑,文件/var/www/html/ganglia/conf.php中的RRDTOOL,如果不對此配置進行修改,則可能導致訪問ganglia時,頁面沒有圖片出現。

define("RRDTOOL", "/usr/local/rrdtool/bin/rrdtool");

重啓httpd服務器即可看到效果 service httpd restart


客戶端的配置

客戶端也需要安裝expat依賴,apr和apr-util,confuse相關軟件,和服務器端一樣進行安裝,這裏不再進行操作。

安裝ganglia客戶端

現在纔是安裝ganglia的開始, 下載ganglia-3.2.0,解壓,安裝

1
2
3
4
cd ganglia-3.2.0
./configure --prefix=/usr/local/ganglia --with-libapr=/usr/local/apr --with-libexpat=/usr/local/expat \
--with-libconfuse=/usr/local/confuse --enable-gexec --enable-status
make && make install
/bin/cp -f /usr/src/ganglia-3.2.0/gmond/gmond.init  /etc/init.d/gmond
/bin/cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond
chkconfig --add gmond
/usr/src/ganglia-3.2.0/gmond/gmond --default_config > /etc/ganglia/gmond.conf

報這樣錯誤:

error whileloading shared libraries: libpcre.so.1:
cannot open shared object file: No such file or directory

處理方法:ln -s /usr/local/lib/libpcre.so.1 /lib64


vi /etc/ganglia/gmond.conf

對於生成的默認配置文件需要做適當的修改.

cluster {
name="suc"
owner="apache"
latlong="unspecified"
url="unspecified"
}

其中name是將要在服務端進行的分組,是服務端的數據源。接下來開啓服務

service gmond start

看見Starting GANGLIA gmetad: [ OK ]代表啓動成功。如果有失敗,可以講gmond.conf中的debug有0改爲100,看更多的日誌,然後進行排查。

globals {
daemonize = yes
setuid = yes
user = nobody
debug_level = 100
}

非本機客戶端配置,需要和服務端一樣安裝進行配置,運行,非常麻煩,這裏使用本機安裝好的文件進行安裝。 使用下面的腳本進行安裝deploy-ganglia.sh

i=$1
scp /usr/sbin/gmond $i:/usr/sbin/gmond
ssh $i mkdir -p /etc/ganglia/
ssh $i mkdir -p /usr/local/ganglia/lib64
ssh $i mkdir -p /usr/local/expat/lib
scp /etc/ganglia/gmond.conf $i:/etc/ganglia/
scp /etc/init.d/gmond $i:/etc/init.d/
scp -r /usr/local/ganglia/lib64/* $i:/usr/local/ganglia/lib64/
scp /usr/local/expat/lib/libexpat.so.1 $i:/usr/local/expat/lib/libexpat.so.1
scp /usr/lib64/libapr-1.so.0 $i:/usr/lib64/

實際上就是將本機安裝好(編譯好)的動態鏈接庫拷貝到其它機器上,使用如下命令拷貝即可

sh deploy-ganglia.sh 10.1.11.2   這裏的10.1.11.2是客戶端計算機ip地址


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