本帖最后由 InSight 于 2014-11-6 22:19 编辑
问题导读:
1.什么是ganglia?
2.Ganglia有哪几个守护进程?
3.Gmond集群有哪几种配置方式?
4.为什么现在许多公司监控Hadoop集群几乎用的都是ganglia软件?
5.如何安装与配置ganglia软件?
6.如何在安装完成后配置Hadoop集群及HBase?
1.Ganglia是一套分布式指标收集和展示系统,专为高性能并行计算网络设计。它能够展示收集并展示无数的性能相关的指标,包括CPU、内存、磁盘以及网络IO等,能够几乎实时地展示成百上千台主机的上述指标。Ganglia之所以能够完成这些,是因为它是一个分布式应用程序,也就是说,Ganglia集群中的每一个节点协同工作从而将工作负载分散在整个集群中。
2.Ganglia主要有两个守护进程(gmetad和gmond)和一个PHP编写的web前端(gweb)构成。Gmond可以认为是监控的”Agent”,它安装在需要收集统计数据的系统上。
3.gmond集群有两种配置方式:多播和单播。
多播模式(默认):在多播模式下集群内的每个节点在监听指标数据的同时,将自己的数据通过唯一的多播通道发送出去。每个gmond节点不仅收集自身的指标数据,而且还存储集群内其他节点收集的指标数据。
单播模式:单播模式特别声明了一个gmond的节点为主gmond节点,集群中其他的gmond节点将自己的指标数据发送给主gmond节点。主gmond节点的任务是侦听和存储集群内其他gmond节点的最近指标数据。有一点需要注意,一旦主gmond节点服务重启之后,那么之前存储集群中其他节点的指标数据就没有了,这时查看gweb界面指标数据是没有的。而多播模式不存在这种情况,如果集群有一个gmond节点挂掉了,那么gmetad还可以从其他的gmond节点收集集群中所有主机的指标数据。
4.ganglia是一个轻量级的集群监控软件。在集群中消耗的带宽资源非常少,加上其灵活的配置以及在nagios中集成等优点使得其在监控hadoop集群中显得耀眼。
5.Ganglia的安装与配置
安装依赖包
# yum install –y gcc gcc-c++ libpngfreetype zlib libdbi apr.* apr-util libxml2-devel pkg-config glib pixman pangopango-devel freetye-devel fontconfig cairo cairo-devel libart_lgpllibart_lgpl-devel
安装httpd
# cd /opt
# tar –xvf httpd-2.2.29.tar.gz
# cd httpd-2.2.29
# ./configure --prefix=/usr/local/apache2--sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite--with-zlib
# make && make install
# vi /etc/httpd/httpd.conf (编辑httpd的配置文件添加如下行)
PidFile "/var/run/httpd.pid"
为此脚本赋予执行权限:
# chmod +x /etc/rc.d/init.d/httpd
加入服务列表:
# chkconfig --add httpd
开机自动启动:
# chkconfig httpd on
启动服务进行测试:
# service httpd start
安装PHP
# cd /opt
# tar –zxvf php-5.3.29.tar.gz
# cd php-5.3.29
# ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs--with-config-file-path=/usr/local/php5/etc --with-gd
# make && make install
为php提供配置文件:
# cp php.ini-production/usr/local/php/etc/php.ini
编辑apache配置文件httpd.conf,使apache支持php:
# vim /etc/httpd/httpd.conf
添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source.phps
定位至DirectoryIndex index.html
修改为:
DirectoryIndex index.php index.html
# service httpd restart
安装rrdtool
# cd /opt
# tar –zxvf rrdtool-1.4.5.tar.gz
# cd rrdtool-1.4.5
# ./configure–prefix=/usr/local/rrdtool –enable-shared
# make &&make install
# vi /etc/profile
exportPATH=$PATH:/usr/local/rrdtool/bin
#source/etc/profile
安装配置其他所需要的依赖包:
# yum install -y expat expat-devel pcre pcre-devel
安装apr
# cd/opt
# tar –zxvf apr-1.4.6.tar.gz
# cd apr-1.4.6
# ./configure
# make && make install
# cd ..
安装confuse
# tarzxf confuse-2.7.tar.gz
# cd confuse-2.7
# ./configure CFLAGS=-fPIC --disable-nls
# make&& make install
# cd ..
安装ganglia
# tarzxf ganglia-3.6.0.tar.gz
# cdganglia-3.6.0
#./configure --prefix=/opt/modules/ganglia --with-static-modules --enable-gexec--enable-status --with-gmetad --with-python=/usr --with-librrd=/usr/local/rrdtool
# make &&make install
# cd gmetad
# cp gmetad.conf/opt/modules/ganglia/etc/
# cp gmetad.init/etc/init.d/gmetad
打开gmetad的配置文件,修改如下内容:
# vi/etc/init.d/gmetad
将GMETAD=/usr/bin/gmetad
改为GMETAD=/opt/modules/ganglia/sbin/gmetad
# chkconfig --addgmetad
# mkdir –p /var/lib/ganglia/rrds
# chown nobody:nobody /var/lib/ganglia/
#vi /opt/modules/ganglia/etc/gmetad.conf
修改data_source "Smart City" 10.202.3.15:8650
在最后添加如下内容:
setuid_username "root"
rrd_rootdir "/usr/local/rrdtool"
说明:”Smart City”表示的是集群的名称,后面的内容是这个集群中所包含的主机信息,也就是要监控的主机IP。
启动ganglia
# service gmetad start
# netstat –tnlp |grep gmetad
tcp 0 0 0.0.0.0:8651 0.0.0.0:* LISTEN 29583/gmetad
tcp 0 0 0.0.0.0:8652 0.0.0.0:* LISTEN 29583/gmetad
Web前端安装与配置Ganglia-web作为ganglia三大守护进程之一,其安装在有gmetad运行的机器上,以便读取RRD文件。 # cd /opt # tar –zxvf ganglia-web-3.6.2.tar.gz # cd ganglia-web-3.6.2 # vi conf.php $conf['gmetad_root'] ="/var/lib/ganglia"; $conf['rrds'] ="${conf['gmetad_root']}/rrds"; $conf['rrdtool'] ="/usr/local/rrdtool/bin/rrdtool"; $conf['ganglia_ip'] ="127.0.0.1"; $conf['ganglia_port'] = 8652; # vi Makefile 将GDESTDIR = /var/www/html/ganglia APACHE_USER = apache 改为 GDESTDIR =/usr/local/apache2/htdocs/ganglia APACHE_USER = nobody # make install # service httpd restart # service gmetad restart 客户端安装与配置安装依赖包# yum install -y gcc gcc-c++ libpngfreetype zlib libdbi apr.* apr-util libxml2-devel pkg-config glib pixman pangopango-devel freetye-devel fontconfig cairo cairo-devel libart_lgpllibart_lgpl-develexpat expat-devel pcre pcre-devel apr* 安装apr# cd/opt # tar –zxvf apr-1.4.6.tar.gz # cd apr-1.4.6 # ./configure # make && make install # cd .. 安装confuse# tarzxf confuse-2.7.tar.gz
# cd confuse-2.7
# ./configure CFLAGS=-fPIC --disable-nls # make&& make install
# cd .. 安装rrdtool# cd /opt # tar –zxvf rrdtool-1.4.5.tar.gz # cd rrdtool-1.4.5 # ./configure–prefix=/usr/local/rrdtool –enable-shared # make &&make install # vi /etc/profile exportPATH=$PATH:/usr/local/rrdtool/bin #source/etc/profile
安装gmond安装ganglia # tar zxfganglia-3.6.0.tar.gz # cd ganglia-3.6.0 # ./configure--prefix=/opt/modules/ganglia --enable-gexec --enable-status --with-python=/usr--with-libapr=/usr/local/apr/bin/apr-1-config --with-libconfuse=/usr/local # make &&make install # mkdir /opt/modules/ganglia/etc #cd gmond # ./gmond –t >/opt/modules/ganglia/etc/gmond.conf # cp gmond.init /etc/init.d/gmond # vi /etc/init.d/gmond 将GMETAD=/usr/bin/gmond 改为GMETAD=/opt/modules/ganglia/sbin/gmond # chkconfig --add gmond # service gmond start Web登录
|