tangtb

Hadoop,SpringMVC,ExtJs,Struts2,Spring,SpringSecurity,Hibernate,Struts
posts - 25, comments - 88, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Ganglia整合Nagios监控Hadoop集群

Posted on 2015-02-25 14:48 tangtb 阅读(6801) 评论(0)  编辑  收藏 所属分类: Hadoop

    Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要 是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

    gmetad可以部署在集群内任一台节点或者通过网络连接到集群的独立主机,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中由RRDTool工具处理数据,并生成相应的的图形显示,以Web方式直观的提供给客户端

    Ganglia包括如下几个程序,他们之间通过XDR(xml的压缩格式)或者XML格式传递监控数据,达到监控效果。集群内的节点,通过运行gmond收集发布节点状态信息,然后gmetad周期性的轮询gmond收集到的信息,然后存入rrd数据库,通过web服务器可以对其进行查询展示。

 

 

检查安装ganglia依赖包

 

rpmbuild命令生成rpm包 

[root@hadoop228 ~]# rpmbuild -tb ganglia-3.6.1.tar.gz

 

命令执行成功,如上图所示,执行以下命令查看生成的rpm文件;我再执行过程中出现“错误:发现已安装(但未打包)文件:”(Installed (but unpackaged) file(s) found),如图所示:

 

解决方法:

找到 /usr/lib/rpm/macros 中
%__check_files         %{_rpmconfigdir}/check-files %{buildroot} 注释掉该行

 

[root@hadoop228 ~]# cd /root/rpmbuild/RPMS/x86_64/

 

[root@hadoop228 x86_64]# rpm -ivh *,执行命令安装ganglia相关软件包

配置ganglia

本例只在一台机器上安装配置ganglia,如果是集群环境

在主节点配置gmetad.conf

 

 

data_source "hadoop_cluster" 10 10.120.20.228:8649 10.120.20.229:8649 ...

 

data_source属性是gmetad配置的核心。每一行data_source描述一个gmetad收集信息的gmond集群或gmetad网格

data_source由3个字段组成。第一个字段为唯一标识data_source的字符串;第二个字段为指定轮询间隔(单位:秒)的数字;第三个字段 为以空格分开的所要轮询数据的主机列表,这些地址以IP地址或DNS主机名的形式指定,并可能添加“:端口号”形式的后缀,该端口号指明gmond的 tcp_accept_channel所在位置。如果未指明端口号,gmetad将尝试连接tcp/8649。

 

在主节点及其它节点配置gmond.conf

cluster {

  name = "hadoop_cluster"

  owner = "nobody"

  latlong = "unspecified"

  url = "unspecified"

}

udp_send_channel {

  #mcast_join = 239.2.11.71 

  host = 10.120.20.228 #gmetad主节点

  port = 8649

  ttl = 1

}

udp_recv_channel {

  #mcast_join = 239.2.11.71

  port = 8649

  #bind = 239.2.11.71

  #retry_bind = true

  # Size of the UDP buffer. If you are handling lots of metrics you really

  # should bump it up to e.g. 10MB or even higher.

  # buffer = 10485760

}

tcp_accept_channel {

  port = 8649

  # If you want to gzip XML output

  gzip_output = no

}

cluster中的name属性值与主节点gmetad.conf文件中data_source配置的hadoop_cluster一致

安装ganglia-web

首先安装httpd PHP

[root@hadoop228 ~]# yum install httpd php

下载并解压缩ganglia-web-3.6.2.tar.gz

[root@hadoop228 ~]# tar -zxf ganglia-web-3.6.2.tar.gz 

 

进入ganglia-web-3.6.2目录修改ganglia-web安装参数

[root@hadoop228 ganglia-web-3.6.2]# vim Makefile

 

修改默认配置:

GDESTDIR=/var/www/html/ganglia
 APACHE_USER = apache

GDESTDIR 和 APACHE_USER 属性值与/etc/httpd/conf/httpd.confAPACHE配置文件中的DocumentRootUser对应

执行make install安装

[root@hadoop228 ganglia-web-3.6.2]# make install

修改ganglia-web访问权限[根据具体情况可选]

[root@hadoop228 ~]# chown -R apache:apache /var/www/html/ganglia

[root@hadoop228 ~]# chown -R 755 /var/www/html/ganglia

[root@hadoop228 ~]# chown -R nobody:nobody /var/lib/ganglia/rrds

新建/etc/httpd/conf.d/ganglia.conf配置文件,并添加如图配置:

 

启动httpd、gmetad、gmond服务

 

访问ganglia-web监控页面http://localhost/ganglia

 

 

Ganglia 监控 Hadoop集群

HADOOP_PATH/etc/hadoop/目录下有两个配置文件:hadoop-metrics.properties和hadoop-metrics2.properties

hadoop-metrics.properties 用于hadoop与3.1版本以前的ganglia集成做监控的配置文件

hadoop-metrics2.properties 用于hadoop与3.1版本以后的ganglia集成做监控的配置文件本文使用hadoop2.5.1,因此使用hadoop-metrics2.properties配置文件

[hadoop@hadoop228 ~]$ vim hadoop-2.5.1-single/etc/hadoop/hadoop-metrics2.properties

加入以下配置信息,如图所示:

*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31

*.sink.ganglia.period=10

 

*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both

*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40

 

namenode.sink.ganglia.servers=10.120.20.228:8649  

resourcemanager.sink.ganglia.servers=10.120.20.228:8649  

 

datanode.sink.ganglia.servers=10.120.20.228:8649    

nodemanager.sink.ganglia.servers=10.120.20.228:8649    

 

maptask.sink.ganglia.servers=10.120.20.228:8649    

reducetask.sink.ganglia.servers=10.120.20.228:8649

 

启动hadoop

 

 

 

 

 

 

 

 

 

 

 

 

在ganglia-web监控页面选择某个hadoop节点,进入节点监控页面,如果能看到如下图所示的监控内容表示配置成功

 

 

 

 

 

 

 

 

 

Nagios与Ganglia整合

本文使用的Nagios版本:

nagios-4.0.8.tar.gz

nagios-plugins-2.0.3.tar.gz

安装方法参考官网安装文档Installing_Nagios_Core_From_Source.pdf

 

 

配置方式可参考:

http://www.ibm.com/developerworks/cn/linux/l-ganglia-nagios-2/

http://quenlang.blog.51cto.com/4813803/1571635

按照上述文档和文章的步骤可以正确配置,这里就不再累述了;整合成功,访问http://localhost/nagios如下图所示:

 




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


网站导航: