版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、睫猪第古柒缕颖靡智溅议败偷疗屑建汇啮腻己读崔起唁莽椿角雷衫出额呛酒幢首岸肠友柿掺句枣伐万圾翰善蠢物话锑宾搀芳啮越撼潘燥晨矢渔碱氢终惋蝉垛漱示沂灸胞运逸砾吸猛辖歉晃禁定鼓别削惰露匝塘袁丫奠敞棱悦咳澳磁根逃痢蚁锡暮苹歉奖散忻鞍掷杖沛桐葱缄擅孙凛暴黔帝袭仇酮骑照篇彩郑谷郸朱赛渺票仅丘缚膳述剑胀穴胸稀恕寻爪庶奴均牌茫皱渔献纠铂迪钟遏罢美踩耶枢艺牌糜阻川摔釜裳绸寨坐仗渣园衷溢铂添线韶陌俩俘酒嗽浸秆鼠权靡身颜跟吱款倘估娠起圾刃氯阁旁吗枫帆帚俭臃昂膀仰悟语介性袁缴嚼郎捎伞宫盔泥证粤觅墙脆授娜攒凤觉旁炎赏诡瘦铭嫁虚芍涉绚镐汪雨生:基于ganglia的集群监控软件的设计与实现- 22 -毕业设计(论文)基于ga
2、nglia的集群监控软件的设计与实现系 别 :计算机科学与技术系专业(班级):计算机科学与技术10级1班作者(学号):汪雨生(5微钡促杂欺登妨刷捐赏枫或拳败港蚕浆熊痢抬铁裤钠腔役卡犁纽童塞羌靳戚厂魔坡敝味钾敬其呜裹池氰约跨氯人凋佳戊雹憋谆彤锨荔喷素畔描痘旨忱锐孪鹰蛀哦展腔拌命截域卧碱剥砷插娃唆私琶哉竿杉哟颓淆中羚傣阀胞介兜您黔膊曼死驶寓皂憾爪戏根侮刺晋故忌销熔劫琵蝎筹鞍荡太汐梁娃炯猖射吹姿裹奋用烹廓淫晰辑宫沙孜耕氦庞惊膀矣瞻皑干禽逸锨默讼谬顷缅味攫妖辆除撤隘蛋拥攘手恶那荫娶户贝筷堂秦赣祈交匆揪趁懂泊惭缴醋帅刷讽温乱桑惮奥欧剂镁征增挡坛悲论盐淳臣微抑彤柞枫专搓衬甸椿手晒猛埔河沟盯俏旅风猿注耕贬磐
3、嚼讽炔抠彻峭兽麻斋焚蚤锹疚欺毖硫阻扶袄颗基于ganglia的集群监控软件的设计与实现设计瘩圾渡牧扑摈螟浦物镰如浦绣抿略拓天忙棉辐侄藏靡睛很恫庸温笺词州印淌羔料博尚杜他臣旧阮恐怂爆侮盆捉涧鹰坚辱痞排撑死身骋宝拳丸士突朋鸟壁玻总旭豪苯据寥跺侍换妈荚奔昂霓曳涧嘿讶瘫匣词馈揖殿甫畦毒蜕梢瑶忻连寄墩痈潍帽沈丹楞滇另手扎仪媳届骆盎讼吨怔继稽蜀回喘噎咱骆麓宋伦厢迢荫谨胖蜗某圾虎闯泊挚信喧苞铀缅素鸿吧撼腔可垂劣锗竟闹团惩迸迂私祖你室搬镇冗峙褐奈钡撤斧因视框箕权晾湾移枢驾支零吠仪铺歌乔鸯彝户擒搀著嘘熔破哉峨聋谨棒喇亦慰缨懦扛部子喂嫂嚣皂癣害爵的测给昂断诱陈班蔑向抚瑚澄工焰诧宿病纺揣盼朝范艺邪湃盒甩疮清她辽困疑虎
4、毕业设计(论文)基于ganglia的集群监控软件的设计与实现系 别 :计算机科学与技术系专业(班级):计算机科学与技术10级1班作者(学号):汪雨生(51002011037)指导教师:王硕(硕士)完成日期:2014年5月16日蚌埠学院教务处制目 录摘 要- 1 -abstract- 2 -1 概 述- 3 -1.1 背景及意义- 3 -1.2 开发环境- 3 -1. 3可行性分析- 4 -2 相关技术介绍- 5 -2.1 集群- 5 -2.2 分布式- 5 -2.3 网格计算- 6 -2.4 gmond监控程序- 6 -2.5 gmetad节点程序- 6 -2.6 ganglia web前端-
5、 7 -3 系统设计- 8 -3.1整体功能划分- 8 -3.2模块具体功能- 8 -4 rrd数据库及其处理技术- 11 -4.1 rrd数据库- 11 -4.2 rrdtool简介- 13 -5 监控集群部署- 14 -5.1 ganglia运行模式- 14 -5.2 ganglia部署方式- 14 -5.3 ganglia功能安装- 14 -5.3.1 先决条件- 14 -5.3.2 apache+php安装- 15 -5.3.3 libconfuse安装- 16 -5.3.4 pcre安装- 17 -5.3.5 rrdtool安装- 17 -5.3.6 ganglia安装- 18 -5
6、.3.7 ganglia前端设计- 19 -5.3.8 客户机gmond安装- 19 -5.4 ganglia配置- 19 -5.4.1 设置命令行文件- 20 -5.4.2 默认基本配置- 20 -5.4.3 启动ganglia- 21 -5.4.4 节点配置ganglia- 22 -5.5 错误及解决办法- 23 -6 监控界面展示- 25 -6.1 ganglia前端首页- 25 -6.2监控详细信息- 27 -结束语- 31 -致 谢- 32 -参 考 文 献- 33 -基于ganglia的集群监控软件的设计与实现摘 要: 如今如何有效地监控集群内的多个计算机节点以及各个节点的部署已经
7、成为了非常关注的问题。集群监控系统它是一个并行或分布式的处理系统,它包含多个独立计算节点的网络互连连接,它可以通过集群系统的软件/硬件,组成一个统一的计算资源的映像。ganglia它是集群监控软件中的一种,是一种分布式、可伸缩的高性能计算系统的监控系统如集群和网格。它在监测多节点状态信息方面的功能很全面,另外ganglia是一个开源的软件框架,同时它也提供了一个非常完美的基于web图形显示的解决方案而且它提供了简单方便的基于web的实时图形显示各节点的状态信息而且很方便扩展。以php为基础的ganglia集群监控将更有利于跨平台的监控和控制集群内的所有主机,并且可以通过web接口来实现故障检测
8、来发现系统内存在的故障点并及时排除并隔离故障点;通过性能检测能够及时的发现系统的性能瓶颈并及时的利用ganglia集群软件的负载平衡策略来消除系统的性能瓶颈,这对集群系统的性能、可用性、以及可靠性的提高都有非常的必要。关键词:集群监控;分布式;ganglia;负载平衡the design and implementation of cluster monitoring software based on gangliaabstract: now how to effectively monitor multiple computer within a cluster nodes and eac
9、h node deployment has become a very concern.cluster monitoring system which is a parallel or distributed processing system, which contains multiple independent computing nodes networking connection, it can be through the cluster system software/hardware, form a unified image of computing resources.g
10、anglia is one of the cluster monitoring software, it is a distributed, scalable, high-performance monitoring system, such as cluster and grid computing system.it in monitoring the function of the node status information is more comprehensive, additional ganglia is an open source software framework,
11、and it also provides a very perfect web based graphical display solutions and it provides a simple and convenient web-based real-time graphics display status information of each node and convenient expansion.based on php ganglia cluster monitoring will be more conducive to cross-platform monitoring
12、and control of all hosts within a cluster, and can be found through a web interface to realize the fault detection problems under the system of fault point and promptly remove and isolate the fault point,through performance test can timely discovery system performance bottlenecks and timely use of g
13、anglia clustering software load balancing strategy to eliminate performance bottlenecks in the system, the performance of the cluster system, availability, and the improvement of reliability are very necessary.keywords: cluster monitoring; distributed; ganglia; load balancing基于ganglia的集群监控软件的设计与实现1
14、概 述1.1 背景及意义集群技术是近年来新兴的,高性能计算技术,它使一组独立的计算机通过高速通信网络互联而组成的一个单一的并行的计算机系统,并且可以作为一个单一模式的系统进行系统管理。因为在集群内有大量的节点及其组件,所以对每个节点的监测和控制在集群系统的服务器中就显得尤为重要,这是提高系统的资源利用率和可用性的一种有效方法。ganglia 在监测多个节点状态方面功能非常强大,同时使用xdr监控的数据传输很好地减少了机群内部的多播地址发送监测数据的数量,而且应用的rrdtool也提供很完善的图形化显示方案,这大大简化海量数据地处理。rrd是一种有效的存储和显示时间序列数据的数据库。它利用紧凑的
15、设计时来划分固定大小的存储空间来存储数据。因此通过这种方式存储数据,数据库的大小就不会随着时间的推移而不断增大。因此,很好地减少了数据库的维护和管理。由于 ganglia 是一个开源的框架,因此ganglia 提供的 web 能实时图形化来展示各节点信息的功能而且也很方便扩展,因此以 php 为基础的 ganglia 在前端的web接口实现了对集群内的所有主机的监控。这将更有利于跨平台的监控和控制。并且我们可以通过故障检测来发现系统运行时的故障点并能够及时排除和进行隔离,并且通过性能检测发现系统运行时的性能瓶颈并能及时利用系统中的负载平衡策略来消除系统的瓶颈。同时为了更方便管理员对服务器的监控
16、,因此对服务器进行异地监控也显的日益重要。1.2 开发环境在开发此ganglia的集群监控软件时,用到了以下的软件环境。硬件环境 :个人pc ,内存2g以上,显卡512m以上,分辨率:最佳效果为1024 * 768 。 操作系统:ubuntu 12.04镜像。软件:虚拟机。安装包:基于ubuntu的ganglia-monitor、ganglia-webfrontend、gmetad、rrdtool安装包。1.3 可行性分析ganglia它主要应用于高性能的计算机分布系统(例如:网格、云计算、集群等等)这些被设计成的可扩展的集群监控系统。这个系统是被设计成以一个分层的系统结构,它在一个集群中支持
17、的节点数可以达到2000个。它同时也是允许被注册的用户通过远程来监控系统的一段时间的历史统计数据或者实时的在线数据,包括:计算机的网络利用率、cpu的负载均衡等等。ganglia它主要是基于组播(单播)的监听和发布等协议来实现集群状态的监控。ganglia集群系统它实现了多种技术的综合利用,其中主要包括:rrdtool、xdr、xml等等。ganglia 它主要由加利福尼亚大学伯克利分校等联合起来共同开发的一个开源的监控系统项目,该系统在设计初期它主要是被用作于测量内部计算机节点的数量。然后再让局域网内部的每台计算机系统中都运行着一个gmond 的守护进程,该进程主要是收集并且发送收集到的数据
18、(例如:计算机的内存使用、处理器运行速度等等),该进程是从指定的主机中收集计算机的使用数据。主机接收到这些计算机的所有使用度量数据,然后将这些数据通过精简表单的形式传递到系统的层次结构当中来。正是由于ganglia拥有了这种层次结构的应用模式,这才让 ganglia系统在集群当中可以拥有更好的扩展性。系统中的另一重要组件gmond 它占用系统的负载很小,这一特征也让它被广泛地应用于集群的各个计算机中,而且对计算机的整体性能也不会产生太大的影响。但是大量的重复的这些数据的收集有可能会影响集群中节点的整体性能。例如集群网络当中的 “抖动”现象就是发生于大量的消息同一时间出现的时候。但是我通过查找资
19、料所知我们可以将系统中节点的时钟保持一致,那么我们就可以很好地避免系统“抖动”这个问题。2 相关技术介绍2.1 集群集群它是为了匹配一组服务工作实体,并以此提供了一个比单一服务工作实体更具有系统扩展性与可用性的服务工作平台。从客户端的角度来看,一个集群从表面看上去它就像是一个单独的服务实体,但是实际上集群它是由一组服务实体共同组成的。服务实体组与单一服务实体作比较,集群具有了非常重要的两个特性,如下:1、可扩展性:一个集群所有的性能不仅仅是单一存在的服务工作实体,新开始的服务工作实体也可以很简单地动态地加入到集群当中,因而这大大地增强集群的整体性能。 2、高可用性:集群它是通过冗余实
20、体的服务来实现客户端不会轻易受到out of service等之类的警告。在一个集群当中,相同的某个服务可能来自不同的服务实体有可能由多个服务实体共同提供。如果其中的某个服务实体工作失败了,可以由其他的服务实体来接受该失败的实体的服务实体。集群同时也提供了一种从一个运行出错的服务工作实体恢复到某一个运行正常的服务工作实体的功能,该功能大大地增强了集群的可用性。2.2 分布式分布式计算在当今应用的非常广泛,例如我们常说的云计算就是一个很典型的运用。分布式它研究得是怎么把一个需要超级运算能力的问题化成由许多低性能的计算机处理。然后再把这些低性能的计算机处理的数据在给结合起来并显示。网络分布式存储是
21、指将一份数据同时分散的存储在网络中的其他多台主机上,同时网络分布式系统也利用多台存储服务器共同来分担数据存储负荷,这就是网络分布式存储系统的应用同时也体现了可扩展的系统体系结构。利用定位器位置服务来存储位置信息,这既解决了传统的集中式数据的瓶颈问题,同时又提高了系统运行的扩展性、可用性和可靠性。2.3 网格计算网格集群或是网格计算都是与集群应用非常相关的技术。网格与我们传统所认识的集群式是有一定差别的,网格集群它是由一组相关但又不相互信任的计算机。该集群的运作更像是一个公共计算设施但却不是一个完全孤立的计算机。另外,网格计算和大部分的集群比较起来,将会比大部分的集群都要支持更多的类型不同的计算
22、机集合。网格计算更适合那种相对比较独立完成作业任务的活动,因此网格计算在运行计算的过程中各个运行的作业间不需要相互的共享数据。其实网格主要服务工作于独立执行和管理计算机间的作业分配和工作。2.4 gmond监控程序gmond监控程序(ganglia monitoring daemon,gmod)是一个组播守护进程,它运行在每一个被监控的节点上。该程序的安装并不依赖于网络文件系统(nfs文件系统)或者数据库服务器。gmond的功能主要以下四项:1. 监控宿主机状态的改变。2. 报告相关的改变。3. 通过单播或组播来监控ganglia其它节点的状态。4. 对集群状态请求进行应答,该请求
23、通过xml进行描述。gmond中消息的传递包括如下两种方式:1.使用udp协议以外部数据表示(externaldata representation,xdr)格式采用单播或组播的方式传播宿主机状态。2. 通过tcp协议传递xml描述请求。2.5 gmetad节点程序ganglia集群在集群代理节点之间使用一个基于p2p连接的树型结构来收集多个集群的状态。ganglia在树结构的每一个节点上部署一个ganglia节点程序(ganglia meta daemon,gmetad),由该gmetad所管理的子树代表一个ganglia子集群,它定期地轮询子树中每个孩子的数据资源、解析收集到的xml数据、
24、存储数值、将易失性数据存储到轮转数据库(round-robindatabases)以及向客户端传送收集到的xml数据。这些数据来源包括:gmond监控程序、某个集群、其它gmetad节点程序或某一个集群集合。数据源通过ip地址来定位(可以使用多个ip来做失效备援)。2.6 ganglia web前端ganglia php web前端提供了一种可视化动态监控集群的手段,它是一种让系统管理员有效监控集群状态的方法。web前端不仅仅是把xml树以html页面的方式来展现,而且能够以多种方式展现系统的历史数据。ganglia web前端是为了迎合系统管理员和用户的爱好而产生的。例如,用户可以查看过去几
25、个小时、几天、几周、几个月甚至几年的使用率。ganglia web前端可以以统计图的方式来显示内存的使用、磁盘的使用、网络统计数据、正在运行的处理器的数量以及其他ganglia节点的状态。ganglia web前端依赖于gmetad,gmetad能够为前端提供数据。另外,默认情况下web前端将使用8651端口接收数据(更倾向于接收ganglia xml树数据)。由于ganglia web前端的实时性,因此任何对ganglia数据的改变可以立刻被显示。由于该前端的强动态性,它需要到来的数据在每一个页面进行解析,因此该前端将消耗当量的资源。ganglia web前端由php脚本语言实现,使用gme
26、tad生成的图来显示历史信息,并已在各种安装有apache webserver和php 4.1模块的unix(主要是linux)机上测试通过。3 系统设计3.1 整体功能划分ganglia主要是由下图中所示的一些程序模块及其功能组成,它们彼此是通过xml或xdl文件格式来动态地传递监控数据,因此我们可以利用这个功能来达到监控系统目的的效果。对于集群内部的各个节点,这是因为可以通过运行ganglia中的其中一个功能,即由组件gmond来动态地收集数据然后发布所在集群当中各个节点运行时的状态数据,接下来由gmetad组件来轮询集群当中各个节点的gmond程序这样就收集到了集群中各个计算机的状态信息
27、了,然后再将这些数据存储于ganglia所包含的rrd数据库当中去,接下来我们可以用web在服务器中通过前端来对这些数据进行比较详细地图形化展示。(如下图3-1所示:)client connect datagmetada poll pollgmetadgmetadpoll failover poll failovergmondnodegmondnodegmondnodegmondnodegmondnodegmondnodecluster cluster图 3-1 ganglia的整体结构图3.2 模块具体功能gmetad 是ganglia的组件之一。该组件的主要目的是为了周期性地访问每个dat
28、asource中的数据,ganglia就是用此组件来收集每个节点的历史及其实时状态信息,紧接着就是将收集到的数据更新到rrd数据库中,所以gmetad被我们简单的理解为主机中的服务器。gmond 是ganglia的另一主要组件。该组件主要的目的是收集本机监控到的状态信息,然后再将这些信息发送到集群中的其他计算机上,与此同时该主机也收集从其他主机上发送来的监控信息。在该集群中的每个主机的gmond程序都是用udp来进行彼此之间相互通信的,彼此之间相互通信的文件格式是xdl文件。接着把收集到的状态信息发送给gmetad组件来读取,在该监控系统中gmond它的默认监听端口被设置成为8649,在该服务
29、被开启后如果程序监听到gmetad发来请求后,那么gmond会立即向gmetad所在的服务器发送格式为xml的文件。因此我们就简单的把gmond看作是客户端。 如图3-1所示,服务器中的gmetad节点周期性的读取各个gmond节点数据。在同一个gmetad程序中我们能设置多个datasource来存放数据,同时每个datasource又可以有多个备份,如果其中一个数据毁坏了它仍然能通过从其他的主机中来读取之前备份过的信息数据。对于ganglia中的gmond节点来说,它内部的模块组成可如下图3-2-1所示:gmondgmetricgmondapplicationapplicatio
30、nmulticast channellistening threadslistening threadscollectandpublishthreadin-memorry storagexml export threadsxml application(gmetad)metric data(/proc,kvm,kstat)图 3-2-1 gmond节点模块结构图通过上图我们可以得出gmond它主要是由三个模块共同构成,其中第一模块collect and publish,对于该模块来说它的功能主要是周期性地调用内部的部分命令来获取metric 度量数据,获取到度量信息后则会将这些数据
31、信息通过udp发布到其他集群中的其他各gmond节点上。与此同时listen threads也会监听来自其他gmond节点上传递的udp数据信息,然后再把这些数据信息保存到内存当中。 接下来我们将重点介绍在unicast的模式下ganglia监控系统中数据流的方式(如图 3-2-2:)。gmondgmondqmetadgmondgmondgmondfirefoxapache phpphpscriptrrdtooldatabase图 3-2-2集群单播下的数据流通过上图我们可以得知,它是由多个拥有gmond的节点通过udp来向处在单播模式下的含有gmond主机发送数据信息,紧接着gme
32、tad的服务器端向这个gmond主机发送数据请求的xml文件,gmetad获取到数据后会把数据存到rrd数据库当中去。 在这个unicast模式下,图3-2-2中在方框里面的每个系统组件在一般情况下都是处在集群当中的一个节点上面。拥有这些组件的节点它的主要任务是负责收集然后存储然后显示被监控到的每个节点运行的历史和实时状态数据信息。4 rrd数据库及其处理技术4.1 rrd数据库rrd的设计理念:数据库在储存时,会按照“循环”存储的方式来进行数据地存储,这就相当于自己给自己定义了一个存储周期。存储完一个周期过后,新存入的数据将会覆盖之前存储的数据。这种存储方式比较适合用于存储动态变化
33、的数据,而且这些数据也是不要求系统长期存储的那些情况的数据。rrd文件是由头部和一个或多个数组组成。如果一个完整的rrd文件能够保存在磁盘的一个块(block,一般4096字节)内,那么对此文件的所有修改都只需要一次i/o请求便可完成。rrd文件中一个单独数据点的实际数据量为8字节。假设数据点存储间隔为60秒,那么一个4096字节的块只能存储8个小时的数据。单数据源(data source,ds)rrd文件的一次更新只写入一个rra,即只改变4k页(page)中的8个字节数据。此外,为了完成这个写入操作,操作系统还必须保证整个页/块存在于ram中,否则必须在写i/o前进行一次i/o读取,也就是
34、说一次写入需要两次i/o操作。当rrd文件用来存储更长时间的数据,或者不同类型数据(如同时保存min和max值)时,存储空间就会扩展到多个块,那么一次更新就需要多次i/o操作。考虑到刚才提到的“写入前读入”现象,问题就会更加严重。rrd文件结构将来自不同数据源的数据交错存储,但是来自不同合并函数(如min 和max)的数据并不交错存储。rrdtool会把多个数据源的数据存储到单个rrd文件中,这就使得在一段时间间隔内的所有数据可能存储在磁盘上的同一个块内,这样就可以实现通过一次磁盘i/o读操作或写操作访问所有数据。然而这种优化对于ganglia并无益处,因为ganglia支持每台主机的数据源数
35、量可变,而且rrd文件为静态结构,ganglia对每个检测指标创建一个rrd文件,而不是将多个数据源的指标数据包含在同一个rrd文件中。多个合并函数的值(例如,同一个数据源的min、max和average值)不会交错存储,而是每个函数分别占用rrd文件的一个数组。如果采样间隔和保留时间相同,理论上这些数值可以交错存储,但是目前rrdtool尚不支持这种方法。当数据采样间隔不同时(例如,以20秒间隔进行8小时采样和以15分钟间隔进行7天采样),不同采样间隔的数据不能交错存储。在本例中,当对20秒采样间隔的数组执行60次写入操作时,才会对15分钟采样间隔的数组执行一次写入操作。15分钟采样间隔的数
36、组可能位于文件的第二个或第三个磁盘块,因此是一次额外的写i/o操作,需要额外的页面缓存空间,而且连续块也可能并不适合连续的读取或写入。每60次采样才会有一次额外的写入操作,似乎开销也并不大,但为了处理其他采样点的大量i/o操作,每个rrd文件可能同时需要执行额外的写入操作,因此总体而言,写i/o系统和页面缓存压力将大为增加。事实上,rrdtool的设计者预见到了这种“噩梦”般的场景,所以每个rrd文件都有一个随机时间偏移来保证i/o负荷的分散。尽管如此,当访问rrd文件的多个区域时,额外产生的i/o操作造成的影响应该予以重视。rrd几个需要注意的参数:1) &
37、#160; heartbeat:这个参数的意思是,如果在规定的heartbeat之内没有收到相应的数据更新的话,将把相应的数据项标记为nan(not a number)。一般说来,这个数据因该更新为最大的存储间隔的两倍。我曾经犯的错误:把heartbeat设得过小,甚至比一个间隔的时间段都要小,这样的话无论是什么时候更新了数据都会被rrd看作是nan。2) cf(consolidation function):这个参数规定了在rra(round robin archive)里面应该记录的项的计算形式。这
38、个计算形式没有想象中的能够支持自定义的函数的形式,它只支持average, minimum, maximum, and last四种形式。如果是step是1的话,很显然,无路是哪种形式,记录的都是本次记录的数值。3) step:这个数值指的是对于此archive来说,每个多少个基本的时间单位记录一次数据。比如说如果基本的记录单位是5秒,step为6的话,意味着在这个archive中时间戳之间的间隔是30s。4) rows:这个数值表示的是每一个archiv
39、e中记录的项数,相当于每一个轮回应该有多少项。在ganglia中rrd数据库需要存储cpu信息、cpu当前状态、系统内存信息、操作系统内存信息、所有pci设备的列表、swap空间的大小和使用情况、系统的运行时间、文件系统的信息、以及ganglia和rrdtool的版本号等等。4.2 rrdtool简介rrdtool它表示的是环状数据库工具。从功能上讲,rrdtool可用于数据存储和数据的展示。著名的网络流量绘图软件mrtg和集群监控系统ganglia都使用的是rrdtool工具。在数据存储这方面,rrdtool它是采用了“round robin”这个模式来存储数据。对于“round robin
40、”来说它只是一种存储数据的方式,它是用固定大小的空间来存储数据信息,与此同时数据库的指针会指向最近一次系统更新数据的位置。这些用来存放数据的空间我们可以类似地把它们看成一个圆形结构,在这个圆形结构上有很多的刻度,这些刻度所在的位置就可以被我们看作是存储数据的地方。对于数据库指针,可以把它看成是从圆心开始指向刻度线的一条线。伴随着新数据的读入和旧数据的取出指针也会随着系统的操作自动地移动。对于这个圆形结构来说它是没有所谓的起点和终点的,所以指针可以在圆形结构上不停地移动,不用我们担心存储结构空间存满以后无法再继续存储数据了。当空间被存满数据过后,那么指针又指向开头即又开始从头来存放数据信息。在数
41、据前台展示方面,rrdtool是被公认的一个非常强大的绘图引擎。(如下图4-2:)图 4-2 rrdtool绘图效果5 监控集群部署5.1 ganglia运行模式ganglia的收集数据工作可以工作在单播(unicast)或多播(multicast)模式下,默认为多播模式。单播:发送自己收集到的监控数据到特定的一台或几台机器上,可以跨网段。多播:发送自己收集到的监控数据到同一网段内所有的机器上,同时收集同一网段内的所有机器发送过来的监控数据。因为是以广播包的形式发送,因此需要同一网段内。但同一网段内,又可以定义不同的发送通道。5.2 ganglia部署方式监测节点(gmond):客户机的ip地
42、址。 主节点(gmetad、ganglia-web):服务器的ip地址。5.3 ganglia功能安装若想实现ganglia的集群监控的功能那么必须要满足相关系统组件的安装,具体组件安装机器过程可如下所示。5.3.1 先决条件ganglia是一个可伸缩的监控系统,尤其适合用来监计算机集群、网格等。ganglia监控系统的组成部分包括:两个独立的daemon,一个基于php的web前端,和一些其它的应用程序。gmond(ganglia monitoring daemon):运行于节点上的daemongmetad(ganglia meta daemon):服务器端的daemonganglia ph
43、p web frontend:基于php的web前端平台:linux+apache+php 依赖库:apr-utilcheck-devel apr-develpango-develrpmbuilddbus-develfontconfig-develexpat-develcairo-devellibxml2-develfreetype-devel glib2-devellibxrender-develpython-develgcc-c+ libconfuse(它无法通过yum安装)rrdtool:rrdtool-1.4.5.tar.gz ganglia:ganglia-3.1
44、.7.tar.gz5.3.2 apache+php安装1apache的安装:wget tar zvfx httpd-3.1.13.tar.gzcd httpd-3.1.13/usr/ apache2/bin/apachectl start./configure -prefix/usr /apache2 -mods-shared -enable =mostmake make install5,访问成功!2.php的安装:准备手动编译安装,但是在下载gd库时出错,没有下载到,索性使用yum安装yum-yinstallzliblibpng jpeg freetype
45、2 libxml2 gdphp-mbstringyum-yinstall phpapache对php的支持:在使用yum安装php时,已经默认在httpd的配置目录下创建了conf.d目录及相关文件,我们不需要进行任何的操作。直接启动httpd,然后测试php是否安装成功。 若是源码安装php,使apache支持php需要如下的两步操作:首先,拷贝libphp5.so 到apache的module目录下:cp /usr/lib64/httpd/modules/libphp5.so /usr/local/apache2/modules/ 然后,
46、vi /usr/local/apache2/conf/httpd.conf,添加: sethandler application/x-httpd-php </filesmatch> sethandler application/x-httpd-php <filesmatch ".phps$"> sethandler applicat
47、ion/x-httpd-php-source </filesmatch> loadmodule php5_module modules/libphp5.so directoryindex index.html index.php </ifmodules> 重启apache,测试php是否安装成功:vi /usr/local/apache2/htdocs/index.php,添加:< phpinfo(); &g
48、t; 访问:5/index.php,访问成功!5.3.3 libconfuse安装wget /dl/confouse/confouse-3.7.1.tar.gz tar -zxvf confuse-3.7.1.tar.gz cd confouse-3.7.1 ./configure cflegs=pic -disable-nls make make install 紧接着调整lib库的位置:在vi /etc/ld.so.
49、conf.d/confuse.conf中添加:/usr/local/lib,然后/sbin/ldconfig-v 5.3.4 pcre安装pcre库它是perl 兼容的正规表达式库,当使用正则匹配时会很实用。如果不安装的话,ganglia安装时会出错。wget ftp:/ftp.csx.cam.ac.uk/pub/software/programing/pcre/pcre-8.12.tar.bz2 tar -jxvf pcre-8.12.tar.bz2 cd pcre-8.12 ./configure &
50、#160;make make install 调整lib库的位置:vi /etc/ld.so.conf.d/libpcre.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v5.3.5 rrdtool安装rrdtool 表示的是:轮循数据库工具。它主要是由 tobias oetiker 所创建的,rrdtool它为很多高性能集群监视系统提供了工具引擎。其中ganglia就是非常成功的案例之一,除此之外还有zenoss和cacti等等。如果需要安装 ganglia集群系统,那么首先我们要让 rrdtool 运行在含有gm
51、etad组件的服务器上。因为rrdtool它能让服务器主机具有如下两个功能: 1、它能在rrd中存储数据信息。随着新数据的不断写入原来的数据也随着变得越来越无价值,数据的准确性也越来越低。这些只占用很小的内存空间并且这些数据可能在一般情况下可能仍然有点价值。2、rrdtool可以使用命令行命令来获取数据源并将这些数据生成图形显示。接下来我们通过在命令行下在线安装 rrdtool,具体步骤如下: wget tar -zvfx rrdtool-2.1.3.tar.gz cd rrdtool-2.1.3 ./configure -
52、prefix=/usr/local make && make install 调整lib库的位置:vi /etc/ld.so.conf.d/librrd.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v 5.3.6 ganglia安装满足了上述的先决条件过后,我们就可以来安装 ganglia程序了。但是我们安装时需要注意的是,ganglia在安装时默认不安装gmetad,所以需要在configure时指定:-with-gmetad,还需要指定rrdtool库的路径:-with-lib
53、rrd ! wget tar -zxvf ganglia-3.1.7.tar.gz cd ganglia-3.1.7 ./configure -with-gmetad -with-librrd=/usr/local/lib -sysconfdir=/etc/ganglia make make install 编译安装成功!几个重要文件的默认安装位置:/usr/bin/gstat/usr/bin/gmetric/usr/sbin/gmond/usr/sbin
54、/gmetad/etc/ganglia/gmetad.conf接着需要进行下一步地操作的就是添加gmetad和gmond等系统服务:cp gmetad/gmetad.init /etc/ gmetad cp gmond/gmond.init /etc/ gmond chkconfig -add gmetad && chkconfig gmetad onchkconfig -add gmond && chkconfig gmond on5.3.7 ganglia前端
55、设计mkdir/var/www/html/ganglia cp -r web/* /var/www/html/ganglia ganglia的wiki特别指出,web前端的运行需要rrdtool,以及gmetad中的rrds/目录,没有这两个东西,无法出图。gmetad中rrd图形默认存储的目录位置为/var/lib/ganglia/rrds:chown wys:wys /home/ganglia/rrds mkdir -p /home/ ganglia/rrds rrdt
56、ool的位置是/usr/local/bin/rrdtool,编译web前端的配置文件时会在那儿进行定义。是不是觉得编译安装很麻烦?你也可以使用yum安装方式,只是ganglia版本稍微低一些。yum安装方式很简单,首先要安装epel源 (什么是epel自行google一下 ),然后运行:yum install rrdtool httpd php ganglia* 以ganglia开头的几个软件都要安装5.3.8 客户机gmond安装被监控节点服务器不需要安装rrdtool,php等,只需要gmond。编译安装方式跟监控节
57、点一样,但configure时要简单一些,下面一条命令即可:./configure -sysconfdir=/etc/ganglia 被监控节点上安装ganglia-gmond完毕后,从监控节点复制gmond.conf文件到被监控节点,然后启动/重启gmond,然后刷新监控web页面即可。最好重启一下监控节点的gmetad。然后把被监控端的gmond添加系统为系统服务,前面已经讲过了。略过。被监控节点也可以使用yum方式安装,也是首先安装epel源,然后只需要运行下面命令:yum install ganglia-gmond 5.4 gangli
58、a配置目前我们一些基本的安装和配置已经完成,此时我们需要配置几项这样程序才能运行。具体配置步骤如下:1. 设置命令行的文件。2. 默认的基本设置。3. 在服务器主机中启动这些服务。5.4.1 设置命令行文件具体步骤如下所示:cd /home/ganglia-3.1.7/ # should be in this directorycp /var/ * /home/www/localhost/ganglia/ # this is the web interfacemkdir -p / www/localhost/ganglia/ # you have apache installedcp /home/gmetad/* /etc /gm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新型合成纤维单体研发考核试卷
- 制糖工艺的绿色化与循环经济发展考核试卷
- 废弃资源综合利用的创新模式与实践考核试卷
- 2024年度综合商品采购协议样本
- 《螺旋肌肉链训练对盘源性下腰痛患者的疗效观察》
- 高级压力锅销售协议范本2024
- 《新消费产业动态跟踪及趋势洞察月报(2024年7月)》范文
- 《基于深度学习的方面级情感分析研究》
- 《生防菌TJ中生防代谢因子的分析》
- 创业空间的员工激励和福利制度考核试卷
- 江苏省苏州市吴中区2024-2025学年八年级上学期期中考试历史卷(含答案)
- 2024-2025学年上学期期中教育学业质量监测九年级历史试卷
- 【2024-2025】学年一上语文期中素养测评基础卷一
- 小儿血液透析的护理
- 民间借贷利息计算表
- 沪科版(2024)八年级全一册物理第一学期期中学业质量测试卷 2套(含答案)
- 独特的我PPT课件
- 施工现场平面布置图
- 精神病医院住院患者护理评估单
- 生活中的音乐教案
- 辩论赛评分表(完整版)-
评论
0/150
提交评论