使用ganglia获取集群性能并展示

1、ganglia介绍

安装命令步骤
源码
可以添加的监控项

关于对分布式文件系统的监控,主要分为两个部分:机器性能相关的监控 和 系统运行状态 的监控。
机器性能相关的监控:这个比较泛化,也比较成熟,主要是对CPU、内存、网络、磁盘I/O等信息的监控,可以选择比较方便强大的开源工具来搭建,这里我们选择Ganglia;
系统运行状态的监控:这个与不同的文件系统相关,虽然不同DFS也有一些共性的内容,比如账户、日志、请求量等,但是具体到每一个DFS的实现其实还是有很大不同的,因此需要特别的定制。
整合:提供统一入口、统一风格,这就要求我们需要对Ganglia做一定的二次开发。

Ganglia是一个集群监控工具,由UC Berkeley创建并开源。Ganglia的中文意思是神经中枢,现在支持多部分操作系统(包括linux、unix、windows),可支持2000个节点的网络监控(当然这不是上限,只是一个大集群使用的范例)。

1.1 基本结构

Ganglia底层使用RRDTool获得数据,Ganglia主要分为两个进程组件:

gmond(ganglia monitor deamon)
gmetad(ganglia metadata deamon)
其中,gmond运行在集群每个节点上,收集RRDTool产生的数据;gmetad运行在监控服务器上,收集每个gmond的数据。Ganglia还提供了一个PHP实现的web front end,一般使用Apache2作为其运行环境,通过Web Front可以看到直观的各种集群数据图表。
Ganglia的层次化结构做的非常好,由小到大可以分为node -> cluster -> grid,这三个层次。

  • 1、一个node就是一个需要监控的节点,一般是个主机,用IP表示。每个node上运行一个gmond进程用来采集数据,并提交给gmetad。
  • 2、一个cluster由多个node组成,就是一个集群,我们可以给集群定义名字。一个集群可以选一个node运行gmetad进程,汇总/拉取gmond提交的数据,并部署web front,将gmetad采集的数据用图表展示出来。
  • 3、一个grid由多个cluster组成,是一个更高层面的概念,我们可以给grid定义名字。grid中可以定义一个顶级的gmetad进程,汇总/拉取多个gmond、子gmetad提交的数据,部署web front,将顶级gmetad采集的数据用图表展示出来。
    显然,这种方式非常灵活,可以实现多种结构的数据监控。由下图,我们可以清晰的看出这种层次化的结构,和不同的部署方式。
    在这里插入图片描述

2、ganglia安装(ubuntu)

2.1、集群部署:

这里,仅介绍ubuntu上的部署方式,因为很简单!只需要安装两个包:ganglia-monitor和ganglia-webfrontend。其中ganglia-webfrontend只需要安装在提供页面展示的服务器上,并且如果你的ubuntu没有PHP和Apache2环境的话,它也会自动帮你安装。
直接介绍多播(ganglia默认的方式,此外还支持单播)方式的集群部署,至于单机的方式,其实只要把ganglia-monitor和ganglia-webfrontend装在一台机器上就可以了。

各节点:安装ganglia-monitor

sudo apt-get install ganglia-monitor

主节点:
包含所有ganglia服务的节点上安装ganglia-monitor和ganglia-webfrontend,这个过程会默认为没有Apache和PHP的环境的系统安装Apache2和PHP:

sudo apt-get install ganglia-webfrontend ganglia-monitor

在ganglia-webfrontend安装完毕后,ganglia-webfrontend这个包默认会将Web相关的代码安装在”/usr/share/ganglia-webfrontend/”路径下,这样apache访问不到。因此,可以使用软链接,或者直接将目录移到”/var/www/html/”目录下。

sudo ln -s /usr/share/ganglia-webfrontend/ /var/www/html/ganglia

或者直接移动:
sudo mv /usr/share/ganglia-webfrontend/ /var/www/html/ganglia

2.2、配置

在我们的监控系统中,将cluster命名为swift,grid命名为MyGrid,并采用组播的方式。

配置gmond:打开/etc/ganglia/gmond.conf 修改 cluster name :

sudo vim /etc/ganglia/gmond.conf
cluster { 
    name = "node0048"
    owner = "unspecified"
    latlong = "unspecified"
    url = "unspecified" 
}

配置gmetad:打开/etc/ganglia/gmetad.conf 添加数据源 和 网格名称:

sudo vim /etc/ganglia/gmond.conf

# 修改:
data_source "node0048" localhost 
gridname "MyGrid"

2.3、启动

重启主节点的gmated:

service gmetad restart

重启每个节点的gmond(注意服务名是ganglia-monitor,不是gmond!):

service ganglia-monitor restart

2.4、主节点访问:

输入网址:http://localhost/ganglia
在这里插入图片描述
参考1
参考2

3、ganglia安装(arm_pi)

3.0、首先更新软件源:

sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak # 备份
sudo vim /etc/apt/sources.list  // 搞成新的源
#deb [ trusted=yes arch=arm64 ] http://uos-packages.deepin.com/uos eagle main contrib non-free
#deb [ trusted=yes arch=arm64 ] http://uos-packages.deepin.com/printer eagle non-free
#deb [ trusted=yes arch=arm64 ] http://mirrors.aliyun.com/uos eagle main contrib non-free
#deb [ trusted=yes arch=arm64 ] http://mirrors.aliyun.com/printer eagle non-free

deb [ trusted=yes arch=arm64 ] http://mirrors.163.com/debian/ buster main non-free contrib
deb [ trusted=yes arch=arm64 ] http://mirrors.163.com/debian/ buster-updates  main non-free contrib
deb [ trusted=yes arch=arm64 ] http://mirrors.163.com/debian/ buster-backports  main non-free contrib
deb [ trusted=yes arch=arm64 ] http://mirrors.163.com/debian-security/ buster/updates main non-free contrib

deb-src [ trusted=yes arch=arm64 ] http://mirrors.163.com/debian/ buster main non-free contrib
deb-src [ trusted=yes arch=arm64 ] http://mirrors.163.com/debian/ buster-updates  main non-free contrib
deb-src [ trusted=yes arch=arm64 ] http://mirrors.163.com/debian/ buster-backports  main non-free contrib
deb-src [ trusted=yes arch=arm64 ] http://mirrors.163.com/debian-security/ buster/updates main non-free contrib

之后:

sudo apt update
sudo apt upgrade

如果出现这个错误:

Certificate verification failed: The certificate is NOT trusted. 
The certificate issuer is unknown.
 Could not handshake: Error in the certificate verification.

意思是没有http的证书,啥玩意的,使用这个命令搞一下就好了:

sudo apt-get install ca-certificates -y

剩下的就和上一个ubuntu一样:

3.1、各节点:安装ganglia-monitor

sudo apt-get install ganglia-monitor

3.2、主节点:

sudo apt-get install ganglia-webfrontend ganglia-monitor

在ganglia-webfrontend安装完毕后,ganglia-webfrontend这个包默认会将Web相关的代码安装在”/usr/share/ganglia-webfrontend/”路径下,这样apache访问不到。因此,可以使用软链接,或者直接将目录移到”/var/www/html/”目录下。

sudo ln -s /usr/share/ganglia-webfrontend/ /var/www/html/ganglia

或者直接移动:
sudo mv /usr/share/ganglia-webfrontend/ /var/www/html/ganglia

2.2、配置

在我们的监控系统中,将cluster命名为node0050,grid命名为MyGrid,并采用组播的方式。

配置gmond:打开/etc/ganglia/gmond.conf 修改 cluster name :

sudo vim /etc/ganglia/gmond.conf
cluster { 
    name = "node0048"
    owner = "unspecified"
    latlong = "unspecified"
    url = "unspecified" 
}

配置gmetad:打开/etc/ganglia/gmetad.conf 添加数据源 和 网格名称:

sudo vim /etc/ganglia/gmond.conf

# 修改:
data_source "node0048" localhost 
gridname "MyGrid"

3.3、启动

重启主节点的gmated:

service gmetad restart

重启每个节点的gmond(注意服务名是ganglia-monitor,不是gmond!):

service ganglia-monitor restart

3.4、主节点访问:

输入网址:

http://localhost/ganglia
http://10.28.210.35/ganglia/          //校园网访问

4、ganglia源码分析

gmond
大数据整体

5、参照

参照

6、自定义显示

需求:需要把前端没用的信息删除,所以去找前端显示的代码,

1、找到相关显示的代码位置是:ganglia-web-master文件中/ templates\default / header.tpl 文件中第305行。
2、找到自己安装的相关代码删除就好了。

3、因为是使用sudo apt-get install 命令安装的,所以先找到安装的软件包位置:(默认安装在如下:)
/var/cache/apt/archives

路径下可以看到:
ganglia-monitor_3.6.0-7+b2_arm64.deb
**ganglia-webfrontend_3.6.1-3_all.deb **
gmetad_3.6.0-7+b2_arm64.deb
这3个deb软件包
deb都是可以运行的软件包,
要做修改就把这个包给解压,然后修改,然后再压缩成包,之后再安装这个包,再重启这个服务,前端就会更新了。

操作:
当前路径下创建文件夹:

sudo mkdir -p extract/DEBIAN      // 解压到这里
sudo mkdir build    // 用来压缩成包的地方

解压:
dpkg-deb -x #解压出包中的文件到extract目录下
dpkg-deb -e #解压出包的控制信息extract/DEBIAN/下:

sudo dpkg-deb -x ganglia-webfrontend_3.6.1-3_all.deb extract/          // 解压
sudo dpkg-deb -e ganglia-webfrontend_3.6.1-3_all.deb extract/DEBIAN/    做一些修改

要修改代码所在位置:
/var/cache/apt/archives/extract/usr/share/ganglia-webfrontend/templates/default/

回到刚才的路径,把修改过的代码重新打包,

sudo dpkg-deb -b extract/ build/    会在build目录下生成新的deb软件包

然后:
安装这个新的包,

 sudo apt install ./ganglia-webfrontend_3.6.1-3_all.deb 
或者:
sudo dpkg -i  ./ganglia-webfrontend_3.6.1-3_all.deb 

安装:ganglia-webfrontend这个包默认会将Web相关的代码安装在”/usr/share/ganglia-webfrontend/”路径下,这样apache访问不到。因此,可以使用软链接,或者直接将目录移到”/var/www/html/”目录下。

sudo ln -s /usr/share/ganglia-webfrontend/ /var/www/html/ganglia-yang

或者直接移动:
sudo mv /usr/share/ganglia-webfrontend/ /var/www/html/ganglia-yang

再访问就行了

http://网址/ganglia-yang
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值