从Ganglia故障说起

标签: 网络和安全 | 发表时间:2016-01-13 23:54 | 作者:Litrin
出处:http://www.litrin.net

ganglia是现在市面上比较流行的一个集群健康状态监控系统。它能够提供一整套的图形化报表用以完整的监控集群中各个节点的CPU/内存/网络以及其他需要监控的信息。

这次呢是我们搭建的一套环境,通过ganglia监控,但看似所有的配置都正确,可ganglia的前端主机(web-front)始终无法得到应有的数据。

简单介绍下我们的环境:总共有10台主机的集群,通过eth0与外网相连(10.0.0.0/8网段),通过eth1连接内部的管理网络(192.168.0.0/24网段,DHCP)。ganglia front-end工作在管理网络上,同样通过eth1获得集群中主机的健康信息。
集群中的主机通过组播方式将数据发送给front-end。

首先,从组播开始说。ganglia的组播实现是通过向一个固定的ip:239.2.11.71 发送信息从而达到全网广播的目的。对于这个ip的解释如下:

        IP地址: 239.2.11.71
        所在区域: IANA保留地址 用于多点传送 
        该区域的IP段: 225.0.0.0 - 239.255.255.255

即所有向这个IP发送的消息都被视作向全网端所有的主机发送广播信息。这个应该很好理解。但往往很多情况下有个问题会被忽略,那就是:从哪个NIC向外广播?

这个问题的回答取决于你的路由配置:

~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.239.149.1    0.0.0.0         UG    0      0        0 eth0
10.239.149.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.0.1     0.0.0.0         255.255.255.0   U     0      0        0 eth1

很明显的是,如果我向239.2.11.71发送信息的话,系统会义无反顾的使用eth0通讯。其实本来我打算贴tracepath 239.2.11.71命令的结果,可由于这个地址由于是个组播地址,事实上是不会收到响应的。

既然问题已经找到,那解决起来也是很轻松的,跟解决其他的路由问题完全一样。

~# route add 239.2.11.71 eth1
~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.239.149.1    0.0.0.0         UG    0      0        0 eth0
10.239.149.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.0.1     0.0.0.0         255.255.255.0   U     0      0        0 eth1
239.2.11.71     0.0.0.0         255.255.255.255 UH    0      0        0 eth1

对于ubuntu用户来说如果想要让这条路由每次启动后都能自动生效,那就需要在/etc/network/interface配置的末尾加上一条配置:

up route add 239.2.11.71 eth1

自此,问题解决!当然,如果你用过一段时间的ganglia,你会说对于这个情况,更简单的方法是将组播模式改成单播模式。强制指定数据的接收者就不会有这么奇怪的问题了。但这个方法对于eth1连接的DHCP网络来说,由于IP地址并不固定,还是采用组播的方式比较靠谱一点。

相关 [ganglia] 推荐:

nagios+Ganglia安装备忘录

- - DBA Blog
vi /etc/ld.so.conf.d/libconfuse.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v. Ganglia web前端的安装:. Ganglia的Wiki特别指出,web前端的运行需要rrdtool,以及gmetad中的rrds/目录,没有这两个东西,无法出图.

Hadoop配置Ganglia指南

- - CSDN博客云计算推荐文章
编辑/etc/ganglia/gmond.conf.                        # This option tells gmond to use a source address.                        # this, the metrics may appear to come from any.

ganglia收集hbase的metrics

- - CSDN博客云计算推荐文章
Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点. 每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程. 它将从操作系统和指定主机中收集. 接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中.

从Ganglia故障说起

- - 开源小站
ganglia是现在市面上比较流行的一个集群健康状态监控系统. 它能够提供一整套的图形化报表用以完整的监控集群中各个节点的CPU/内存/网络以及其他需要监控的信息. 这次呢是我们搭建的一套环境,通过ganglia监控,但看似所有的配置都正确,可ganglia的前端主机(web-front)始终无法得到应有的数据.

Ganglia:分布式监控系统

- - CSDN博客移动开发推荐文章
1         环境安装配置. 1.1      依赖软件下载. Ganglia是伯克利开发的一个集群监控软件. 可以监视和显示集群中的节点的各种状态信息,比如如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现. 而ganglia又依赖于一个web服务器用来显示集群状态,用rrdtool来存储数据和生成曲线图,需要xml解析因此需要expat,配置文件解析需要libconfuse.

云计算平台管理的三大利器Nagios、Ganglia和Splunk

- - 技术改变世界 创新驱动中国 - 《程序员》官网
综合利用Nagios、Ganglia和Splunk搭建起的云计算平台监控体系,具备错误报警、性能调优、问题追踪 和自动生成运维报表的功能. 有了这套系统,就可轻松管理Hadoop/HBase云计算平台. 云计算早已不是停留在概念阶段了,各大公司都购买了大量的机器,开始正式的部署和运营. 而动辄上百台的性能强劲的服务器,为运营管理带来了巨大的挑战.

开源监控软件ganglia安装手册

- - 研发管理 - ITeye博客
Ganglia是一个监控服务器,集群的开源软件,能够用曲线图表现最近一个小时,最近一天,最近一周,最近一月,最近一年的服务器或者集群的cpu负载,内存,网络,硬盘等指标. Ganglia的强大在于:ganglia服务端能够通过一台客户端收集到同一个网段的所有客户端的数据,ganglia集群服务端能够通过一台服务端收集到它下属的所有客户端数据.