模块和名词介绍
ganglia是个运行在linux上的集群监控系统,它有三个组件:gmond,gmeta,和web模块。ganglia以metrics为单位,对集群进行监控。
metrics:可以认为就是指标。一个metrics至少有一个名字,值和时间。比如cpu-usage,值是500,时间是2014-04-09 15:24。这样有了一连串的metrics,就可以以时间为x轴,值为y轴,绘制一张metrics的图像了。当然很多metrics还有附属的属性,比如hostname等。
gmond:是用来搜集集群中的metrics信息的。同时,gmond还负责搜集一些机器级别的metrics,比如机器的内存,网络,cpu的使用情况等。
gmetad是用来搜集gmond的metrics,同时将metrics写入磁盘/RRD cacahe的。
web则是用来图形化展示metrics的。
数据流程
ganglia里数据的流程可以表示如下:
客户端 ----send---> gmond * n <---pull----gmetad --- write ---> rrd cache/disk
用户<---->ganglia web模块 ---access--->rrdcache/disk
PS:RRD
说到ganglia就不得不提到它所依赖的存储层RRDTools。RRD=round-robin database。这种数据库的特点是不会随着数据的增加而无限制的增加。简单来说,对于一个metrics,随着时间的推移,数据会被聚合在一起。昨天一整天的数据可能就被聚合成了一个点放在RRD中。也就是说,历史数据是会失真丢失的。
关于ganglia具体的配置,可以参加我上一篇文章 http://deepnighttwo.iteye.com/admin/blogs/2038843