1、我们知道ganglia是C/S结构的,我们熟知的就是一台ganglia server,很多slave。这种结构有什么问题?
1)如果ganglia server出现问题,我们就无法监控到datanode。
2)如果监控节点特别多个100,几百台怎么,一台很明显会处理不过来,web展示会面临很大的性能问题。
我们可以考虑如下的结构:
2、这种架构有什么优势呢:
1)客户端往中间数据接收服务器传输,中间中转的集群是多台的,能实现冗余,保证数据完整
2)ganglia server定向中转机器拉取数据,来实现web展示,这样减轻了ganglia server的压力,且多个ganglia server可以向中间层的服务器拉取数据,实现ha功能。
3、那么应该怎么配置呢?
ganglia server配置
data_source "hxhhadoop" server1.hadoop.gmond.ganglia server2.hadoop.gmond.ganglia server3.hadoop.gmond.ganglia
data_source "hxhstorm" server1.hadoop.gmond.ganglia server2.hadoop.gmond.ganglia server3.hadoop.gmond.ganglia
all_trusted on
setuid_username "hxh"
rrd_rootdir "/data/ganglia/rrds"
gmond client配置
vim /usr/local/ganglia/etc/gmond.conf
cluster {
name = "hxhhadoop"
owner = "hxh"
latlong = "unspecified"
url = "unspecified"
}
/* The host section describes attributes of the host, like the location */
host {
location = "unspecified"
}
udp_send_channel {
#mcast_join = 239.2.11.71
host = server1.hadoop.gmond.ganglia
port = 8649
ttl = 1
}
udp_send_channel {
host = server2.hadoop.gmond.ganglia
port = 8649
ttl = 1
}
udp_send_channel {
host = server3.hadoop.gmond.ganglia
port = 8649
ttl = 1
}
udp_recv_channel {
#mcast_join = 239.2.11.71
port = 8649
#bind = 239.2.11.71
retry_bind = true
}
tcp_accept_channel {
port = 8649
gzip_output = no
}
注意:
1)这里ganglia server,中间中转的服务器,gmond都是上面这个配置,保证数据只传输给server1、server2、server3,而ganglia server只上server1、server2、server3上面取数据
2)gmond.conf中主要配置udp send的,其他的不需要怎么配置