Linux下Ganglia集群監(jiān)控安裝、配置筆記
Ganglia是一個跨平臺可擴展的分布式監(jiān)控系統(tǒng),用來監(jiān)控系統(tǒng)性能,如:cpu 、內(nèi)存、硬盤利用率, I/O負載、網(wǎng)絡流量情況等,通過曲線很容易見到每個節(jié)點的工作狀態(tài),通過長期監(jiān)測系統(tǒng)運行狀況可以對合理調(diào)整、分配系統(tǒng)資源提供參考。
第一部分:軟件安裝
安裝環(huán)境說明
系統(tǒng)版本:
Linux 2.6.18-164.el5 #1 x86_64 GNU/Linux
依賴軟件版本:
expat-2.0.1.tar.gz[解析xml用]
apr-1.4.5.tar.gz[可移植運行庫]
apr-util-1.3.12.tar.gz[不知道能干什么?]
confuse-2.6.tar.gz[配置文件解析]
rrdtool-1.2.27.tar.gz[畫圖用]
ganglia-3.2.0.tar.gz[監(jiān)控軟件,包括服務端、客戶端和web頁面]
安裝四個依賴庫zlib、freetype、libart_lgpl、libpng(必須要安裝develop版本):
步驟:
rpm -qa | grep zlib 檢查是否有zlib-devel版本
yum install zlib-devel 自動檢查安裝
其它三個依賴庫也用相同的方法處理即可
安裝畫圖工具rrdtools:
下載地址:http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz
安裝:
tar zxvf rrdtool-1.2.27.tar.gz
cd rrdtool-1.2.27
./configure --prefix=/usr/local/rrdtool
make
make install
執(zhí)行以下命令,檢查是否安裝成功
/usr/local/rrdtool/bin/rrdtool
安裝expat:
下載地址:http://downloads.sourceforge.net/expat/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
復制lib包下的內(nèi)容到lib64目錄下:
mkdir /usr/local/expat/lib64
cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
安裝apr以及apr-util:
下載地址:http://labs.renren.com/apache-mirror/apr/apr-1.4.5.tar.gz
tar xvjf apr-1.3.2.tar.bz2
./configure --prefix=/usr/local/apr
make
make install
下載地址:http://labs.renren.com/apache-mirror/apr/apr-util-1.3.12.tar.gz
tar xvjf apr-util-1.3.2.tar.bz2
./configure --with-apr=/usr/local/apr --with-expat=/usr/local/expat
make
make install
復制lib包下的內(nèi)容到lib64目錄下:
cp -f /usr/local/apr/include/apr-1/* /usr/local/apr/include/
mkdir -p /usr/local/apr/lib64
cp -a -f /usr/local/apr/lib/* /usr/local/apr/lib64/
安裝confuse:
下載地址:http://download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz
tar zxvf confuse-2.6.tar.gz
./configure CFLAGS=-fPIC --disable-nls --prefix=/usr/local/confuse
make
make install
復制lib包下的內(nèi)容到lib64目錄下:
mkdir -p /usr/local/confuse/lib64
/bin/cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/
安裝ganglia:
tar zxvf ganglia-3.2.0.tar.gz
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
其他:
1. ganglia監(jiān)控前臺需要有web server支持,可以是apache或nginx;
2. ganglia監(jiān)控頁面是php寫的,還需要安裝php環(huán)境;
3. 如果需要使用python擴展ganglia功能,最好先把python版本更新到2.6以上.
第二部分:環(huán)境配置
服務端配置:[假設當前所在目錄為ganglia-3.2.0.tar.gz解壓后的目錄ganglia-3.2.0]
1. 創(chuàng)建rrdtool數(shù)據(jù)目錄:
查看ganglia-3.2.0/web/conf.php里面的gmetad_root變量值,根據(jù)這個值創(chuàng)建目錄并修改權限:
mkdir -p /var/lib/ganglia/rrds
mkdir -p /var/lib/ganglia/dwoo
chown -R nobody:nobody /var/lib/ganglia
2. 修改服務進程的配置文件:
vim /etc/ganglia/gmetad.conf
data_source "cluster_name" localhost [添加一個數(shù)據(jù)源名稱(集群),客戶端的配置中會用到此名稱]
setuid_username "nobody"[運行的用戶]
3. 添加自啟動腳本
cp -f ganglia-3.2.0/gmetad/gmetad.init /etc/init.d/gmetad
cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad
chkconfig --add gmetad
4. 啟動gmetad服務
service gmetad start
看見Starting GANGLIA gmetad: [ OK ]就代表運行正常了。
客戶端配置:
1. 添加啟動腳本
cp -f ganglia-3.2.0/gmond/gmond.init /etc/init.d/gmond
cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond
chkconfig -add gmond
gmond --default_config > /etc/ganglia/gmond.conf
2. 對于生成的默認配置文件需要做適當?shù)男薷?/span>
cluster {
name="cluster_name"#修改成服務進程里指定的集群名稱
owner="nobody"#運行的用戶
latlong="unspecified"
url="unspecified"
}
3. 開啟服務
service gmond start
看見Starting GANGLIA gmetad: [ OK ]代表啟動成功。
如果失敗,可以講gmond.conf中的debug有0改為100,查看更多的日志,然后進行排查。
非當前機器的客戶端配置只需要將本地機器安裝好的lib64下的文件復制過來即可,參考下面的腳本:
servers=("server_ip_1" "server_ip_2")
for i in ${servers[@]}
do
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/
done
主要需要修改的配置gmond.conf
udp_send_channel {
#bind_hostname = yes # Highly recommended, soon to be default.
# This option tells gmond to use a source address
# that resolves to the machine's hostname. Without
# this, the metrics may appear to come from any
# interface and the DNS names associated with
# those IPs will be used to create the RRDs.
#mcast_join = 239.2.11.71#注釋掉這一行
host=xx.xx.xx.xx #集群中心節(jié)點的IP,也就是gmetad進程所在的機器,當前節(jié)點把數(shù)據(jù)發(fā)送到這個IP上
port = 8649
ttl = 1
}
/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
#mcast_join = 239.2.11.71#注釋掉這一行
port = 8649
bind = xx.xx.xx.xx#在監(jiān)控頁面顯示這個IP(當前機器)
}
WEB程序配置:
用apache來運行php,需要以下依賴:php-common php-cli php php-gd httpd
用nginx來運行php,需要安裝php-fpm
安裝web程序,這里假定apache的root路徑在/var/www/html下面。
mkdir /var/www/html/ganglia
cp -a -f ganglia-3.2.0/web/* /var/www/html/ganglia
修改rrdtool的路徑,文件/var/www/html/ganglia/conf.php中的RRDTOOL
define("RRDTOOL", "/usr/local/rrdtool/bin/rrdtool");
重啟apache服務器即可
posted on 2011-12-17 16:02 槍聲依舊 閱讀(3453) 評論(0) 編輯 收藏 所屬分類: 運維