天天看點

ganglia系統監控

公司伺服器越來越多,安裝ganglia統一監控伺服器。

Ganglia是UC Berkeley發起的一個開源叢集監視項目,設計用于測量數以千計的節點。Ganglia的核心包含gmond、gmetad以及一個Web前端。主要是用來監控系統性能,如:cpu 、mem、硬碟使用率, I/O負載、網絡流量情況等,通過曲線很容易見到每個節點的工作狀态,對合理調整、配置設定系統資源,提高系統整體性能起到重要作用。

ganglia系統監控

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