Ganglia基础详解
Ganglia介绍
Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格。它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool用于数据存储和可视化。它利用精心设计的数据结构和算法实现每节点间并发非常低的。它已移植到广泛的操作系统和处理器架构上,目前在世界各地成千上万的集群正在使用。
Ganglia特点
- 具有良好的扩展性,分层架构使用与大规模服务器集群的架构
- 负载开销低,支持高并发
- 广泛支持各种操作系统
Ganglia组成
Ganglia框架有gmond,gmated和webfronted进程组成:
gmond:是运行在被监控节点的守护进程,负责采集本节点的上数据,同时也接受替他节点上发送过来的数据,默认监听在8649。
gmated:运行在监控节点上的守护进程,负责定期检查每个gmond进程并从哪里获取数据,然后将数据存储在本地的RRD存储引擎中。
webfronted:使用php写成的web图形化界面,功能从gmetad获取数据并且读出数据库,通过rrdtool工具生成图表,通过http协议显示在终端上。
Ganglia的工作模型
node:监控单个服务器
一台主机运行gmond进程,另一台主机运行gmetad进程进行数据采集。
cluster:监控一个集群
主机A,B,C,D,E
模型一:
主机A,B,C,D作为被监控端,运行gmont进程。
主机E作为监控端运行gmetad进程。
模型二:
主机A,B,C:被监控端
主机D:运行gmont进程,负责采集A,B,C传送的数据,最终将数据传送给监控节点。
主机E:监控节点
模型三:
如见下图:
grid:监控一个网格,由多个集群服务组成
Ganglia之间的通信
gmond<–>gmond:采用UDP通信协议,并以文件格式为XDL的格式进行发送。
gmond<–>gmetad:采用TCP通信协议,并以文件格式为XML的形式进行传送。
gmetad<–>gmetad:采用TCP通信协议,并以文件格式为XML的形式进行传送。
- 通常采用单播和多播进行通信