Ganglia集群监控配置
操作系统环境:ubuntu-11.04-server-i386
集群环境:
namenode 192.168.1.1
datanode1 192.168.1.2
datanode2 192.168.1.3
安装步骤
1.ganglia的服务端安装在namenode上
$ sudo apt-get install ganglia-monitor ganglia-webfrontend gmetad |
(备注:如果安装脚本可能会出错,解决方法是执行以下语句在ganglia用户组下添加用户ganglia:
$ sudo useradd ganglia -g ganglia |
未报错则忽略上述操作)
在/etc/ganglia/下会产生一个gmond.conf的配置文件。
在这个配置文件中先找到setuid = yes,改成setuid =no;然后找到在cluster块中的name,改成name =”hadoop-test”;
其他都不用改了,保存以后重启gmond服务;
2.安装rrdtool
$ sudo apt-get install rrdtool |
修改/etc/ganglia/gmetad.conf配置文件。
在这个配置文件中主要是增加一些datasource,即被监控的机器的列表。在文件末行加入
data_source “hadoop-test” namenode:8649 datanode1:8649 datanode2:8649 |
其中”hadoop-test”是集群名称,呆会要和客户端的gmond中配置的name要一致,后面多个机器名的话用空格隔开就可以了
配置过配置文件以后,需要重启gmetad来应用配置。
$ sudo /etc/init.d/gmetad restart $ sudo /etc/init.d/ganglia-monitor restart |
3. 配置web
将ganglia的文件链接到apache的默认目录下
$ sudo ln -s /usr/share/ganglia-webfront /var/www/ganglia |
现在重启动apache
$ sudo /etc/init.d/apache2 restart |
启动成功后,通过访问http://namenode/ganglia就可以看到ganglia的首页了。备注:如果重启apache失败需要在/etc/apache2/apache2.conf中最后面添加ServerName YourHostName
4.安装datanode客户端
$ sudo apt-get install ganglia-monitor |
同第一步配置gmond.conf(也可将namenode的gmond.conf复制到其他被监控的节点机中/etc/ganglia/)
5. 配置Hadoop端
找到hadoop根目录下的conf文件夹下的hadoop-metrics.properties文件
改成如下内容
# Configuration of the “dfs” context for ganglia dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext dfs.period=10 dfs.servers=239.2.11.71:8649 # Configuration of the “mapred” context for ganglia mapred.class=org.apache.hadoop.metrics.ganglia.GangliaContext mapred.period=10 mapred.servers=239.2.11.71:8649 # Configuration of the “jvm” context for ganglia jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext jvm.period=10 jvm.servers=239.2.11.71:8649
|
注:239.2.11.71这个是ganglia用的多播的地址,不需要改成gmetad的服务器地址。
如果需要监控hbase的话,也一样找到hbase目录下的这个文件,改法一样就不重复了。 改完以后将配置文件分发到各个datanode节点的${HADOOP_HOME}/conf目录下,重启Hadoop集群即可。
注:默认配置下,Ganglia会把所有东西放在一个Grid里面,也就是一个网格。大的集群,不分组。但是真实的服务器集群有各种功能,每个群分管不同的事务,全放一起就太乱了。也不好识别,所以需要分组使用。Ganglia的分组很简单,就是分端口,不同的组配置不同的监听端口。在gmetad.conf中为不同组分配不同端口(默认8649)。【有时会出现ganglia监控到其他集群的机器,原因就可能是2个cluster使用了同一端口,为不同cluster分配不同端口即可解决。】