注:使用root用户进行操作

Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。

一、Ganglia组件
    Ganglia 监控套件包括三个主要部分:gmond,gmetad,和网页接口,通常被称为ganglia-web。
    Gmond :是一个守护进程,他 运行在每一个需要监测的节点 上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息 如果他是一个发送者(mute=no)他会收集基本指标,比如系统负载(load_one),CPU利用率。他同时也会发送用户通过添加C/Python模块来自定义的指标。 如果他是一个接收者(deaf=no)他会聚合所有从别的主机上发来的指标,并把它们都保存在内存缓冲区中。
    Gmetad:也是一个守护进程,他定期检查gmonds,从那里拉取数据,并将他们的指标存储在RRD存储引擎中。他可以查询多个集群并聚合指标。他也被用于生成用户界面的web前端。
    Ganglia-web :顾名思义,他应该安装在有gmetad运行的机器上,以便读取RRD文件。 集群是主机和度量数据的逻辑分组,比如数据库服务器,网页服务器,生产,测试,QA等,他们都是完全分开的,你需要为每个集群运行单独的gmond实例。

一般来说集群中每个节点需要一个接收的gmond,每个网站需要一个gmetad。
 
二、安装依赖
    注:建议使用超级用户安装
    1.#yum install –y gcc gcc-c++ libpng freetype zlib libdbi apr* libxml2-devel pkg-config glib pixman pango pango-devel freetye-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel pcre* rrdtool*
    
三、安装expat依赖
    1.#cd /root
    2.#wget http://jaist.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz
    3.#tar -xf expat-2.1.0.tar.gz && cd expat-2.1.0 && ./configure --prefix=/usr/local/expat && make && make install && cd ..

对于64位操作系统,需要手动的拷贝下动态链接库到lib64下
    1.#mkdir /usr/local/expat/lib64 && cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
 
四、安装confuse
    1.#wget http://ftp.twaren.net/Unix/NonGNU//confuse/confuse-2.7.tar.gz
    2.#tar -xf confuse-2.7.tar.gz && cd confuse-2.7 && ./configure CFLAGS=-fPIC --disable-nls --prefix=/usr/local/confuse && make && make install && cd ..

64bit机器需要拷贝动态链接库:
    1.#mkdir -p /usr/local/confuse/lib64 && cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/
    
五、安装ganglia
    1.#wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.6.0/ganglia-3.6.0.tar.gz
    2.#tar -xf ganglia-3.6.0.tar.gz && cd ganglia-3.6.0 && ./configure --with-gmetad --enable-gexec --with-libconfuse=/usr/local/confuse --with-libexpat=/usr/local/expat --prefix=/usr/local/ganglia --sysconfdir=/etc/ganglia && make && make install && cd ..
    
六、服务端配置
    创建rrdtool数据目录,看$ganglia-3.2.0/web/conf.php里面的gmetad_root变量,并根据apache的运行用户创建权限,例如apache运行于apache用户上 。
    1.#mkdir -p /var/lib/ganglia/rrds && mkdir -p /var/lib/ganglia/dwoo && chown -R root:root /var/lib/ganglia
    配置一个数据源,修改/etc/ganglia/gmetad.conf文件,同时将运行用户设置为rrdtool的目录权限用户,例如apache用户
    1.data_source "Hadoop" 192.168.1.108:8649
    2.setuid_username "root"
    说明:这里的 " hadoop " 表示的是集群的名称,后面的内容是这个集群中所包含的主机信息,也就是要监控的主机ip。
    
    添加自启动脚本
    1.#cp -f ganglia-3.6.0/gmetad/gmetad.init /etc/init.d/gmetad && cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad && chkconfig --add gmetad
    
    启动gmetad服务
    1.#service gmetad start
    看见Starting GANGLIA gmetad: [ OK ]就代表运行正常了。 通过telnet localhost 8651验证gmetad是否正常

七、客户端配置(gmond节点)
    本机安装如下:
    1.#cp -f ganglia-3.6.0/gmond/gmond.init /etc/init.d/gmond && cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond && chkconfig --add gmond && gmond --default_config > /etc/ganglia/gmond.conf

对于生成的默认配置文件/etc/ganglia/gmond.conf需要做适当的修改
     globals {
       user = root /*运行Ganglia的用户*/
       host_dmax = 120 /*secs */
       send_metadata_interval = 15 /*发送数据的时间间隔*/
     }

cluster {
       name = "hadoop" /*集群名称*/
       owner = "root" /*运行Ganglia的用户*/
     }

udp_send_channel {
          # mcast_join = 239.2.11.71 /*注释掉组播*/
       host = 192.168.1.108/*发送给安装gmetad的机器*/
     }

udp_recv_channel { #接受UDP包配置
       # mcast_join = 239.2.11.71
       # bind = 239.2.11.71
     }
    其中name是将要在服务端进行的分组,是服务端的数据源。接下来开启服务
    1.#service gmond start
    看见Starting GANGLIA gmetad: [ OK ]代表启动成功。如果有失败,可以讲gmond.conf中的debug从0改为100,看更多的日志,然后进行排查。

八、服务端的WEB配置
    PHP程序需要依赖Apache来运行,因此需要安装如下依赖
    1.# yum -y install php httpd
    2.# service httpd start //启动httpd 服务
    
九、测试安装是否成功
    1.# vi /var/www/html/index.php
    输入:
    <?php phpinfo();?>
    保存,然后浏览器 master/index.php 
    正常是看到php的信息。
    
    1.#cd /root
    2.#wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia-web/3.5.10/ganglia-web-3.5.10.tar.gz
    3.#tar -xf ganglia-web-3.5.10.tar.gz && cd ganglia-web-3.5.10 && make install && cd ..
    这样 在/var/www/html/下 生成了 ganglia 目录
    注:
    Ganglia访问失败:
    There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied
     解决:
    需要关闭selinux:vi /etc/selinux/config,把SELINUX=enforcing改成SELINUX=disable;需要重启机器。
    可以使用命令setenforce 0来关闭selinux而不需要重启,刷新页面,即可访问。但此方法只是一权宜之计。要想永久修改selinux设置,还是要使用第一种方法。 
    重启httpd服务器即可看到效果
    1.#service httpd restart
    使用http://master/ganglia查看对应的ganglia信息。(注:master为运行gmetad的主机的hostname)

ganglia集群监控搭建步骤相关推荐

  1. 运维必备:ganglia集群监控服务端及客户端配置实战

    0x01.前言 Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点.Ganglia的核心包含gmond.gmetad以及一个Web前端.主要是用来监控系统性能 ...

  2. Ganglia集群监控系统搭建

    前段时间自己用两台工作站搭建了一个MPI的运行环境,那如何直观的看到每个节点的负载情况呢,于是就想到了用Ganglia搭建一个集群检测系统,相对比较简单,下面详细介绍一下过程 1.Ganglia概述 ...

  3. Ganglia集群监控

    介绍 Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于监控数以千计的节点.Ganglia主要是用来监控系统性能,如:cpu.mem.硬盘利用率,I/O负载.网络流量情况等,通 ...

  4. Docker高级篇笔记(七)在docker里面进行redis三主三从的集群案例搭建步骤

    目录 搭建三主三从集群 数据读写存储 主从容错的切换迁移 主从扩容 主从缩容 搭建三主三从集群 1 先启动docker 2 拉取redis镜像 3 创建6个redis容器 docker run -d ...

  5. 【网址收藏】k8s高可用集群详细搭建步骤

    https://github.com/opsnull/follow-me-install-kubernetes-cluster

  6. hadoop集群的搭建(分布式安装)

    集群 计算机集群是一种计算机系统,他通过一组松散集成的计算机软件和硬件连接起来高度紧密地协同完成计算工作. 集群系统中的单个计算机通常称为节点,通常通过局域网连接. 集群技术的特点: 1.通过多台计算 ...

  7. RocketMQ 实战 集群监控平台搭建

    RocketMQ 实战 集群监控平台搭建 概述 RocketMQ有一个对其扩展的开源项目incubator-rocketmq-externals,这个项目中有一个子模块叫rocketmq-consol ...

  8. rocketmq-console集群监控平台搭建

    集群监控平台搭建 概述 RocketMQ有一个对其扩展的开源项目incubator-rocketmq-externals,这个项目中有一个子模块叫rocketmq-console,这个便是管理控制台项 ...

  9. 4.2.9 Kafka集群与运维, 应用场景, 集群搭建, 集群监控JMX(度量指标, JConsole, 编程获取, Kafka Eagle)

    目录 3.1 集群应用场景 1 消息传递 2 网站活动路由 3 监控指标 4 日志汇总 5 流处理 6 活动采集 7 提交日志 总结 3.2 集群搭建 3.2.1 Zookeeper集群搭建 3.2. ...

  10. Spring Cloud中Hystrix仪表盘与Turbine集群监控

    Hystrix仪表盘,就像汽车的仪表盘实时显示汽车的各项数据一样,Hystrix仪表盘主要用来监控Hystrix的实时运行状态,通过它我们可以看到Hystrix的各项指标信息,从而快速发现系统中存在的 ...

最新文章

  1. Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意
  2. 基于Springboot2.0的Dubbo入门项目(dubbo-spring-boot-starter)
  3. 静态static的内存图
  4. Flexbox弹性盒模型
  5. [蓝桥杯2016决赛]平方末尾-数论,枚举
  6. 如何通过Windows Server 2008 R2建立NFS存储
  7. pdf各种处理 PDF 的实用代码:PyPDF2、PDFMiner、pdfplumber
  8. css预处理器_【第十一课】初尝CSS的预处理器
  9. 3月22 坐标系转换,旋转矩阵,仿射变换,例子,相机与世界,欧拉角与轴角公式,一个坐标系下面的轨迹
  10. SHA256算法详解及python实现
  11. 戴尔服务器密码忘记,进入PE清除密码
  12. 救命啊!还是讨厌的中文问题
  13. springboot整合微信支付
  14. Acer S3 拆机换固态硬盘!【我的Acer S3小三,时尚时尚最时尚!】
  15. JS对象中添加新的属性及修改字段名
  16. 2016弱校联盟十一专场10.2——Around the World
  17. linux蓝牙服务关闭,使用linux的hciconfig命令配置蓝牙设备
  18. 网络基础——综合布线
  19. ubuntu虚拟机双网卡无法上网问题
  20. 【Python】:好好学习天天向上实例

热门文章

  1. Docker生产环境配置——设置direct-lvm模式
  2. RunLoop运行循环机制
  3. 极其艰难地下了决心建立博客虽然没有很好的理由或者仅仅是因为觉得自己的确要改变了......
  4. java日期互转:LocalDateTime、String、Instant、Date
  5. 2019-05-22 SperScan扫描器;SperScan附属工具
  6. JavaSE--类与对象
  7. mysql五:索引原理与慢查询优化
  8. 常用设计模式之单例模式
  9. co.js异步回调原理理解
  10. 测试评审要点说明(测试计划、用例、报告)