热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ganglia分布式集群监控系统安装手册

一、Ganglia分布式监控系统简介Ganglia是UCBerkeley发起的一个开源集群监视项目。它主要是用来监控系统性能,如:CPU、Memory、

一、Ganglia分布式监控系统简介

Ganglia是UC Berkeley发起的一个开源集群监视项目。它主要是用来监控系统性能,如:CPU 、Memory、硬盘利用率, I/O负载、网络流量情况等。Ganglia通过图形化的方式展示每个节点的状态信息,这对合理调整、分配系统资源,提高系统整体性能起到重要作用。Ganglia包含三个核心组件:Ganglia Monitoring Daemon(gmond)、Ganglia Meta Daemon(gmetad)以及Ganglia PHP Web Frontend。

Gmond组件

Gmond组件部署于集群中各个被监控的节点。其主要功能是从操作系统或指定的主机收集状态信息。其收集主机状态信息的方式灵活,状态信息均以XML格式进行传输。Gmond组件可以级联形成层次结构,这种层次结构使得Ganglia拥有良好的可扩展性。另外,Gmond组件带来的系统负载非常少,对用户的影响非常小。Gmond组件的工作模式有两种:单播和多播。单播模式下,Gmond组件发送其收集的主机状态信息到指定的一个或多个节点,可以跨网段;多播模式下,Gmond组件发送其监控的主机状态信息到同一网段内的所有节点,同时还接收同一网段内其他节点发送的状态信息。

Gmetad组件

Gmetad组件可以部署于集群中的某一节点,也可以部署于集群外的某一专门服务器,其主要功能是周期性地从指定的Gmond组件或其他Gmetad组件拉取数据,并将拉取的数据存储在本地数据库。这些存储的状态信息供Ganglia-Web组件使用。

Ganglia-Web组件

Ganlgia-Web组件和Gmetad组件须部署于同一节点,它通过数据库轮询的方式从Gmetad组件中获取状态信息,并以web形式图形化地展示各个节点的状态信息。

Overview of Ganglia Node

Details of Ganglia Node

Ganglia Cluster Data Flow

 

二、CentOS下搭建Ganglia分布式监控系统

 

1、安装依赖

 

1) Ganglia依赖于以下系统软件包,请先检查这些软件包是否正确安装。所缺软件包建议通过YUM源方式安装。安装这些包,需要CentOS-Base.repo。后续安装步骤中可能用到源epel.repo。

 

Java代码  收藏代码
  1. yum install apr-develapr-util check-devel cairo-devel pango-devel libxml2-devel rpmbuild glib2-develdbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devellibXrender-devel  

 

2) 安装confuse

 

  • 通过RPM包方式安装(libconfuselibconfuse-devel)

 

 

Java代码  收藏代码
  1. rpm –ivhlibconfuse-2.6-2.el5.rf.x86_64.rpm  
  2. rpm –ivhlibconfuse-devel-2.6-2.el5.rf.x86_64.rpm  

 

 

  • 通过源码编译方式安装 (confuse)

 

 

Java代码  收藏代码
  1. tar zxvf confuse-2.7.tar.gz  
  2. ./confuse-2.7/configure CFLAGS=-fPIC --disable-nls  
  3. ./confuse-2.7/make&& make install  

 

在以源码编译方式安装confuse时,如果环境是64位操作系统,则configure参数不可以省略,否则源码编译安装Ganglia时会出错。

3) 安装RRDTool(Ganglia依赖于RRDTool数据库轮询工具来更新Ganglia-Web页面)

 

  • 通过YUM源方式安装

 

 

Java代码  收藏代码
  1. yum install rrdtool  

 

 

  • 通过源码编译方式安装 (rrdtool)

 

 

Java代码  收藏代码
  1. tar zxvfrrdtool-1.4.6.tar.gz  
  2. ./rrdtool-1.4.6/configure--prefix=/usr  
  3. ./rrdtool-1.4.6/make&& make install  

 

在以源码编译方式安装时,configure的参数--prefix用来指定安装目录,便于后续安装指定路径。

4) 安装Apache+PHP(仅gmetad组件和ganglia-web组件所在节点须配置此项)

 

  • 通过YUM源方式安装

 

 

Java代码  收藏代码
  1. yum install httpd php apr  

 

2、安装Ganglia

安装前请先检查/usr/include/rrd.h/usr/lib/librrd.a文件是否存在。如不存在,可分别创建指向这两个文件的软链接。

 

  • 通过YUM源方式安装

 

 

Java代码  收藏代码
  1. yum install gangliaganglia-gmond ganglia-gmetad ganglia-web  

 

 

  • 通过源码编译方式安装(ganglia ganlia-web)

 

 

Java代码  收藏代码
  1. tar zxvfganglia-3.4.0.tar.gz  
  2. ./ganglia-3.4.0/configure--with-gmetad  
  3. ./ganglia-3.4.0/make&& make install  

 

在以源码编译方式安装时,configure如果不指定参数--with-gmetad则只安装gmond组件。

3、配置Ganglia

1) 获取Ganglia配置文件

 

  • 如果通过YUM源方式安装,则配置文件已自动生成,配置文件存放于/etc目录。
  • 如果通过源码编译方式安装,Ganglia的配置信息需要手动生成。

 

首先需要创建配置文件存储目录

 

Java代码  收藏代码
  1. mkdir /etc/ganglia  

 

Gmond组件的默认配置文件可自动生成

 

Java代码  收藏代码
  1. gmond –t | tee/etc/ganglia/gmond.conf  

 

Gmetad组件的配置文件为源码包中的package/gmetad/gmetad.conf

 

Java代码  收藏代码
  1. cp<package>/gmetad/gmetad.conf /etc/ganglia/gmetad.conf  

 

2&#xff09; 配置文件。不管采用哪种安装方法&#xff0c;其配置方法如下&#xff1a;

 

  • gmond.conf配置项目

 

 

Java代码  收藏代码
  1. /*配置集群信息&#xff0c;主要配置集群名称*/  
  2. cluster {  
  3.      name &#61; "Flume"  
  4.      owner &#61; "Cooper"  
  5.      latlong &#61; "unspecified"  
  6.      url &#61; "unspecified"  
  7. }  
  8. /*配置UPD发送管道&#xff0c;用于发送UPD单播或多播状态信息*/  
  9. udp_send_channel {  
  10.      host &#61; 111.111.111.***  
  11.      port &#61; 8649  
  12.      ttl &#61; 1  
  13. }  
  14. /*配置UPD接收端口&#xff0c;用于接收其他节点发送到UPD单播或多播状态信息*/  
  15. udp_recv_channel {  
  16. port &#61; 8649  
  17. }  
  18. /*配置Gmond组件收集的信息&#xff0c;可配置状态信息采集时间&#xff0c;最大采集时间间隔和监控值阈等*/  
  19. /*Gmond组件的状态信息收集项已经默认配置完成&#xff0c;可根据实际需要更改收集时间阈和值阈*/  
  20. collection_group {  
  21.      collect_once &#61; yes  
  22.      time_threshold &#61; 20  
  23.      metric {  
  24.           name &#61; "heartbeat"  
  25.      }  
  26. }  

 

 

  • gmetad.conf配置项目

 

 

Java代码  收藏代码
  1. /*配置周期性拉取信息的数据源*/  
  2. data_source"Flume" 111.111.111.***:8649  
  3. /*可配置拉取周期、拉取节点等&#xff0c;如果gmetad需要拉取多个节点的信息&#xff0c;以空格分隔配置*/  
  4. # data_source"cluster" 10 localhost my.machine.edu:8649 1.2.3.5:8655  
  5. # data_source"grid" 50 1.3.4.7:8655 grid.org:8651 grid-backup.org:8651  
  6. # data_source"source" 1.3.4.7:8655 1.3.4.8  

 

 

  • 配置文件完成后&#xff0c;将gmond和gmetad注册为系统服务

 

 

Java代码  收藏代码
  1. chkconfig –-add gmond  
  2. chkconfig –-add gmetad  

 

 

  • 启动服务

 

 

Java代码  收藏代码
  1. service gmond start  
  2. service gmetad start  
  3. service httpd srart  

 

附1、使用Gmetric定制监控信息

Gmetric组件是可选组件&#xff0c;所以配置之前&#xff0c;请确认Gmetric组件已经正确安装。Gmetric组件通过执行定制的脚本&#xff0c;将返回结果返回给Gmond组件。

 

Java代码  收藏代码
  1. ll /usr/bin/gmetric  
  2. vi/root/gmetric_scripts.sh  
  3. chmod 755/root/gmetric_scripts.sh  
  4. /root/gmetric_scripts.sh  
  5. /*将脚本服务添加到crontab&#xff0c;设置周期性运行*/  
  6. crontab –e  
  7. /1 * * * * /root/mcd_gmetric.sh  

 

在此提供一个共享的脚本库【猛击这里】

附2、监控Hadoop集群

/*配置Hadoop文件*/

 

Java代码  收藏代码
  1. /*这里所配置的IP地址&#xff0c;是指Gmond组件指定的多播地址&#xff0c;不是Gmetad组件所在地节点地址*/  
  2. # Configuration of the"dfs" context for ganglia  
  3. dfs.class&#61;org.apache.hadoop.metrics.ganglia.GangliaContext  
  4. dfs.period&#61;10  
  5. dfs.servers&#61;10.224.192.***:8649  
  6.    
  7. # Configuration of the"mapred" context for ganglia  
  8. mapred.class&#61;org.apache.hadoop.metrics.ganglia.GangliaContext  
  9. mapred.period&#61;10  
  10. mapred.servers&#61;10.224.192.***:8649  
  11.    
  12. # Configuration of the"jvm" context for ganglia  
  13. jvm.class&#61;org.apache.hadoop.metrics.ganglia.GangliaContext  
  14. jvm.period&#61;10  
  15. jvm.servers&#61;10.224.192.***:8649  





推荐阅读
  • 如何查看javaJDK中底层源码在初次使用java时,往往我们对最基本的java类会忽略对其内部基本的实现的了解,也往往不屑于了解其内部实现机制,以为它们本来就是这样子。而其实贯穿 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 这篇文章主要讲解了“openPNE怎么创建项目”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“open ... [详细]
  • AssetbundlegenerateemptyJavaScriptandCSSfiles资产包生成空的JavaScript和CSS文件namespacefrontend\ass ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
author-avatar
海滨2502940147
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有