实现对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、开始安装依赖关系。
首先是rrdtool【RRDtool是系统存放和显示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个依赖关系库
1、confuse-2.7
http://savannah.nongnu.org/download/confuse/confuse-2.7.tar.gz
2、expat-2.0.1.tar.gz
http://sourceforge.net/project/showfiles.php?group_id=10127
3、apr-1.3.2.tar.bz2与apr-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的位置。