公司伺服器越來越多,安裝ganglia統一監控伺服器。
Ganglia是UC Berkeley發起的一個開源叢集監視項目,設計用于測量數以千計的節點。Ganglia的核心包含gmond、gmetad以及一個Web前端。主要是用來監控系統性能,如:cpu 、mem、硬碟使用率, I/O負載、網絡流量情況等,通過曲線很容易見到每個節點的工作狀态,對合理調整、配置設定系統資源,提高系統整體性能起到重要作用。
1.下載下傳相關軟體包
rrdtool expat apr apr-util confuse ganglia ganglia-web cgilib
rrdtool 下載下傳1.2版本,不然會出現中文亂碼問題
2.安裝相關依賴包
安裝rrdtool
yum -y install perl-devel
yum -y install perl-CPAN
yum install zlib freetype libart_lgpl libpng
tar -zxvf cgilib-0.5.tar.gz
cd cgilib-0.5
make
cp libcgi.a /usr/local/lib
cp cgi.h /usr/include
yum -y install libart_lgpl-devel
yum -y install pango-devel* cairo-devel*
http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz
tar zxvf rrdtool-1.2.27.tar
cd rrdtool-1.2.27
./configure --prefix=/usr/local/rrdtool
make
make install
安裝expat
http://downloads.sourceforge.net/project/expat/expat/2.0.1/expat-2.0.1.tar.gz?use_mirror=cdnetworks-kr-2
tar zxvf expat-2.0.1.tar.gz
./configure --prefix=/usr/local/expat
make
make install
對于64位作業系統,需要手動的拷貝下動态連結庫到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
同樣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
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
拷貝動态連結庫
mkdir -p /usr/local/confuse/lib64
/bin/cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/
不同的核心版本會出現不同的問題
[[email protected] ganglia]# uname -r
2.6.32-279.el6.x86_64
yum -y install libconfuse libconfuse-devel.x86_64
3.安裝ganglia
./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
或者
./configure --prefix=/usr/local/ganglia --with-librrd=/usr/local/rrdtool --with-libapr=/usr/local/apr --with-libexpat=/usr/local/expat \
--with-libconfuse=/usr/local --with-gmetad --enable-gexec --enable-status --sysconfdir=/etc/ganglia
make
make install
4.服務端配置
mkdir -p /var/lib/ganglia/rrds
mkdir -p /var/lib/ganglia/dwoo
配置一個資料源,修改/etc/ganglia/gmetad.conf檔案,同時将運作使用者設定為rrdtool的目錄權限使用者,例如apache使用者
data_source "mycluster" 42.120.19.23(監控的用戶端ip)
data_source是最重要的參量,在GMOND的Cluser name配置必須與data_source的相同,這個參量被設定為群的名字,被監測以便能監測那群狀态。如果有二個或更多監測對象,當有一對象不能被監測,将讀取data_source 配置的下一個對象
其中suc是資料源的名稱,用戶端分組會依賴此名稱,後面會提到。 添加自啟動腳本
/bin/cp -f 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
看見Starting GANGLIA gmetad: [ OK ]就代表運作正常了。
5.用戶端配置
安裝服務端的配置安裝一次
/bin/cp -f gmond/gmond.init /etc/init.d/gmond
/bin/cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond
chkconfig --add gmond
gmond --default_config > /etc/ganglia/gmond.conf
對于生成的預設配置檔案需要做适當的修改
cluster {
name="suc"
owner="unspecified"
latlong="unspecified"
url="unspecified"
}
其中name是将要在服務端進行的分組,是服務端的資料源。接下來開啟服務
service gmond start
5.服務端web配置
cp conf_default.php conf.php
vim conf.php
$conf['gweb_confdir'] = "/data_disk/webdata/ganglia";跟目錄
define("RRDTOOL", "/usr/local/rrdtool/bin/rrdtool");
$conf['rrdtool'] = "/usr/local/rrdtool/bin/rrdtool";
建立相應的存儲目錄即可
6.常用一些錯誤解決
err1:
# service gmetad status
gmetad 已死,但是 subsys 被鎖
err2:
There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Connection refused
解決代碼:
# mkdir -p /var/lib/ganglia/rrds
# chown nobody:nobody /var/lib/ganglia/rrds
還要注意目錄/var/www/html/ganglia/下的conf.php檔案
正确指定你安裝rrdtool的路徑,預設如下
define("RRDTOOL", "/usr/bin/rrdtool");
err3
[[email protected] ganglia]# service gmond status
gmond dead but subsys locked
tail -f /var/log/messages
video /usr/sbin/gmond[13481]: exiting. setuid 'nobody' error