Ganglia监控

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ganglia监控相关的知识,希望对你有一定的参考价值。

一、Ganglia是什么?


     Ganglia是由UC Berkeley发起的一个开源项目,主要通过收集各节点上的度量数据(如处理器速度、内存使用量等)实现系统性能的监控。Ganglia的核心包含gmetad、gmond以及Web前端三部分,这三部分之间通过XDL(xml的压缩格式)或者XML格式传递监控数据,达到监控效果。


二、Ganglia工作原理图

    Ganglia监控的大致过程为:集群内的节点通过运行gmond收集并相互发布节点状态信息,然后gmetad利用RRDTool工具周期性的轮询gmond收集到的信息,然后存入rrd数据库,最后再利用RRDTool工具将收集到的数据创建成图表,并通过web前端将其显示出来。



技术分享


二、Ganglia的组件


(1)Gmetad程序

         Gmetad用于轮询gmond节点存储的信息,并更新到rrd数据库中

          一个数据源节点就是是一个gmond节点。一个gmetad节点可以设置多个数据源节点,每个数据源节点可以有多个备份,一个数据源节点失败了还可以从其他节点取数据。可以把Gmetad理解为服务器。

          Gmetad只有TCP通道,一方面它向datasource发送请求,获取数据源节点的XML文件,另一方面会使用一个8651的默认TCP端口发布自身收集的XML文件,因此,Gmetad即可以从Gmond也可以从其他Gmetad节点获取XML数据。


(2)Gmond程序

         Gmond收集:一般用于收集本机的监控数据,用gmond.conf的udp_rev_channel来配置

         Gmond存储:并不是所有的gmond的都用来存储,可以找出其中的一台或者几台来存储即可,用gmond.conf的udp_send_channel来配置

         Gmond节点之间的信息发送接收主要用udp协议,传递文件格式为XDL。


        每个Gmond收集到的数据供Gmetad读取,Gmond通过默认端口8649监听到Gmetad请求后将XML格式数据发送给Gmetad。可以将Gmond理解为客户端。

         Gmond收集数据有muticast和unicast两种。Gmond本身具有UDP的发送(send)和接受(recv)通道以及TCP的接收(recv)通道。其中UDP通道用于向其他Gmond节点发送或接收数据,TCP通道主要接受来自Gmetad的请求,向Gmetad发送XML文件。在muticast模式下,Gmond节点之间通过UDP向多播目标相互传递数据。

技术分享


Gmond节点模块结构主要有三个模块组成:

1)collect and publish模块,该模块周期性的调用一些内部命令获得metric data,然后将这些数据通过UDP通道发布给其他Gmond节点。

2)Listen Threads监听其他Gmond节点发送的UDP数据,并将这些数据存放在内存中

3)XML Export Threads负责将数据以XML格式发布出去,比如交给Gmetad。

技术分享

在unicast模式下,多个Gmond节点通过UDP向单播的目标主机host的Gmond发送数据,Gmetad然后向目标主机的Gmond请求XML文件

在Unicast模式下,Gmond、Gmetad、rrd数据库以及web前端通常位于集群内的同一个节点上,该节点负责收集、存储、显示被监控的各节点的状态信息。


(3)Web前端

          Web前端通常和Gmetad安装在同一个节点上,它从Gmetad中取数据,并且读取rrd数据库,生成图片显示出来。


本文出自 “10620401” 博客,请务必保留此出处http://10630401.blog.51cto.com/10620401/1976444

以上是关于Ganglia监控的主要内容,如果未能解决你的问题,请参考以下文章

ganglia监控hadoop集群配置

ganglia监控hadoop集群配置

开源监控软件ganglia安装手册

ganglia监控的搭建

两种监控软件ganglia与zabbix各自的搭建

使用ganglia做集群监控(单播,组播双实例)