Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。
ganglia的架构为层次架构,安装的过程主要是主节点和从节点的安装
1 ganglia 主节点上安装步骤
1.1 安装php和apache 默认是安装的!
[root@rac1 ~]#yum install httpd php
1.2 安装必要的库,
[root@rac1 ~]#yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python--devel libXrender-devel zlib libpng freetype libjpeg fontconfig gd libxml2 pcre pcre-devel
[root@rac1 ~]#yum -y install libconfuse libconfuse-devel.x86_64 # 安装confuse库
[root@rac1 ~]#yum install rrdtool
1.3 安装rrdtiool库
[root@rac1 ~]# wget http://oss.oetiker.ch/rrdtool/pub/rrdtool.tar.gz
[root@rac1 ~]# tar zxvf rrdtool.tar.gz
[root@rac1 ~]# cd rrdtool-1.4.5
[root@rac1 ~]# ./configure --prefix=/usr && make -j8 && make install
[root@rac1 ~]# which rrdtool
[root@rac1 ~]# ldconfig
1.4 开始正式安装ganglia
[root@rac1 ~]# wget http://cdnetworks-kr-1.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.1.7/ganglia-3.1.7.tar.gz
[root@rac1 ~]# tar zxvf ganglia-3.1.7.tar.gz
[root@rac1 ~]# cd ganglia-3.1.7
[root@rac1 ~]# ./configure --with-gmetad --sysconfdir=/etc/ganglia && make -j8 && make install # 在主节点上需要编译安装gmetad进程,这个是和从节点安装的主要不同点
[root@rac1 ~]# cp -rp ./web /var/www/html/ganglia
[root@rac1 ~]# cp ./gmetad/gmetad.init /etc/init.d/gmetad
[root@rac1 ~]# cp ./gmond/gmond.init /etc/init.d/gmond
[root@rac1 ~]# gmond -t |tee /etc/ganglia/gmond.conf # generate initial gmond config
1.5 为rrds创建存放图片文件的目录以及进行配置
[root@rac1 ~]# mkdir -p /u01/ganglia/rrds
[root@rac1 ~]# chown -R nobody:nobody /u01/ganglia
[root@rac1 ~]# vi /var/www/html/ganglia/conf.php# 修改以下内容,指定rrds存放位置
# Where gmetad stores the rrd archives.
$gmetad_root = "/u01/ganglia";
$rrds = "$gmetad_root/rrds";
1.6 对gmond gmetad 以及apache进行配置
[root@rac1 ~]# vi /etc/ganglia/gmetad.conf # 修改将data source后面的字符串换成你的集群名字,例如my cluster 将rrd_rootdir "/u01/ganglia/rrds"加入最后一行
[root@rac1 ~]# vi /etc/ganglia/gmond.conf # 修改将cluster中的name后换成你的集群名字,例如my cluster,记得一定要和gmetad.conf中data source的集群名字一样,
# 另外,为了将ganglia监控集群的传播消息方式由广播改为单博,需要注释掉和默认的广播地址239.2.11.71相关的所有行,将host=主节点ip或是主机名加入udp_send_channel所在的配置组中。对于单播和多播的区别,建议查看ganglia的手册
vi /etc/httpd/conf.d/php.conf# 去掉最后一行的井号,使得apache可以解析php脚本
1.7 启动gmond gmetad 以及apache
[root@rac1 ~]# /etc/init.d/gmetad start #start service
[root@rac1 ~]# /etc/init.d/gmond start
service httpd start
[root@rac1 ~]# 主节点上这三个进程成功启动后,可以使用浏览器通过 :主机的ip/ganglia 这样URL来访问,会发现集群中有一个主机被监控
ganglia 2 从节点上安装步骤
在主机点上,使用pgm远程操作rac[2-3]三台机器,在这三台机器上安装gmond进程,来作为从进程
ganglia 2.1 安装依赖的库
pgmscp -A rac[2-3] ganglia-3.1.7.tar.gz /home/hadoop
pgm rac[2-3] "yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel zlib libpng freetype libjpeg fontconfig gd libxml2 pcre pcre-devel"
pgm rac[2-3] "yum -y install libconfuse libconfuse-devel.x86_64 -b test"
ganglia 2.2 配置安装ganglia
pgmscp rac[2-3] ganglia-3.1.7.tar.gz /home/hadoop
pgm rac[2-3] "tar zxvf ganglia-3.1.7.tar.gz"
pgm rac[2-3] "cd ganglia-3.1.7 && ./configure --sysconfdir=/etc/ganglia && make -j8 && make install"
pgm rac[2-3] "cd ganglia-3.1.7 && cp gmond/gmond.init /etc/init.d/gmond "
pgmscp -A rac[2-3] /etc/ganglia/gmond.conf /home/hadoop
pgm rac[2-3] "cp /home/hadoop/gmond.conf /etc/ganglia/" # 将本机的gmond.conf复制到远程的ganglia配置目录下,其实也可以采用gmond -t |tee /etc/ganglia/gmond.conf来生成配置文件的,但是,还是需要再配置成和主节点上一样的,不如直接将主节点上的复制过来,一步到位:)
ganglia 2.3启动从节点上的gmond进程
pgm rac[2-3] "/etc/init.d/gmond start" # 从节点上gmond进程成功启动后,可以使用浏览器通过 :主机的ip/ganglia 这样URL来访问,会发现集群中多了三个被监控的主机!
结果截图:
1.JPG
2.JPG
3.JPG