java ganglia_分布式监控数据采集系统Ganglia实战

一、什么是Ganglia

对于这个工具,大家可能比较陌生,但是它功能非常强大,如果我们想收集所有服务器、网络设备的数据,那么ganglia绝对是首选,在深入学习之前,还是先从基础概念了解起吧!

Ganglia是一款为HPC(高性能计算)集群而设计的可扩展的分布式监控系统,它可以监视和显示集群中的节点的各种状态信息,它由运行在各个节点上的gmond守护进程来采集CPU 、内存、硬盘利用率、I/O负载、网络流量情况等方面的数据,然后汇总到gmetad守护进程下,使用rrdtool存储数据,最后将历史数据以曲线方式通过PHP页面呈现。

Ganglia的特点如下:

 良好的扩展性,分层架构设计能够适应大规模服务器集群的需要

 负载开销低,支持高并发

 广泛支持各种操作系统(UNIX等)和cpu架构,支持虚拟机

二、Ganglia的组成

Ganglia监控系统有三部分组成,分别是gmond、gmetad、webfrontend,作用如下。

 gmond: 即为ganglia monitoring daemon,是一个守护进程,运行在每一个需要监测的节点上,用于收集本节点的信息并发送到其他节点,同时也接收其他节点发过了的数据,默认的监听端口为8649。

 gmetad: 即为ganglia meta daemon,是一个守护进程,运行在一个数据汇聚节点上,定期检查每个监测节点的gmond进程并从那里获取数据,然后将数据指标存储在本地RRD存储引擎中。

 webfrontend: 是一个基于web的图形化监控界面,需要和Gmetad安装在同一个节点上,它从gmetad取数据,并且读取RRD数据库,通过rrdtool生成图表,用于前台展示,界面美观、丰富,功能强大。

下图是一个简单的Ganglia监控系统结构图。

8321e17d9e09ce7b1365de3fa69773b4.png

从图中可以看出,一个Ganglia监控系统是由多个gmond进程和一个主gmetad进程组成,所有gmond进程将收集到的监控数据汇总到gmetad管理端,而gmetad将数据存储到RRD数据库中,最后通过PHP程序在Web界面进行展示。

这是最简单的Ganglia运行结构图,在复杂的网络环境下,还有更复杂的Gnaglia监控架构。下图是Ganglia的另一种分布式监控架构图。

94f32f33b942fd56be05a472e8330e18.png

从这个图中可以看出,gmond可以等待gmetad将监控数据收集走,也可以将监控数据交给其它gmond,进而让其他gmond将数据最终交付给gmetad,同时,gmetad也可以收集其他gmetad的数据.比如,对于上图中的Cluster1和Cluster2集群,Cluster2就是一个gmetad,它将自身收集到的数据又一次的传输给了Cluster1集群;而Cluster1将所有集群的数据进行汇总,然后通过Web进行统一展现。

三、Ganglia的工作原理

在介绍Ganglia的工作原理之前,需要介绍一下在Ganglia中经常用到的几个名词,这些是了解Ganglia分布式构架的基础。在Ganglia分布式结构中,经常提到的几个名词有node、cluster和grid,这三部分构成了Ganglia分布式监控系统。

 node: Ganglia监控系统中的最小单位,即被监控的单台服务器。

 cluster:表示一个服务器集群,由多台服务器组成,是具有相同监控属性的一组服务器的集合。

 grid: 表示一个网格。grid由多个服务器集群组成,即多个cluster组成一个grid。

从上面介绍可以看出这三者之间的关系:

 一个grid对应一个gmetad,在gmetad配置文件中可以指定多个cluster。

 一个node对应一个gmond,gmond负责采集其所在机器的数据,同时gmond还可以接收来自其他gmond的数据,而gmetad定时去每个node上收集监控数据。

1、Ganglia数据流向分析

在Ganglia分布式监控系统中,gmond和gmetad之间是如何传输数据呢?接下来介绍一下Ganglia是如何实现数据的传输和收集的。下图是Ganglia的数据流向图,也是Ganglia的内部工作原理。

412f7a3cdbb15b4785d30030a4077d58.png

下面简述下Ganglia基本运作流程。

1) gmond收集本机的监控数据,发送到其他机器上,并收集其他机器的监控数据,gmond之间通过udp通信,传递文件格式为XDL。

2) gmond节点间的数据传输方式支持单播点对点传送外,还支持多播传送。

3) gmetad周期性的到gmond节点或gmetad节点上获取(poll)数据,gmetad只有tcp通道,因此g

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值