安装ganglia,centos系统

来源:互联网 发布:js字符串变为数组 编辑:程序博客网 时间:2024/05/22 08:18

实现对memcached的监控,准备安装Ganglia,本人centos系统。

注明:前5步参考自以下网址:

http://www.linuxdiyf.com/viewarticle.php?id=107734

注明:第6步中所有安装rrdtool的内容参考自:

http://hi.baidu.com/jiaofu1127/item/00d7dcbdf83e5ac685dd79e4

由于我是在虚拟机中跑的linux,没有上网,yum源也没有设置,所以第二步中所有需要的依赖关系都是摸索着安装的。经过一天实验,成功见到以下内容,倍感欣慰:

第6步开始为安装依赖关系。

1、首先下载源代码包,地址;

http://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.1.1%20%28Wien%29/ganglia-3.1.1.tar.gz/download?use_mirror=jaist

2. 一台机器要同时装gmetad (web frontend需要)gmond,其他机器只要安装gmond
cd ganglia-3.1.1
在需要安装gmetad 的configure参数是这样的:

./configure --with-gmetad --enable-gexec
注意gmetad 依赖rrdtool-devel包,apt-get或者 yum 一下就好了。
还有可能要安装libconfuse-devel(libconfuse-dev), apr-devel(libapr1-dev),gexec用在gmond里,作用看官方文档吧。
在其他机器上,
./configure --enable-gexec
后面就是
make
sudo make install
3. gmond配置(方便起见,使用root权限)
cp gmond/gmond.init /etc/init.d/gmond (debian, ubuntu需要一点修改)
mkdir /etc/ganglia
把默认配置文件吐到
/etc/ganglia/gmond.conf
gmond --default_config > /etc/ganglia/gmond.conf
配置文件安要求可以改一改,懒得些了
:)
chkconfig --add gmond
(update-rc.d gmond defaults)
/etc/init.d/gmond start
试一试:

telnet localhost 8649
8649
是手机上UNIX对应的数字,不信你自己看看
4. gmetad配置
cp gmetad/gmetad.init /etc/init.d/gmetad (debian, ubuntu需要一点修改)
cp gmetad/gmetad.conf /etc/ganglia/
(修改配置文件)

chkconfig --add gmetad
/etc/init.d/gmetad start
(update-rc.d gmetad defaults)
可能会gmetad不能正常启动,我就遇到,通过gmetad -d 3, 发现是权限问题
chown nobody /var/lib/ganglia/rrds
gmeta
重启一下
5. web frontend (只要在安装gmetad那台机器上装就OK了)
我这里假设你已经有支持php的apache可以跑了
cp web/ /var/www/html/ganglia -rf
看看
http://localhost/ganglia

 

6、开始安装依赖关系。

首先是rrdtoolRRDtool是系统存放和显示time-series (即网络带宽、温度、人数、服务器负载等) ,并且它额可以绘出有用的图表用来显示处理的数据和数据密度。】

但是安装rrdtool时,发现还需要很多依赖库,具体如下:

下载
进入
http://oss.oetiker.ch/rrdtool/pub/
下载最新的RRDTool
再进入

http://oss.oetiker.ch/rrdtool/pub/libs/
下载所需要库:(最后4个)
freetype-2.1.10.tar.bz2   04-May-2006 15:18  1.0M 
libpng-1.2.10.tar.gz      04-May-2006 15:18  813K 
libart_lgpl-2.3.17.tar.gz 04-May-2006 15:18  386K 
zlib-1.2.3.tar.gz         18-Jul-2005 15:38  485K 

 

设置目录
设置安装目录及编译目录:
BUILD_DIR=/tmp/rrdbuild
INSTALL_DIR=/usr/local/rrdtool-1.2.15
mkdir -p $BUILD_DIR
cd $BUILD_DIR
把下载的所有库放入这个目录

编译Zlib
tar  zxf zlib-1.2.3.tar.gz
cd zlib-1.2.3
env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb
make
make install
编译LibPng
tar zxvf libpng-1.2.10.tar.gz
cd libpng-1.2.10
env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \
    ./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install
编译FreeType

tar jxvf freetype-2.1.10.tar.bz2
cd freetype-2.1.10
env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \
    ./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install
注意:此处解压是带"j"参数,因为是bz2包;其它是带"z"参数

编译libart_lgpl
tar zxvf libart_lgpl-2.3.17.tar.gz
cd libart_lgpl-2.3.17
env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install
编译RRDTool

IR=-I$BUILD_DIR/lb/include
CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"
LDFLAGS="-L$BUILD_DIR/lb/lib"
CFLAGS=-O3
export CPPFLAGS LDFLAGS CFLAGS

./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl
make clean
make
make install

最后,可以将BIN目录加入PATH
export PATH=/usr/local/rrdtool-1.2.15/bin:$PATH

 

测试rrdtool是否安装成功:

[root@dns1 rrdtool-1.2.14]# /usr/local/rrdtool-1.2.14/bin/rrdtool

显示以下内容则说明成功了:

 

七:本来以为rrdtool都安装成功了,继续安装ganglia,结果提示没有apr等依赖库,心又凉了半截,振奋精神,继续努力。

总结了一下,总共需要以下4个依赖关系库

1confuse-2.7
http://savannah.nongnu.org/download/confuse/confuse-2.7.tar.gz 

2expat-2.0.1.tar.gz
 http://sourceforge.net/project/showfiles.php?group_id=10127

3apr-1.3.2.tar.bz2apr-util-1.3.2.tar.bz2
 http://apr.apache.org/download.cgi

都下载安装后,apr默认安装在/usr/local/apr下面,跟rrdtool在同一个目录下,expat与libconfuse在/usr/local/lib下面,这都是安装ganglia的依赖库。

接下来就是安装ganglia的时候了,进入ganglia安装包中,输入以下命令:

./configure --prefix=/usr/local/ganglia --with-librrd=/usr/local/rrdtool-1.2.15 --with-libapr=/usr/local/apr --with-libexpat=/usr/local/lib   --with-libconfuse=/usr/local/lib   --with-gmetad --enable-gexec  --enable-status

主要还是要注意各个lib的位置。