集群监控系统Ganglia应用案例
——我们把集群系统投入生产环境后,这时就需要一套可视化的工具来监视集群系统,这将有助于我们迅速地了解机群的整体配置情况,准确地把握机群各个监控节点的信息,全面地察看监控节点的性能指标,使机群系统具有较高的管理性。监视系统的主要目标是从各个监控节点采集监控信息,如CPU温度、CPU利用率、用户数、进程数、内存利用率等,然后将获取的监控信息汇集起来,便于综合分析和处理,最后根据分析和处理的结果做出相应的决策。本文以占用系统资源最少的、开放源代码的Ganglia为平台,详细讲解了如何搭建一个具有更高可靠性的集群监控系统。
——Ganglia监控系统是由加州大学伯克利分校开发的,用于大规模的机群和分布式网格等高性能计算系统。基于XML技术的数据传递可以使系统的状态数据跨越不同的系统平台进行交互,采用简洁紧凑的XDR方式,实现监控数据压缩和传输”。
0.Ganglia组成及原理
——Ganglia主要由gmetad和gmond两部分组成:gmetad主要负责监控数据的汇集,每隔15秒会轮询gmond,并向下层节点发送和接收用户所需的监控信息,并对数据出错做出相应处理,最后使用RRDtool将这些信息存储在数据库,并通过ApacheWeb服务器显示它收集的信息。gmond则工作在每个集群节点上,主要负责监控节点信息的获取,相当于Ganglia的监视守护进程。
——gmond主要负责监控节点信息的获取。首先,初始化gmond.conf文件配置项信息,同时分配监控信息存储空间。其次,调用ganglia_metric_cb_define("mem_total",mem_total_func),定义监控信息的采集项,"mem_total"表示信息采集项,mem_total_fun为信息采集函数,该采集函数从/proc中读取所需采集项信息,所有获取的监控信息以hash链表的形式存储。然后,在每个gmond节点上创建UDP通信的Socket端口,并调用connect建立各gmond节点间的通信通道,并启动监听进程process_udp_recv_channel,通过recvfrom接收其他各监控节点发来的监控信息。
——Ganglia_udp_send_message通过调用write向各个监控节点发送监控信息,监控信息的传输采用XDR数据流格式,每个监控节点包含了区域内所有其他节点的监控信息,如图所示。当更新周期到来时,各监控节点gmond将其获取的监控信息发给gmetad端。

图1Ganglia监控体系结构
1安装准备
——上文我们简单讲解了Ganglia是如何工作的,下面将讨论GangliaWeb的安装配置。首先,在集群节点上安装gmond,然后在集群节点管理器上安装gmetad和GangliaWeb软件包。准备工作如下:
安装Apache、PHP。GangliaWeb软件包需要Apache、PHP支持,具体安装方法我们在第一章已详细讨论过。安装RRDtool。RRDtool可以绘出有用的图表,用来显示处理的数据。具体安装方法我们在讨论Ntop时,已详细讲述。
2集群节点管理器部署Ganglia
——在准备工作完成以后,我们首先需要在http://sourceforge.net/projects/ganglia/files/下载最新软件(目前为3.6)进行安装,为方便安装可以选择RPM包方式进行安装,必须安装的软件包名称为:ganglia-gmetad、ganglia-gmond、ganglia-web以及ganglia-devel。
注意:在安装上述RPM包时,如果有的系统需要强制安装,就要用到—nodeps参数。
1).配置Ganglia
——安装了这些软件,下面是配置Ganglia的时候了,这里从集群节点管理器上的gmetad和gmond开始。在/etc/ganglia目录下分别有它们的配置文件:gmetad.conf和gmond.conf。
——在集群节点上的/etc/ganglia/gmetad.conf文件,只须包含指定集群名称和集群内部节点名称,例如:
Data_source"mycluster"localhosnode1node2node3
“mycluster”代表集群名称,并设置了localhost(集群节点管理器)和3个名为node1、node2和node3的节点。由于Ganglia通信使用多播(在配置文件gmond.conf中定义多播地址为:239.2.11.71),所以列表中的一个节点失败(有时候很可能是用户修改了节点名称)不会影响它连接的下一个节点,因此我们不必在集群中为每个data_source项指定每台主机的信息。
上述配置完成后,记得要重启gmetad服务:
#servicegmetadrestart
2).在集群节点上安装最新的ganglia-gmond包并配置gmond
#vi/etc/gmond.conf
找到以下部分并按照所给出的例子进行配置:
tcp_accept_channel{
port=8651/*注释:此为端口号,通过它来传送系统信息。注意要和服务器端监听的端口一致。*/
acl{
default="deny"
access{
ip=192.168.X.X/*注释:这里是服务器的IP地址*/
mask=32
action="allow"
}
重启gmond服务
#servicegmondrestart完成
注意:在对gmond.conf和gmetad.conf文件做了修改或是修改了节点计算机名都需要重启这两个进程。
3).测试gmond进程
——我们可以通过telnet来测试gmond是否工作正常,输入如下命令,如图2所示。
#telnet127.0.0.18651

图2测试gmond
——此时按下回车,将通过端口8651发送XML代码到集群节点管理器上的gmond守护进程,而gmetad守护进程使用RRDtool将这些信息存储在/var/lib/ganglia/rrds目录下。需要注意的是,rrds目录下及子目录比较多,如果监控的集群节点数大于50个节点,建议将此目录放在内存文件系统上,以减小磁盘I/O。如果告知gmond压缩的XML数据(在/etc/ganglia/gmond.conf文件中定义),将需要使用netcat来解压缩该XML数据,使其可以识别。命令为:nclocalhost8651|gunzip。
4).节点机软件安装
——在部署节点时,不需要安装软件,仅仅执行以下命令将文件复制过去即可。
pscp/usr/sbin/gmondnode1:/usr/sbin/gmond
pshnode1mkdir-p/etc/ganglia/
pscp/etc/ganglia/gmond.confnode1:/etc/ganglia/
pscp/etc/init.d/gmondnode1:/etc/init.d/
pscp/usr/lib64/libganglia-3.1.7.so.0node1:/usr/lib64/
pscp/lib64/libexpat.so.0node1:/lib64/
pscp/usr/lib64/libconfuse.so.0node1:/usr/lib64/
pscp/usr/lib64/libapr-1.so.0node1:/usr/lib64/
pscp-r/usr/lib64/ganglianode1:/usr/lib64/
pshnode1servicegmondstart
5).添加Ganglia页面到Apache
——ganglia-webfront这个包默认将Web相关的代码安装在“/usr/share/ganglia-webfrontend/”路径下,这样Apache访问不到。可以直接将目录移到“/var/www/”目录下,或修改Apache的DocumentRoot路径,一旦完成修改需要重启Apache。
测试是否成功,可以在浏览器地址栏里输入http://localhost/ganglia,如图3和图4所示。

图3Ganglia页面测试结果1

图4Ganglia页面测试结果2
6).GangliaWeb软件包
——GangliaWeb允许你查看存储在RRDtool循环数据库中的性能度量的快照。GangliaWeb软件包分成两部分:标题和节点快照,如图5和图6所示。下面结合一个集群的实例进行讲解。

图5标题

图6节点快照
——默认情况下,软件包使用FullView显示集群信息,单击PhysicalView链接以便查看不同格式的相同数据。如果需要刷新数据,单击GetFreshData按钮,默认的刷新时间是300s,可以编辑config.php文件自行修改。在Last下拉列表中可以选择长达一年的有价值数据。Metric下拉列表中可以选取手机的性能度量,默认的是load_one,它代表集群节点上的一分钟平均负载(LoadAverage)。除此之外有bootime、byte、cpu、disk、lastsync、mem、network、nfs、swap等度量信息。
3.DEMO:
下面为大家演示如何安装配置Ganglia
实战效果视频请大家浏览这篇文章http://chenguang.blog.51cto.com/350944/816547
4.总结
——以上内容详细介绍了Ganglia软件包的架构、安装方法以及GangliaWeb的配置,在长期使用中,笔者发现Ganglia也存在一些问题,例如:没有实现对被监控数据依权限查看;只有监视而没有必需的控制功能;没有实现更有弹性的、依据用户策略监控数据的选择性提取和汇集等问题。
本文出自 “李晨光原创技术博客” 博客,请务必保留此出处http://chenguang.blog.51cto.com/350944/1330114
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
Ganglia是一个开源的分布式监控系统,适用于大规模集群和网格环境,能够实时收集、聚合并展示系统的性能数据。 1. Ganglia概述: Ganglia是由加利福尼亚大学伯克利分校开发的,最初是为了满足大型计算集群的监控...
这里介绍了简单网络管理协议(SNMP)的使用,以及Mon、Ganglia等监控工具的应用。通过监控工具,管理员可以实时观察集群的健康状况、性能指标和潜在问题。案例研究部分则提供了一些实际使用Linux企业集群的示例,...
9. **应用案例**:Linux集群广泛应用于数据库服务、Web服务器、高性能计算(HPC)、云计算平台等场景,例如MySQL集群、Apache HTTPD集群、OpenMPI等。 10. **部署与维护**:部署Linux集群需考虑网络规划、硬件选型...
同时,社区版Hadoop缺乏集成的运行监控和运维工具,通常需要结合ganglia、nagios等工具来实现运行监控,导致运维成本较高。 相比之下,Cloudera的CDH版本是目前最成熟的发行版之一,拥有众多部署案例。CDH提供了...
《Monitoring with Ganglia》是一本专注于使用Ganglia进行系统监控的专业书籍,主要面向IT运维人员、系统管理员以及对系统监控感兴趣的开发者。Ganglia是一款开源的分布式监控系统,能够实时收集并展示网络中各个...
Eagle的监控系统主要包含以下几个关键组件: 1. 数据收集层:负责从不同的Hadoop组件(如HDFS、YARN、HBase、Kafka等)中收集性能指标和日志信息。 2. 数据处理层:对收集到的数据进行分析处理,比如过滤、聚合、...
- **Hadoop系统监控**:通过介绍ganglia等工具在Hadoop集群中的应用,帮助用户了解如何实时监测系统的健康状态,包括CPU利用率、内存使用情况、磁盘I/O等关键指标。 - **Hive负载均衡**:针对Hive查询的性能优化策略...
在大数据平台的监控运维实战中,我们关注的关键技术点涵盖了MapReduce、Spark的配置优化、Hadoop集群配置、集群节点及组件服务的故障诊断处理、大数据平台的监控以及Linux系统的优化等多个方面。以下是对这些核心...
7. **监控与故障恢复**:YARN提供了丰富的监控工具,如Ambari、Ganglia等,可以实时查看集群状态和应用运行情况。当任务失败时,YARN会自动进行重试,确保数据处理的可靠性。 总结起来,Hadoop YARN在好友推荐系统...
此外,为了提升系统的稳定性和监控效果,还会采用Ganglia和Nagios等工具进行运营和监控,并对数据质量进行验证。 HBase作为一种分布式列式存储系统,适用于大数据存储和高速读写,特别适合京东数据开放平台这样的...
10. **监控与故障排查**:学习监控Hadoop集群的性能指标,识别并解决问题,是保证系统稳定运行的关键。这部分可能涉及Ambari、Ganglia等监控工具的使用。 通过这些PPT的学习,你可以系统性地掌握Hadoop及其生态系统...
- **监控与日志**:利用Ambari、Ganglia等工具监控Hadoop集群状态。 - **故障恢复**:如自动副本修复、故障检测等机制。 #### 七、最佳实践与案例研究 - **企业级部署**:在生产环境中部署Hadoop的最佳实践。 - **...
- **监控工具**:利用Ganglia监控集群的各种指标,如I/O、网络流量、内存使用情况、CPU利用率、磁盘空间等。同时,还可以监控NameNode、DataNode的内存使用情况,以及JobTracker和TaskTracker的运行状态。通过Nagios...
7. **第17章:大数据平台运行与应用实战** - 通过实际案例,本章将展示如何在搭建好的大数据平台上运行应用程序,解决实际业务问题,提升学习者的实践操作能力。 8. **第14章:大数据平台监控界面和报表** - 监控是...
Ecosystem部分可能涉及Eagle与其他开源项目的集成,例如与Hadoop生态中的HDFS、YARN、HBase等组件的配合,以及可能与其他监控和安全工具的联动,实现全面的系统监控和安全防护。 在Q&A环节,可能会讨论Eagle的安装...
7. **分布式监控系统**:如Ganglia(Massie等人)展示了如何构建分布式监控系统,有效地管理和监控虚拟化环境的性能。 8. **资源管理**:如Cellular Disco(Govil等人)和The Collective(Chandra等人)探讨了如何...
使用Zookeeper进行集群协调,监控工具如Ganglia或Graphite用于性能监控,以及Nimbus和Supervisor的角色理解,都是确保Storm稳定运行的关键。此外,了解如何备份和恢复状态,以及如何优化资源分配,对于提高系统的...
7. 基于Hadoop集群监控平台搭建:学习大数据处理框架Hadoop,监控工具如Ambari、Ganglia,以及日志分析工具如Flume、Logstash。 8. 基于深度学习的XX电商推荐系统:介绍深度学习模型,如卷积神经网络(CNN)、循环...
7. 安全与监控:学习如何在Hadoop集群中实现身份验证、授权和审计,以及监控工具的使用,如Ambari和Ganglia。 8. 实战案例:通过实际项目案例,展示Hadoop在互联网广告、推荐系统、日志分析等领域的应用。 通过阅读...