目录(?)[+]
Ganglia是一个用于集群性能监测的工具,为了说明其使用方法,本文结合Hadoop集群环境讲解ganglia的安装过程,希望能给感兴趣的朋友提供参考帮助。
sudo apt-get install ganglia-monitor
sudo apt-get install ganglia-webfrontend
首先简单说明一下ganglia工作的原理,便于理解后面的配置。
ganglia主要由一个gmetad和若干gmond构成:gmetad负责收集各个节点的监测数据,在集群中只需要选择一台节点进行安装即可,然后可以通过这台节点获取监测结果;gmond负责监测各个节点,所以在集群中的每个节点上都需要安装gmond,通过配置/etc/gmond.conf中的udp_send_channel部分可以设定目标gmetad的ip和端口;
在配置过程,主要修改/etc/gmetad.conf和/etc/gmond.conf两个文件:
- /etc/gmond.conf中主要需要对三部分进行修改:
udp_send_channel:目标gmetad的ip和端口
udp_recv_channel:当节点作为gmetad时,可以通过这里设定接收数据的ip和端口号;
tcp_accept_channel:从名称可以看出,这个属性走的是tcp协议,也就是在通过web前端访问ganglia时走的端口号;
- /etc/gmetad.conf只需要修改该data_source属性:
找到data_source对应的位置,其格式为 data_source "my cluster" [polling interval] address1:port addreses2:port ...
my cluster需要对应到gmond.conf中cluster里的name属性值,polling interval可以省略,表示gmetad多长时间向gmond收集数据,后面表示安装了gmetad的节点ip和端口号(端口号缺省为8649)
数据监测节点上只运行gmond,所以只需要对/etc/ganglia/gmond.conf文件进行配置:
配置前建议先进行备份:sudo cp gmond.conf gmond.conf.back(第一次配置,以免出错,-_-)
主要修改下面红色字体部分:
host_dmax表示多长时间未接到节点发送的数据就从ganglia中断开,send_metadata_interval表示gmond发送数据的间隔时间,name表示监测系统的名字;
udp_send_channel表示gmond发送端的情况,host表示目标主机的ip,port是对应的端口,这里配置的是单播环境,所以需要把mcast_join注释掉;
由于这是对数据监测节点配置,所以udp_recv_channel和tcp_accept_channel部分都需要注释掉。
我这里使用ip地址为10.77.20.57的主机安装gmetad,数据收集节点上的gmond.conf内容修改如下:
gmetad.conf文件内容只需要修改如下部分:
data_source "hadoop" 10.77.20.57
上面的ip地址可以改为localhost,因为在gmond.conf中的accept部分并未指定ip,只要能够访问安装了gmetad的节点就可以。
完成上面的修改以后,可以重启gmetad和gmond服务,命令如下:
可以通过netstat命令查看是否启动成功,内容如下:
由于需要通过web访问ganglia数据,所以需要配置apache虚拟主机并指向ganglia web目录,具体步骤如下:
- Listen 8080
- <VirtualHost *:8080>
- ServerAdmin yn@ganglia
- DocumentRoot /usr/share/ganglia-webfrontend/
- ErrorLog "/var/log/apache2/ganglia_errors.log"
- CustomLog "/var/log/apache2/ganglia_accesses.log" common
- </VirtualHost>
我这里使用8080端口监控ganglia数据,并且通过DocumentRoot设定ganglia Web的目录地址。
通过上面的设置,就可以通过下面的地址访问ganglia了:
http://localhost:8080
顺利的话可以看到下面的网页内容: