文档章节

Ganglia概述与工作原理

 天涯无痕
发布于 2014/09/16 15:58
字数 1372
阅读 188
收藏 0

1、概述

Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要 是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,     通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

每台计算机都运行一个收集和发送度量数据的名为 gmond 的守护进程。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。所有这些数据多次收集会影响节点性能。网络中的 “抖动”发生在大量小消息同时出现时,可以通过将节点时钟保持一致,来避免这个问题。

gmetad可以部署在集群内任一台节点或者通过网络连接到集群的独立主机,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中。

由RRDTool工具处理数据,并生成相应的的图形显示,以Web方式直观的提供给客户端。

2、工作原理

     Ganglia包括如下几个程序,他们之间通过XDL(xml的压缩格式)或者XML格式传递监控数据,达到监控效果。集群内的节点,通过运行gmond收集发布节点状态信息,然后gmetad周期性的轮询gmond收集到的信息,然后存入rrd数据库,通过web服务器可以对其进行查询展示。

     Gmetad 这个程序负责周期性的到各个datasource收集各个cluster的数据,并更新到rrd数据库中。可以把它理解为服务端。Gmond 收集本机的监控数据,发送到其他机器上,收集其他机器的监控数据,gmond之间通过udp通信,传递文件格式为xdl。收集的数据供Gmetad读取,默认监听端口8649 ,监听到gmetad请求后发送xml格式的文件。可以把它理解为客户端。

web front-end 一个基于web的监控界面,通常和Gmetad安装在同一个节点上(还需确认是否可以不在一个节点上,因为php的配置文件中ms可配置gmetad的地址及端口),它从Gmetad取数据,并且读取rrd数据库,生成图片,显示出来。

 

图(1

 

如上所示,gmetad周期性的去gmond节点或者gmetad节点获取数据。一个gmetad可以设置多个datasource,每个datasource可以有多个备份,一个失败还可以去其他host取数据。

如果是muticast模式的话,gmond之间还会通过多播来相互传递数据。Gmond本身具有udp send和receive通道,还有一个tcp recv通道。其中udp通道用于向其他gmond节点发送或接受数据,tcp则用来export xml文件,主要接受来自gmetad的请求。Gmetad只有tcp通道,一方面他向datasource发送请求,另一方面会使用一个tcp端口,发布自身收集的xml文件,默认使用8651端口。所以gmetad即可以从gmond也可以从其他的gmetad得到xml数据。

Gmond节点内部模块图如下所示:

    

图(2

如上所示,Gmond节点内部结构主要由三个模块组成,第一个是collect and publish模块,该模块周期性的调用一些内部指令获得metric data,然后将这些数据通过udp通道发布给其他gmond节点。第二个是Listen Threads模块,监听其他gmond节点的发送的udp数据,然后将数据存放到内存中。第三个是XML export thread模块,它主要负责将数据以xml格式发布出去,比如交给gmetad。

整个Ganglia系统的构成包括以下几个方面:

1、gmetad:收集各结点的数据并保存到数据库中

2、gmond:收集本地机器的信息,并发送数据

3、rrdtool: Round Robin Database Tool是一个强大的绘图的引擎,很多工具例如MRTG都可以调用rrdtool绘图。

4、apache: web服务器

5、php:执行环境,webfrontend使用php开发

6、1台监控服务器

7、n台被监控机

(图3)

Ganglia整个工作过程如上所示:

1.管理节点通过gmetad.conf 配置文件中的代理节点主机列表地址和代理节点相互通信。

2.管理节点收集每个代理节点的机器运行信息,这些信息是通过XML协议进行传输。

3.管理节点收集到代理节点的XML协议后,解析成管理节点需要的数据格式。

4.再通过管理节点的 PHP 程序 调用 rrdtool 工具,将数据转换成图形。

5.当用户在浏览器上输入管理节点的 url地址 就可以看见图形化的数据了。

 

© 著作权归作者所有

粉丝 0
博文 18
码字总数 4238
作品 0
南京
私信 提问
如何迅速掌握并提高linux运维技能

之前曾经写过一篇如何学习Linux的文章,得到了很多反馈,大家都在分享自己的学习经验和体会,并且也提出了不少意见和建议。学习这个事情其实是说起来容易,做起来就很难,虽然给大家提高了很...

南非蚂蚁
2016/10/25
0
0
分布式监控系统ganglia配置文档

一、Ganglia的组件 Ganglia包括如下程序,他们之间通过XML格式传递监控数据,达到监控效果。 Gmetad 这个程序负责收集各个cluster的数据,并更新到rrd数据库中。 Gmond 收集本机的监控数据,...

南非蚂蚁
2014/09/19
733
0
云监控 Ganglia 安装步骤 (含python module)

前言 最近在研究云监控的相关工具,感觉ganglia颇有亮点,能从一个集群整体的角度来展现数据. 但是安装过程稍过复杂,相关依赖稍多,故写此文章与大家分享下. 本文不讲解相关原理,若想了解请参考...

一只小逛
2013/12/04
12.5K
4
基于Ganglia实现集群性能态势感知

回顾 通过前面的发布过的两篇文章,我们已经大致掌握了描述单个服务器的性能情况的方法。可以从load avgerage等总括性的数据着手,获得系统资源利用率(CPU、内存、I/O、网络)和进程运行情况...

RiboseYim
2016/11/04
273
1
Linux下的监控器之一Ganglia详解与部署

Ganglia基础详解 Ganglia介绍 Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格。它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool...

Insane_linux
2017/08/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

2020,向死而生

或许2020年注定是非常艰难的一年,毕竟两个轮回前之的1900年,清廷过得也很艰难,义和团在北方闹得轰轰烈烈,紫禁城也被八国联军占领。次年(1901年)即签订了后世所谓的丧权辱国的辛丑条约,...

嘉树
8分钟前
0
0
git 常用配置

git config --global core.compression 0 git config --global http.lowSpeedLimit 0 git config --global http.lowSpeedTime 999999 git config --global http.postBuffer 524288000......

老码农008
8分钟前
2
0
Protel99SE WIN10系统下无法添加封装库的解决方法

Protel99SE WIN10系统下无法添加封装库的解决方法 Protel99SE这款PCB设计软件实在太古老了,导致与微软的最新操作系统有些功能不能兼容,比如WIN10系统下无法添加封装库;但是由于Protel99S...

demyar
10分钟前
1
0
大数据风控系统概述

为什么要做风控系统 不做的话,会有以下风险: 各种小号、垃圾账号泛滥 撞库攻击、盗号、毁号、拖库等 拉新 10w 留存率不到 5% 百万营销费用,却增加不了用户粘性 投票票数差距非常悬殊 各种...

大数据技术进阶
10分钟前
3
0
串口调试助手,VB6.0开发

1、为什么要自己开发一个串口调试助手 通常我们都是:在网上直接下载一个串口助手,可执行文件,直接使用,并无法得到其源码,在此我们提供了一个VB6.0开发的串口助手: (1)让你极速掌握串...

superman150
13分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部