下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

简述Ganglia

作者:课课家教育     来源: http://www.kokojia.com点击数:1112发布时间: 2018-01-07 09:00:14

标签: 云计算phpLinux

  Ganglia项目是由师加州大学发起的,现在已经成为一个非常广泛集群监控软件。可以监视和显示集群中的节点的各种状态信息,比如:CPU、mem、硬盘利用率、I/O负载、网络流量等情况,同时可以将历史数据以曲线方式通过php页面呈现。同时具有很好的扩展性,允许用户加入自己所要监控的状态信息。下面我们就来学习Ganglia相关的知识吧。
  Ganglia是一个针对性高性能分布式系统(例如:集群、网络、云计算等)所设计的可扩展监控系统。该系统基于一个分层的体系结构,并能够支持2000个节点的集群。它允许用户能够远程监控系统的实时或历史统计数据,包括:CPU负载均衡、网络利用率等。Ganglia依赖于一个基于组播的监听/发布协议来监控集群的状态。Ganglia系统的实现综合了多种技术,包括:XML(数据描述)、XDR(紧凑便携式数据传输)、RRDtool(数据存储和可视化)等。另外,它具有低单节点负载和高一致性的特点并能够适应不同的操作系统和处理器体系结构。

简述Ganglia_云计算_php_Linux_课课家教育
  Ganglia由两个独立的daemon、一个基于PHP的web前端和其它实用程序所组成。下面我们将分别进行介绍。
  一、Gmond监控程序
  Gmond监控程序(Ganglia Monitoring Daemon,Gmod)是一个组播守护进程,它运行在每一个被监控的节点上。该程序的安装并不依赖于网络文件系统(NFS文件系统)或者数据库服务器
  Gmond的功能主要以下四项:
  1. 监控宿主机状态的改变
  2. 报告相关的改变
  3. 通过单播或组播来监控ganglia其它节点的状态
  4. 对集群状态请求进行应答,该请求通过XML进行描述
  Gmond中消息的传递包括如下两种方式:
  1.使用UDP协议以外部数据表示(externaldata representation,XDR)格式采用单播或组播的方式传播宿主机状态
  2. 通过TCP协议传递XML描述请求
  二、Gmetad节点程序
  Ganglia集群在集群代理节点之间使用一个基于P2P连接的树型结构来收集多个集群的状态。Ganglia在树结构的每一个节点上部署一个Ganglia节点程序(Ganglia Meta Daemon,Gmetad),由该Gmetad所管理的子树代表一个Ganglia子集群,它定期地轮询子树中每个孩子的数据资源、解析收集到的XML数据、存储数值、将易失性数据存储到轮转数据库(round-robindatabases)以及向客户端传送收集到的XML数据。这些数据来源包括:Gmond监控程序、某个集群、其它Gmetad节点程序或某一个集群集合。数据源通过IP地址来定位(可以使用多个IP来做失效备援)。
  三、GangliaPHP Web前端
  Ganglia php web前端提供了一种可视化动态监控集群的手段,它是一种让系统管理员有效监控集群状态的方法。web前端不仅仅是把XML树以HTML页面的方式来展现,而且能够以多种方式展现系统的历史数据。
  Ganglia web前端是为了迎合系统管理员和用户的爱好而产生的。例如,用户可以查看过去几个小时、几天、几周、几个月甚至几年的使用率。Ganglia web前端可以以统计图的方式来显示内存的使用、磁盘的使用、网络统计数据、正在运行的处理器的数量以及其他Ganglia节点的状态。
  Ganglia web前端依赖于Gmetad,Gmetad能够为前端提供数据。另外,默认情况下web前端将使用8651端口接收数据(更倾向于接收Ganglia XML树数据)。由于Ganglia web前端的实时性,因此任何对Ganglia数据的改变可以立刻被显示。由于该前端的强动态性,它需要到来的数据在每一个页面进行解析,因此该前端将消耗当量的资源。
  Ganglia web前端由PHP脚本语言实现,使用Gmetad生成的图来显示历史信息,并已在各种安装有Apache webserver和PHP 4.1模块的Unix(主要是Linux)机上测试通过。
  四、Ganglia组件介绍
  Gmond(Ganglia Monitor Daemon):监控进程,负责数据采集等工作
  Gmond组件部署于集群中各个被监控的节点,可以把它理解为客户端。其主要功能是从操作系统或指定的主机收集状态信息,收集的信息在gmond之间传递或发送到Gmetad读取。Gmond收集主机状态信息的方式灵活,状态信息均以XML格式进行传输,可以级联形成层次结构,使得Ganglia拥有良好的可扩展性。并且带来的系统负载非常少,对用户的影响非常小。
  Gmetad(Ganglia Metadata Daemon):元数据进程,负载负责数据收集汇总等工作。
  Gmetad组件可以部署于集群中的某一节点,也可以部署于集群外的某一专门服务器,可以把它理解为服务端。其主要功能是周期性地从指定的Gmond组件或者其他Gmetad组件拉取数据,并将拉取数据存储在本地数据库(rrd)。这些存储的状态信息供Ganglia-Web组件使用。
  Gweb(Ganglia Webfrontend):可视化工具
  Ganglia-Web组件和Gmetad组件必须部署于同一节点,它通过数据库轮询的方式从Gmetad组件中获取状态信息,并将web形式图形化地展示各个节点的状态信息。
  五、Ganglia工作模式
  Ganglia收集数据可以工作在单播或多播模式下,默认为多播模式
  单播:发送自己收集到的监控数据到特定的一台或几台服务器上,可以跨网段。
  多播:发送自己收集到的监控数据到同一网段所有的服务器上,同时收集同一网段的所有服务器发送过来的监控数据。因为是以广播包的形式发送,因此需要在同一网段内,但同一网段内,又可以定义不同的发送通道。
  六、Ganglia的特点
  灵活的分布式、分层体系结构,使Ganglia支持上万个监控节点的数据收集,并且性能表现稳定,同时,Ganglia也可以根据地域环境、网络结构的不同,分地域、分层次的灵活部署Ganglia数据收集点,而对于数据收集节点可以动态添加或删除,对Ganglia整体监控不产生任何影响。因此,可以灵活的扩展Ganglia数据收集节点。
  Ganglia收集到的数据更加精确,它不但可以收集实时数据,以图表的形式展示出来,而且还允许用户查看历史统计数据,因此,用户可以通过这些数据,做出性能调整、升级、扩容等决策,从而保证应用系统能够满足不断增长的业务需求。
  Ganglia可以通过组播、单播的方式收集数据,在监控的节点较多时通过组播方式收集数据可以大大降低数据收集的负载,提高监控和数据收集性能。而对于不能使用组播收集数据的网络环境,还可以通过单播的方式收集数据,因此Ganglia在数据收集方式上非常灵活。
  Ganglia可收集各种度量的数据,Ganglia默认情况下可收集cpu、memory、disk、I/O、process、network六大方面的数据,同时Ganglia提供了C或者Python接口,用户通过这个接口可以自定义数据收集模块,并且这些模块可以被直接插入到Ganglia中以监控用户自定义的应用。
  对Ganglia的学习就到这啦,希望对您的学习会有所帮助,喜欢我们的分享,欢迎登陆课课家教育!

赞(21)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程