一、Ganglia介绍
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
每台计算机都运行一个收集和发送度量数据的名为 gmond 的守护进程。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。所有这些数据多次收集会影响节点性能。网络中的 “抖动”发生在大量小消息同时出现时,可以通过将节点时钟保持一致,来避免这个问题。
gmetad可以部署在集群内任一台节点或者通过网络连接到集群的独立主机,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中。
由RRDTool工具处理数据,并生成相应的的图形显示,以Web方式直观的提供给客户端。
Ganglia由gmond、gmetad和gweb三部分组成。
- gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。gmond相当于一个代理(agent)服务进程,它收集到很多监控的元数据信息后,等待gmetad周期性地轮询这些信息。gmond进程运行时给系统带来的负载是非常小的,从而不会影响用户应用程序性能。
- gmetad(Ganglia Meta Daemon)是一种从其他gmetad或gmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。gmetad可以看成是Ganglia集群的Master,它采用poll的方式,主动与集群中各个gmond进程交互,周期性地轮询每个gmond进程收集到的元数据,然后存储到RRD数据库中,为Web展示监控数据做准备。
- gweb(Ganglia Web)gweb是一种利用浏览器显示gmetad所存储数据的PHP前端。在Web界面中以图表方式展现集群的运行状态下收集的多种不同指标数据。用来展示的数据,实际上是经过RRDTool这个工具处理过的。
二、安装包准备
1、检查待安装集群操作系统版本
Red Hat Enterprise Linux Server release 7.6 (Maipo)
2、准备一个centos7.6操作系统版本的虚拟机
3、虚拟机上创建安装包下载目录
#mkdir -p /opt/ganglia/{gmond,gweb,gmetad}
4、虚拟机安装epel YUM扩展源
#yum -y install epel-release
5、使用yum --downloadonly下载ganglia安装包及相关依赖包
[root@test1 ganglia]# yum install --downloadonly --downloaddir=/opt/ganglia/gmond/ ganglia-gmond
[root@test1 ganglia]# yum install --downloadonly --downloaddir=/opt/ganglia/gweb/ ganglia-web
[root@test1 ganglia]# yum install --downloadonly --downloaddir=/opt/ganglia/gmetad/ ganglia-gmetad
三、Ganglial离线安装
1、将下载的rpm包上传到待安装服务器
因为待安装ganglia服务器集群未联网,需离线安装,可以选择将下载的rpm包通过U盘、光盘、局域网等方式上传到服务器。根据自己情况选择,本示例因待安装服务器与rpm包下载服务器位于同一个局域网内,采用scp。
[root@ql1 opt]# scp -r 192.168.0.124:/opt/ganglia ./
2、首先集群各节点安装gmond
gmond及依赖包清单如下
[root@ql3 gmond]# ll
总用量 384
-rw-r–r-- 1 root root 106124 1月 14 20:05 apr-1.4.8-7.el7.x86_64.rpm
-rw-r–r-- 1 root root 109755 1月 14 20:05 ganglia-3.7.2-33.el7.x86_64.rpm
-rw-r–r-- 1 root root 91971 1月 14 20:05 ganglia-gmond-3.7.2-33.el7.x86_64.rpm
-rw-r–r-- 1 root root 81548 1月 14 20:05 libconfuse-2.7-7.el7.x86_64.rpm
请按照顺序安装
[root@ql3 gmond]# rpm -ivh apr-1.4.8-7.el7.x86_64.rpm
警告:apr-1.4.8-7.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中… ################################# [100%]
正在升级/安装…
1:apr-1.4.8-7.el7 ################################# [100%]
[root@ql3 gmond]# rpm -ivh libconfuse-2.7-7.el7.x86_64.rpm
警告:libconfuse-2.7-7.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
准备中… ################################# [100%]
正在升级/安装…
1:libconfuse-2.7-7.el7 ################################# [100%]
[root@ql3 gmond]# rpm -ivh ganglia-3.7.2-33.el7.x86_64.rpm
警告:ganglia-3.7.2-33.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
准备中… ################################# [100%]
正在升级/安装…
1:ganglia-3.7.2-33.el7 ################################# [100%]
[root@ql3 gmond]# rpm -ivh ganglia-gmond-3.7.2-33.el7.x86_64.rpm
警告:ganglia-gmond-3.7.2-33.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
准备中… ################################# [100%]
正在升级/安装…
1:ganglia-gmond-3.7.2-33.el7 ################################# [100%]
3、主节点安装gmetad
[root@ql1 gmetad]# rpm -ivh libmemcached-1.0.16-5.el7.x86_64.rpm
Preparing… ################################# [100%]
Updating / installing…
1:libmemcached-1.0.16-5.el7 ################################# [100%]
[root@ql1 gmetad]# rpm -ivh rrdtool-1.4.8-9.el7.x86_64.rpm
Preparing… ################################# [100%]
Updating / installing…
1:rrdtool-1.4.8-9.el7 ################################# [100%]
[root@ql1 gmetad]# rpm -ivh ganglia-gmetad-3.7.2-33.el7.x86_64.rpm
warning: ganglia-gmetad-3.7.2-33.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:ganglia-gmetad-3.7.2-33.el7 ################################# [100%]
4、主节点安装gweb
[root@test1 gweb]# rpm -ivh t1lib-5.1.2-14.el7.x86_64.rpm
Preparing… ################################# [100%]
Updating / installing…
1:t1lib-5.1.2-14.el7 ################################# [100%]
[root@test1 gweb]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
Preparing… ################################# [100%]
Updating / installing…
1:apr-util-1.5.2-6.el7 ################################# [100%]
[root@test1 gweb]# rpm -ivh libzip-0.10.1-8.el7.x86_64.rpm
Preparing… ################################# [100%]
Updating / installing…
1:libzip-0.10.1-8.el7 ################################# [100%]
[root@test1 gweb]# rpm -ivh t1lib-5.1.2-14.el7.x86_64.rpm
Preparing… ################################# [100%]
package t1lib-5.1.2-14.el7.x86_64 is already installed
[root@test1 gweb]# rpm -ivh httpd-tools-2.4.6-97.el7.centos.x86_64.rpm
Preparing… ################################# [100%]
Updating / installing…
1:httpd-tools-2.4.6-97.el7.centos ################################# [100%]
[root@test1 gweb]# rpm -ivh mailcap-2.1.41-2.el7.noarch.rpm
Preparing… ################################# [100%]
Updating / installing…
1:mailcap-2.1.41-2.el7 ################################# [100%]
[root@test1 gweb]# rpm -ivh httpd-2.4.6-97.el7.centos.x86_64.rpm
Preparing… ################################# [100%]
Updating / installing…
1:httpd-2.4.6-97.el7.centos ################################# [100%]
[root@test1 gweb]# rpm -ivh php-*.rpm
Preparing… ################################# [100%]
Updating / installing…
1:php-common-5.4.16-48.el7 ################################# [ 25%]
2:php-cli-5.4.16-48.el7 ################################# [ 50%]
3:php-5.4.16-48.el7 ################################# [ 75%]
4:php-gd-5.4.16-48.el7 ################################# [100%]
[root@test1 gweb]# rpm -ivh ganglia-web-3.7.5-33.el7.x86_64.rpm
warning: ganglia-web-3.7.5-33.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:ganglia-web-3.7.5-33.el7 ################################# [100%]
5、修改gmond配置文件
注释掉mcast_join = 239.2.11.71
注释掉bind = 239.2.11.71
修改host=参数为主节点主机名
host=ql1 ##ql1为gweb节点
修改集群名称
name = “Ganglia_cluster”
修改location=参数为gmond节点主机名
location=“ql1” #各节点按需修改
6、修改gmetad配置文件
修改如下参数为上一步配置的集群名称
data_source “Ganglia_cluster” 10 localhost
gridname “Ganglia_cluster”
7、修改ganglia.conf配置文件
vim /etc/httpd/conf.d/ganglia.conf
Alias /ganglia /usr/share/ganglia
<Location /ganglia>
#Order deny,allow ##注释此行
Require all granted ##添加此行
Allow from 127.0.0.1
Allow from ::1
# Allow from .example.com
</Location>
8、启动服务
启动gmond
#systemctl start gmond
主节点启动httpd和gmetad
#systemctl start httpd
#systemctl start gmetad
四、FAQ
1、有关Ganglia的相关配置文件
Ganglia配置文件目录:/etc/ganglia
rrd数据库存放目录:/var/lib/ganglia/rrds
httpd主站点目录:/var/www/html
ganglia-web安装目录:/usr/share/ganglia
ganglia-web配置目录:/etc/httpd/conf.d/ganglia.conf
2、gmond节点启动失败
失败原因:gmond节点未配置/etc/hosts文件,无法失败配置文件中的主机名。
解决方法:同步主节点的hosts文件。
五、成果展示
启动服务后访问链接:http://ip/ganglia,页面如下