Ganglia是一款非常优秀的开源的监控框架,下面引自百科的解释:
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
每台计算机都运行一个收集和发送度量数据的名为 gmond 的守护进程。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。所有这些数据多次收集会影响节点性能。网络中的 “抖动”发生在大量小消息同时出现时,可以通过将节点时钟保持一致,来避免这个问题。
gmetad可以部署在集群内任一台节点或者通过网络连接到集群的独立主机,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中。
由RRDTool工具处理数据,并生成相应的的图形显示,以Web方式直观的提供给客户端。
一、Ganglia的组件
Ganglia包括如下程序,他们之间通过XML格式传递监控数据,达到监控效果。
Gmetad 这个程序负责收集各个cluster的数据,并更新到rrd数据库中。
Gmond 收集本机的监控数据,发送到其他机器上。收集其他机器的监控数据,供Gmetad读取。默认监听端口8649
web front-end 一个基于web的监控界面,需要和Gmetad安装在同一个节点上,从Gmetad取数据,并且读取rrd数据库,生成图片,显示出来。
二、Ganglia的工作模式
Ganglia的收集数据工作可以工作在单播(unicast)或多播(multicast)模式下,默认为多播模式。
单播:发送自己收集到的监控数据到特定的一台或几台机器上,可以跨网段
多播:发送自己收集到的监控数据到同一网段内所有的机器上,同时收集同一网段内的所有机器发送过来的监控数据。因为是以广播包的形式发送,因此需要同一网段内。但同一网段内,又可以定义不同的发送通道。
单台ganglia的拓扑图如下所示:
集群的ganglia的拓扑图如下所示:
- gmond节点之间以及gmond与gmetad之间的数据都以xml格式传输,gmond节点间的数据传输方式除支持单播点对点传送外,还支持多播,如果数以百计的服务器堆叠在一个局域网内,每15秒发送一次数据,这个特性还是能节省一些网络开销
- 为了更快的看懂ganglia报表,在报表中有几个名词需要弄清楚,这些也是架构层次的体现
- node: 最小单位,即单台服务器
- cluster: 服务器集群,由多台服务器组成
- grid: 网格,由多个服务器集群组成
- 以上几个名词和实体间的关系是:
- 1、一个grid对应一个gmetad,在gmetad.conf中可以指定多行data_source
- 2、一个cluster在gmetad.conf中即为一行data_source,一行可指定一个或多个gmond供gmetad进行采集
- 3、一个node即为一个gmond,gmond负责采集其所在机器的数据,同时gmond还可以暂存来自其它gmond的数据
- 从名词与实体间的对应关系加上刚才的两幅数据流图可以看出,同样的需求可以有多种配置方案,这一点与大多数软件不太一样,所以在初次接触ganglia时容易搞晕,举个例子:
- 一个cluster有多个gmond,可以在gmetad的data_source中罗列所有gmond,由gmetad来轮询所有gmond来获取数据,也可以将多个gmond的数据汇聚到一个gmond,gmetad轮询汇总的gmond从而获取整个cluster的数据
- gmond的几个特点:
- 1、gmond可以等待gmetad亲自来把数据采集走,也可以将自己的数据交由其它gmond交付gmetad
- 2、gmond节点间的通讯基于udp,接收gmetad的poll请求是基于tcp(port:8649),gmond可以同时将数据发送给多个gmond
- 3、还有就是前面说到的gmond之间的通讯除支持单播还支持广播
相关推荐
Ganglia作为一个开源监控项目,起源于加州大学伯克利分校,主要针对大规模分布式系统进行性能监控。Ganglia监控系统具有高效、可扩展、可配置的特点,它可以实时监控大量的节点,非常适合于需要处理大规模计算任务的...
Ganglia是一款开源的、跨平台的分布式监控系统,主要用于集群环境下的性能监控。它能够收集并聚合各个节点的数据,提供实时的性能指标,帮助管理员监控和诊断分布式系统的问题。Ganglia的名字来源于生物学中的“神经...
Ganglia是一款开源的分布式监控系统,广泛用于监控大型计算集群的资源使用情况,包括CPU、内存、网络等关键指标。在Hadoop这样的大数据处理框架中,Ganglia的集成显得尤为重要,因为它能够实时展现Hadoop集群的健康...
Nagios是一款开源的网络监控系统,可以监控网络服务、主机以及各种系统资源。当出现问题时,Nagios会发送警报,帮助管理员快速响应。集成Ganglia和Hadoop/HBase的监控数据到Nagios,可以实现更全面的集群监控。 ...
Apache Eagle是一款开源的分布式实时监控和告警引擎,专为Hadoop平台设计。最初由eBay公司发起,目的是监控Hadoop生态系统中的各种活动,包括数据安全性、访问活动、平台健康状况、可用性以及性能表现等。Eagle能够...
Apache Eagle是一个分布式实时监控和预警框架,最初由eBay开发并在2015年10月26日作为Apache孵化器项目开源。Eagle的设计目标是解决在大规模Hadoop生态系统中,传统监控工具如Zabbix和Ganglia无法有效处理海量指标和...
Apache Eagle 是一个分布式实时监控和预警框架,最初由 eBay 创建并捐赠给 Apache 软件基金会,成为 Apache 孵化器项目。Eagle 的主要目标是解决在大规模 Hadoop 生态系统中的实时监控和安全问题,尤其是在数据量...
2. Hadoop:Apache Hadoop是一个开源框架,专门用于处理和存储大量数据,支持高可靠性、高可扩展性的分布式计算。 3. Globus Toolkit:这是一个用于构建网格计算应用的工具包,主要服务于科研领域,提供数据管理和...
分布式计算开源框架Hadoop是大数据处理领域中的一个重要工具,它主要设计用于处理和存储海量数据。Hadoop由Apache软件基金会维护,是一个开放源代码的项目,允许开发人员和企业自由地使用、修改和分发,旨在提高数据...
这一体系不仅包括了性能数据的获取和处理方法,还探讨了如何通过现有的监控框架,结合插件机制来实现性能指标数据的采集和处理,以及对平台运行状态的趋势分析。 在云计算平台的监控技术中,性能指标是核心,涉及...
通过对小米开源经验的分享可以看出,该公司非常重视开源软件的应用与发展,并采取了一系列措施来确保既能充分利用开源的优势,又能有效解决其中可能出现的问题。这种开放合作的态度不仅有助于推动技术创新,也促进了...
人人网在技术选型上非常注重开源软件的利用,这个列表揭示了他们使用的一些关键组件。首先,人人网采用MySQL作为关系型数据库存储系统,他们的DBA团队具有强大的管理能力,处理大量的MySQL服务器,以满足高并发和...
这些文档合在一起,构成了一个全面的Java及相关开源技术的学习资源库,对于Java开发者,特别是那些专注于大数据处理和分布式系统的开发者来说,是非常宝贵的参考资料。通过阅读和理解这些文档,开发者可以更好地掌握...
Spark是由Apache基金会开发的开源大数据处理框架,以其内存计算和低延迟的优势,相较于Hadoop MapReduce在某些场景下表现出更高的效率。Spark核心组件包括Spark Core、Spark SQL、Spark Streaming、MLlib(机器学习...
Hadoop是一个开源框架,用于存储和处理大规模数据集,而Hive则是建立在Hadoop之上的一种数据仓库工具,允许用户使用SQL(HQL)语言进行数据分析。本资料包"**Hadoop集群监控与Hive高可用.rar**"聚焦于如何有效地监控...
Hadoop是一个开源框架,用于分布式存储和处理大数据。它的核心思想来源于Google的GFS和MapReduce论文。Hadoop具有高容错性,并能够运行在廉价的硬件上。由于其强大的数据处理能力和扩展性,Hadoop被广泛应用于多个...
7. **Ganglia**:一个开源的集群监控系统,可以实时监控集群的性能指标。在安装Cluster Glue时,可能需要集成Ganglia来获取集群状态。 8. **OpenMPI或MPICH**:对于需要并行计算的应用,安装一个Message Passing ...
Apache Chukwa是一款开源的数据收集系统,专门设计用于监控大规模分布式系统的状态,尤其与Hadoop生态系统紧密集成。作为Hadoop的扩展,Chukwa利用Hadoop的分布式文件系统(HDFS)和MapReduce框架,确保了高可扩展性...