文章目录
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源码分析
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