2025年Ganglia的安装与部署以及监控hbase

Ganglia的安装与部署以及监控hbase1 Ganglia 了解 安装部署 Ganglia 之前我们要了解下 Ganglia 是什么 对于这个工具 大家可能比较陌生 但是它功能非常强大 如果我们想收集所有服务器 网络设备的数据 那么 ganglia 绝对是首选 在深入学习之前 还是先从基础概念了解起吧

大家好,我是讯享网,很高兴认识大家。

1.Ganglia了解

安装部署Ganglia之前我们要了解下Ganglia是什么

对于这个工具,大家可能比较陌生,但是它功能非常强大,如果我们想收集所有服务器、网络设备的数据,那么ganglia绝对是首选,在深入学习之前,还是先从基础概念了解起吧!

Ganglia是一款为HPC(高性能计算)集群而设计的可扩展的分布式监控系统,它可以监视和显示集群中的节点的各种状态信息,它由运行在各个节点上的gmond守护进程来采集CPU 、内存、硬盘利用率、I/O负载、网络流量情况等方面的数据,然后汇总到gmetad守护进程下,使用rrdtool存储数据,最后将历史数据以曲线方式通过PHP页面呈现。

Ganglia的特点如下:

 良好的扩展性,分层架构设计能够适应大规模服务器集群的需要
 负载开销低,支持高并发
 广泛支持各种操作系统(UNIX等)和cpu架构,支持虚拟机

二、Ganglia组成

Ganglia监控系统有三部分组成,分别是gmond、gmetad、webfrontend,作用如下。

 gmond: 即为ganglia monitoring daemon,是一个守护进程,运行在每一个需要监测的节点上,用于收集本节点的信息并发送到其他节点,同时也接收其他节点发过了的数据,默认的监听端口为8649。
 gmetad: 即为ganglia meta daemon,是一个守护进程,运行在一个数据汇聚节点上,定期检查每个监测节点的gmond进程并从那里获取数据,然后将数据指标存储在本地RRD存储引擎中。
 webfrontend: 是一个基于web的图形化监控界面,需要和Gmetad安装在同一个节点上,它从gmetad取数据,并且读取RRD数据库,通过rrdtool生成图表,用于前台展示,界面美观、丰富,功能强大。

三、Ganglia安装

首先我们要确定监控管理端和客户端主机,监控管理端需要安装gmetad和web,客户端主机我们需要安装gmond。当然如果你的监控管理端也有数据的话那也要安装gmetad。

Ganglia的安装很简单,可以通过源码包和yum源两种方式进行安装。yum源方式安装方便,可以自动安装依赖关系,但是版本往往不是最新的,而通过源码方式,可以安装最新版的Ganglia。下面具体介绍一下这两种安装方式。

这里我们就通过yum源来安装Ganglia,因为通过yum安装很轻松简单

3.1扩展yum源

CentOS系统中默认的yum源并没有包含Ganglia,所以我们必须安装扩展的yum源。从下面这个地址下载Linux附加软件包(EPEL),然后安装扩展yum源(所有节点):

[root@node1 ~]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

[root@node1 ~]# rpm -ivh epel-release-latest-7.noarch.rpm

3.2Ganglia安装

这里都是使用的root用户安装的

#监控管理端 yum -y install ganglia-gmetad.x86_64

#在需要监控的客户端主机 yum -y install ganglia-gmond.x86_64

#安装为web服务的节点 yum -y install ganglia-web(和gmetad一起安装在一个节点上)

示例:

监控端节点上(master节点)

yum -y install ganglia-gmetad.x86_64

yum -y install ganglia-gmond.x86_64

yum -y install ganglia-web

其他客户端节点上(想要监控的节点)

yum -y install ganglia-gmond.x86_64

四、Ganglia配置

安装完成后我们就开始配置里面的内容了

4.1Ganglia配置文件介绍

Ganglia的配置文件主要有两个,分别是监控管理端的gmetad.conf和客户端的gmond.conf文件。根据Ganglia安装方式的不同,配置文件的路径也不相同,通过yum方式安装的Ganglia,默认的配置文件位于/etc/ganglia下,而通过源码方式安装的Ganglia,配置文件路径位于ganglia安装路径的etc目录下,在监控管理端,只需要配置gmetad.conf文件即可,而在客户端也只需要配置gmond.conf文件就行了。

配置完gmetad和gmond之后我们要配置web了,这样才能可视化的看见我们的系统状况

4.2gmetad配置

我们先配置gmetad的配置文件

vim /etc/ganglia/gmetad.conf

找到下面的内容并且修改

data_source "mccps" clu201 clu202

这里的mccps是你这套集群你想取的名字,而后面的clu201和202就是你监控的节点的ip映射或者ip

4.3gmond配置

vim /etc/ganglia/gmond.conf


讯享网

/* * The cluster attributes specified will be used as part of the <CLUSTER> * tag that will wrap all hosts collected by this instance. */ cluster { name = "mccps" #与前面配置中的集群名一致 owner = "unspecified" latlong = "unspecified" url = "unspecified" } /* The host section describes attributes of the host, like the location */ host { location = "unspecified" } /* Feel free to specify as many udp_send_channels as you like. Gmond used to only support having a single channel */ udp_send_channel { #bind_hostname = yes # Highly recommended, soon to be default. # This option tells gmond to use a source address # that resolves to the machine's hostname. Without # this, the metrics may appear to come from any # interface and the DNS names associated with # those IPs will be used to create the RRDs. #mcast_join = 239.2.11.71 #注释掉 host=10.3.1.201 #绑定监控客户端的主机IP(clu201) port = 8649 ttl = 1 } /* You can specify as many udp_recv_channels as you like as well. */ udp_recv_channel { #mcast_join = 239.2.11.71 #注释掉 port = 8649 #bind = 10.3.1.201 #绑定监控客户端的主机IP(clu201) #retry_bind = true #注释掉 # Size of the UDP buffer. If you are handling lots of metrics you really # should bump it up to e.g. 10MB or even higher. # buffer =  } 

讯享网

这里只用配置name和host以及bind,并且把两个mcast_join和bind以及retry_bind注释掉

配置完后分发到其他的gmond上,因为只需要一份配置文件,全部的gmond节点都保持相同的配置文件就好了。

4.4web配置

vim /etc/httpd/conf.d/ganglia.conf

讯享网<Location /ganglia> Order deny,allow Require all granted #Allow from all #Deny from all #Allow from 127.0.0.1 #Allow from ::1 # Allow from .example.com </Location> 

除了第一个其他的都注释掉然后加上Require all granted

五、配置hadoop和hbase

5.1修改hadoop的配置文件

vim /usr/hadoop/etc/hadoop/hadoop-metrics2.properties

首先把没有注释的配置文件注释掉然后在尾部加入以下内容

namenode.sink.ganglia.servers=192.168.10.90:8649          # namenode 所在的节点 多个用英文下的逗号隔开
resourcemanager.sink.ganglia.servers=192.168.10.91:8649   # resourcemanager 所在的节点

datanode.sink.ganglia.servers=192.168.10.90:8649,192.168.10.91:8649,192.168.10.92:8649    # datanode 所在的节点 多个用英文下的逗号隔开
nodemanager.sink.ganglia.servers=192.168.10.90:8649,192.168.10.91:8649,192.168.10.92:8649
maptask.sink.ganglia.servers=192.168.10.90:8649

然后分发到所有节点

5.2配置hbase配置文件

vim /usr/hbase/conf/hadoop-metrics2-hbase.properties

首先把没有注释的配置文件注释掉然后在尾部加入以下内容

*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31    
*.sink.ganglia.period=10  
hbase.sink.ganglia.period=10
hbase.sink.ganglia.servers=192.168.10.90   # hbase 主节点信息

5.3避坑

自此所有的配置都完成了,但是!你要保证你的防火墙关了

还有一个坑就是,linux的selinux防火墙一般都是没有关的,没关就会报如下错误

There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error

所以我们可以通过以下命令去临时关闭(每次重启都需要设置),想要长久关闭请自行去找其他资料

setenforce 0

六、开启服务

先开启hadoop和hbase以及zookeeper

然后再开启ganglia

主节点: [root@clu201 ~]# systemctl start httpd [root@clu201 ~]# systemctl start gmetad [root@clu201 ~]# systemctl start gmond 子节点 [root@clu202 mca]# systemctl start gmond 

安装了哪个服务就开启哪个服务

需要注意的是你的gmond要比gmetad先开启,全部的gmond开启后再开启gmetad

开启完毕后通过ip+/ganglia/ 去访问web

例如:192.168.10.90/ganglia/

最后访问到这个就成功了

本篇博客参考了分布式监控数据采集系统Ganglia实战 - 夫莱特 - 博客园 (cnblogs.com)

想要看更仔细的去看这篇博客,讲的很仔细。我这篇只是用自己的理解来部署的,但是所有的东西都是来源于上篇博客

小讯
上一篇 2025-04-02 23:03
下一篇 2025-03-18 14:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/15855.html