Ganglia集群监控

介绍

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

Ganglia的核心包含gmond、gmetad以及一个Web前端。
gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。
gmetad(Ganglia Meta Daemon)是一种从其他gmetad或gmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。
gweb(Ganglia Web)是一种利用浏览器显示gmetad所存储数据的PHP前端。在Web界面中以图表方式展现集群的多种不同指标数据。

ganglia系统架构
系统架构

data flow
1.管理节点通过gmetad.conf配置文件中的代理节点主机列表地址和代理节点相互通信,大概三分钟轮询一次。
2.管理节点收集每个代理节点的机器运行信息,这些信息是通过XML协议进行传输。
3.管理节点收集到代理节点的XML协议后,解析成管理节点需要的数据格式。
4.再通过管理节点的PHP程序调用rrdtool工具,将数据转换成图形。
5.当用户在浏览器上输入管理节点的url地址就可以看见图形化的数据了。

Hadoop原生的支持ganglia监控,并且可以自己配置metric。

上面的说明中管理节点向代理节点发送多播消息,ganglia当然也支持单播通信。

EPEL

企业版Linux附加软件包(Extra Packages for Enterprise Linux,EPEL)是一个由特别兴趣小组创建、维护并管理的,针对红帽企业版Linux(RHEL)及其衍生发行版(比如CentOS、Scientific Linux、Oracle Enterprise Linux)的一个高质量附加软件包项目。
EPEL的软件包通常不会与企业版Linux官方源中的软件包发生冲突,或者互相替换文件。
CentOS用户可以直接通过yum install epel-release安装并启用EPEL源。
更多EPEL的信息参见EPEL
在CentOS上用yum安装gmod和gmetad需要提前安装EPEL。

配置gmond

/etc/ganglia/gmond.conf

globals字段里send_metadata_interval设置为10,表示每10秒发送一次数据。如果不使用多播,这个值应设为一个正整数,60秒是一个合理值。

cluster字段里的name标识集群的名字。

udp_send_channel字段里,mcast_join为多播模式,如果是单播模式需要注释掉mcast_join,并添加
host = 127.0.0.1(服务器的IP地址)
port = 8649(发送数据的端口)

udp_recv_channel {
  port = 8649   // 接收数据的端口号,如果是用单播模式则要删除mcast_join
}

配置gmetad

/etc/ganglia/gmetad.conf

data_source标识一个要监控的集群(一些gmond或另一个gmetad)。格式为:
data_source "my cluster" [polling interval] address1:port addreses2:port ...
polling interval默认15秒。
端口默认8649。

setuid_username ganglia
设定运行用户

rrd_rootdir “/var/lib/ganglia/rrds”
gmetad存储round-robin数据库的位置,要保证这个目录可以被上面设定的用户读写

安装过程

yum install ganglia-gmond
yum install ganglia-gmetad
然后要安装gweb就,这个需要的依赖比较多,我也不知道哪个装哪个不装,索性都装上吧:
yum install php rrdtool rrdtool-devel ganglia-web apr-devel zlib-devel libconfuse-devel expat-devel pcre-devel

启动

需要先关闭SELinux
service gmond start
service gmetad start
service httpd restart

让外部机器也可以访问本机ganglia

修改/etc/httpd/conf/httpd.conf,在文件末尾添加下列信息,并重启httpd服务即可。

<location /ganglia>
    order deny,allow
    deny from all
    allow from all
</location>

Hadoop

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

组播

局部链接地址:224.0.0.0~224.0.0.255,用于局域网,路由器不转发属于此范围的IP包;
预留组播地址:224.0.1.0~238.255.255.255,用于全球范围或网络协议;
管理权限地址:239.0.0.0~239.255.255.255,组织内部使用,用于限制组播范围;
我理解,第一种是局域网用的,第二种是全球统一分配,第三种可以内部使用,但需要限制ttl跳数。

参考

http://blog.csdn.net/cywosp/article/details/39701141
http://book.2cto.com/201309/32329.html
http://blog.csdn.net/lifuxiangcaohui/article/details/40108913
《Ganglia系统监控》

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值