xylz,imxylz

关注后端架构、中间件、分布式和并发编程

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  111 随笔 :: 10 文章 :: 2680 评论 :: 0 Trackbacks

Ganglia安装指南 (基于CentOS 5.6)

安装依赖

rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/zlib-devel-1.2.3-3.x86_64.rpm
rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/freetype-devel-2.2.1-28.el5_5.1.x86_64.rpm
rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/libart_lgpl-devel-2.3.17-4.x86_64.rpm
rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/libpng-devel-1.2.10-7.1.el5_5.3.x86_64.rpm

如果上述安装失败,可能需要安装以下库依赖

yum install zlib freetype libart_lgpl libpng

安装rrdtools

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

执行下命令,看是否安装成功

/usr/local/rrdtool/bin/rrdtool

安装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/

安装ganglia

现在才是安装ganglia的开始,如果提示需要pcre的话,安装下 yum install pcre 下载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

服务端配置

创建rrdtool数据目录,看$ganglia-3.2.0/web/conf.php里面的gmetad_root变量,并根据apache的运行用户创建权限,例如apache运行于apache用户上 。

mkdir -p /var/lib/ganglia/rrds
mkdir -p /var/lib/ganglia/dwoo
chown -R apache;apache /var/lib/ganglia

配置一个数据源,修改/etc/ganglia/gmetad.conf文件,同时将运行用户设置为rrdtool的目录权限用户,例如apache用户

data_source "suc" localhost
setuid_username "apache"

其中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 ]就代表运行正常了。

客户端配置(gmond节点)

本机安装如下:

/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="apache"
latlong="unspecified"
url="unspecified"
}

其中name是将要在服务端进行的分组,是服务端的数据源。接下来开启服务

service gmond start

看见Starting GANGLIA gmetad: [ OK ]代表启动成功。如果有失败,可以讲gmond.conf中的debug有0改为100,看更多的日志,然后进行排查。

globals {
daemonize = yes
setuid = yes
user = nobody
debug_level = 100
}

非本机客户端配置需要安装服务端安装一样进行配置,运行,非常麻烦,这里使用本机安装好的文件进行安装。 使用下面的脚本进行安装deploy-ganglia.sh

i=$1
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/

实际上就是将本机安装好(编译好)的动态链接库拷贝到其它机器上,使用如下命令拷贝即可

sh deploy-ganglia.sh 10.1.11.2

服务端的WEB配置

PHP程序需要依赖Apache来运行,因此需要安装如下依赖

yum install php-common php-cli php php-gd httpd

安装web程序,这里假定apache的root路径在/var/www/html下面。

mkdir /var/www/html/ganglia
cp -a -f ganglia-3.2.0/web/* /var/www/html/ganglia

禁用SELinux setenforce 0 修改rrdtool的路径,文件/var/www/html/ganglia/conf.php中的RRDTOOL

define("RRDTOOL", "/usr/local/rrdtool/bin/rrdtool");

重启httpd服务器即可看到效果 service httpd restart

更多参考 http://www.imxylz.info/wiki/Ganglia/Ganglia


©2009-2014 IMXYLZ |求贤若渴
posted on 2011-07-21 00:34 imxylz 阅读(13998) 评论(7)  编辑  收藏 所属分类: 技术Ganglia

评论

# re: Ganglia安装指南 (基于CentOS 5.6) 2011-10-25 15:00 heipark
此文,还是不错的。多谢。  回复  更多评论
  

# re: Ganglia安装指南 (基于CentOS 5.6) 2011-11-17 22:14 yangshengg
博主你好,在参考你的安装指南之后,我比较顺利的安装上了ganglia,并且在server端装上gmond之后,也能从浏览器里面对server进行监控,而在其它node端,gmond也能够正常启动,问题是为什么在浏览器里面始终没有显示除server端之外的其它node的监控信息呢?望答复为感!  回复  更多评论
  

# re: Ganglia安装指南 (基于CentOS 5.6) 2011-11-18 10:06 xylz
@yangshengg
需要配置一个数据源
data_source <datasource name> <your ip>

your ip是你要收集的机器的ip地址,填写多个的话后面都是备份。
如果是组播,这样就可以了。
如果是单播,那么单薄之间发送UDP的数据包就可以。
参考 http://www.imxylz.info/wiki/Ganglia/GangliaConfigGuide  回复  更多评论
  

# re: Ganglia安装指南 (基于CentOS 5.6) 2011-11-18 19:22 yangshengg
@xylz 经过您的指点,我已经解决了遇到的问题,在此表示感谢!  回复  更多评论
  

# re: Ganglia安装指南 (基于CentOS 5.6)[未登录] 2012-01-16 13:46 lucky
2个问题咨询一下:

在ganglia web界面,可以选择一台服务器,里面有的显示ip,有的显示主机名,如何统一显示主机名。

2、比如从ganglia监控的机器中,移走了一台服务器,可是在ganglia 的web界面现在被移走的服务器为宕机,如何只删除移走服务器,其他服务器数据保留  回复  更多评论
  

# re: Ganglia安装指南 (基于CentOS 5.6) 2012-01-16 14:58 xylz
@lucky
(1)
http://www.imxylz.info/wiki/Ganglia/GangliaHostname
(2)
http://www.imxylz.info/wiki/Ganglia/GangliaConfigGuide
客户端配置(节点)的host_dmax   回复  更多评论
  

# re: Ganglia安装指南 (基于CentOS 5.6) 2012-11-29 13:25 cxjun
博主你好,我的ganglia安装好之后,页面上只有Overview有数据显示(也就是所有机器的统计数据有显示),页面最下方的机器列表,但是当点击查看单个机器的具体的监控信息的时候,却没有一台机器有数据显示  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
 

©2009-2014 IMXYLZ