官方文档:http://sourceforge.net/apps/trac/ganglia/wiki/ganglia_quick_start
 行文之前,表达一下小郁闷。Ganglia官方把分组监控的帮助文档放到了Quick Start Guide,而不是Configuration,让我一番好找。。。
 
  Ganglia的分组监控,实施起来其实很简单,官方文档已经给出了示例。
  总结起来,实施分组监控,有下面几个关键点:
  一是多播和单播。分组监控最好用单播方式,文档也给出了单播模式的配置方式。
  二是send_metadata_interval设置的间隔时间,官方推荐30秒。
 三 、分组监控,要同时修改gmetad.conf和gmond.conf。gmetad.conf中的分组配置非常简单,不必细说。
  四、分组的标识是gmond.conf配置文件中的cluster name值和port值,同一分组中的机器的这两个值都必须一致,不同组的机器,这两个值不同。
    cluster name的值要与gmetad.conf中的相应条目保持一致;port值的配置需要在udp_send_channel、udp_recv_channel和tcp_accept_channel三个部分同时设定,注间端口不要冲突。
 
   gmetad.conf,只修改了data_source,其它部分保持原状:
 
  
  1. data_source "Internal" 10 192.168.9.53:8649 
  2. data_source "Tangshan" 10 10.64.131:8650 10.10.64.132:8650 
  3. data_source "Jiaxing" 10  10.10.19.170:8653 10.10.19.94:8653
   解释一下,每个集群中都有很多服务器,但我们不需要把集群中的每台服务器都写在data_source条目里,因为,虽然在理论上,Ganglia服务器端要到每个节点上去获取监控信息,但实际上不必如此;集群内的每台机器都会保留其它机器的信息,服务器端只需要连接集群内的任意一台机器,就可以整个集群内所有节点的监控信息。
   在Tangshan和Jiaxing两个集群的配置中,我写了两台服务器,是一个冗余设计。Ganglia服务器端默认去第一台服务器获取信息,如果这台服务器因为某些原因而没有被获取到,服务器端会自动到第二台服务器上获取监控信息。
 
   gmond.conf,以Tangshan集群为例,修改下列部分,其它保持默认:
 
  
  1. globals { 
  2.   daemonize = yes 
  3.   setuid = yes 
  4.   user = nobody 
  5.   debug_level = 0 
  6.   max_udp_msg_len = 1472 
  7.   mute = no 
  8.   deaf = no 
  9.   allow_extra_data = yes 
  10.   host_dmax = 0 /*secs */ 
  11.   cleanup_threshold = 300 /*secs */ 
  12.   gexec = no 
  13.   send_metadata_interval = 30 /*secs */ 
  14.  
  15. cluster { 
  16.   name = "Tangshan" 
  17.   owner = "hdfs" 
  18.   latlong = "unspecified" 
  19.   url = "unspecified" 
  20.  
  21. host { 
  22.   location = "unspecified" 
  23.  
  24. udp_send_channel { 
  25.   mcast_join = 239.2.11.71 
  26.   port = 8650 
  27.   ttl = 1 
  28.  
  29.  
  30. udp_recv_channel { 
  31.   mcast_join = 239.2.11.71 
  32.   port = 8650 
  33.   bind = 239.2.11.71 
  34.  
  35. tcp_accept_channel { 
  36.   port = 8650    
  37.   acl { 
  38.   default = "deny" 
  39.   access { 
  40.   ip = 192.168.9.45 
  41.   mask = 32 
  42.   action = "allow" 
  43.   } 
  44.  
  45.   access { 
  46.   ip = 10.10.64.0 
  47.   mask = 24 
  48.   action = "allow" 
  49.   } 
  50.   } 
  其它分组,只需要修改cluster name,以及port值就可以了!要添加分组,也很简单。
  监控截图: