Ganglia架构简介:
Ganglia 是一款为HPC(高性能计算) 集群设计的可扩展性的分布式监控系统,它可以监视和显示集群中节点的各种状态信息,它由运行在各个节点上的守护进程gmond 采集 CPU、内存、磁盘利用率、I/O负载、网络流量情况等方面的数据,然后汇总到守护进程gmetad下,使用rrdtool存储数据,然后将历史数据以曲线方式通过PHP页面呈现,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
Ganglia监控的三大组件:gmond,gmetad和ganlia-web(网页接口) 。
1:gmond:是一个守护进程,需要安装在每台主机上,负责和操作系统交互以获得需要关注的指标数据,运行在每一个需要监测的节点上,收集监测统计 。
2:gmetad:也是一个守护进程,集群数据收集节点,安装在中心节点上,使用Hadoop的NameNode作为该集群数据收集节点。主要作用就是整合所有信息。定期检查所有的gmond,拉取数据,并将他们的指标存储在RRD(Round Robin Database 存储格式,数据等于放在数据库中)存储引擎中。他可以查询多个集群并聚合指标。他也被用于生成用户界面的web前端。
3:ganglia-web:可视化工具,显示ganglia收集的主机各项指标。安装在有gmetad运行的机器上,读取RRD文件( gweb是一种PHP程序,因为需要与轮询器创建的RRD数据库交互,所以gweb通常安装在和gmetad相同的物理硬件上)。
Ganglia分为服务器端和客户端,其中gmetad是服务器端,gmond是客户端。服务器端只有一个,而被监控服务器均安装客户端;
yum方式安装Ganglia比起make install 安装Ganglia方式要简单很多,因为yum方式安装不用自己去下载编译安装各依赖包。
安装Ganglia所在集群的环境:
linux版本:
[root@cloud0 hadoop]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.3.1611 (Core)
Release: 7.3.1611
Codename: Core
命令不能用:
[root@cloud0 hadoop]# lsb_release -a
bash: lsb_release: 未找到命令...
安装命令
[root@cloud0 hadoop]# yum install lsb
hadoop版本:
[root@cloud0 hadoop]# hadoop version
Hadoop 2.7.2
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r b165c4fe8a74265c792ce23f546c64604acf0e41
Compiled by jenkins on 2016-01-26T00:08Z
Compiled with protoc 2.5.0
From source with checksum d0fda26633fa762bff87ec759ebe689c
This command was run using /usr/local/hadoop/hadoop-2.7.2/share/hadoop/common/hadoop-common-2.7.2.jar
测试集群:有两个网卡,内网和外网,确保外网的网卡启动
网卡启动命令:ifup 网卡名
确保所有的机器都能够上网
(解释不正确的请在评论区咱们一起探讨,谢谢~)
安装场景:
服务器1 (master):安装gmond,gmetad,和web
服务器2 (slave1):仅安装gmond
服务器3 (slave2):仅安装gmond
服务器n (slaven):仅安装gmond
安装流程:
首先要为每台机器安装EPEL:是yum的一个软件源,里面包含了许多基本源里没有的软件,不安装会找不到包 。
方式1:
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -vih epel-release-latest-7.noarch.rpm
方式2:
rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
方式3
yum install epel-release
第一步:Linux开启安装EPEL YUM源
机器cloud0
[root@cloud0 hadoop]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@cloud0 hadoop]# rpm -vih epel-release-latest-7.noarch.rpm
机器cloud2
[root@cloud2 hadoop]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@cloud2 hadoop]# rpm -vih epel-release-latest-7.noarch.rpm
机器cloud3
[root@cloud3 hadoop]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@cloud3 hadoop]# rpm -vih epel-release-latest-7.noarch.rpm
机器cloud4
[root@cloud4 hadoop]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@cloud4 hadoop]# rpm -vih epel-release-latest-7.noarch.rpm
检查安装epel源是否成功:
源标识下有epel/x86_64即为成功
[root@cloud0 ~]# yum repolist
第二步:安装Ganglia ,root权限下操作
a: 机器cloud0
[root@cloud0 ~]# yum -y install ganglia-gmetad
[root@cloud0 ~]# yum -y install ganglia-web
b: 机器cloud0 、机器cloud2 、机器cloud3、机器cloud4
[root@cloud0 ~]# yum -y install ganglia-gmond
[root@cloud2 ~]# yum -y install ganglia-gmond
[root@cloud3 ~]# yum -y install ganglia-gmond
[root@cloud4 ~]# yum -y install ganglia-gmond
第三步:配置
文件说明:
gmetad.conf 配置监控哪些机器的文件。
gmond.conf 配置受监控机器文件
a: 对机器 cloud0 上的文件操作
[root@cloud0 ~]# vim /etc/ganglia/gmetad.conf
#修改
# data_source "my cluster" localhost
#为
data_source "MyCluster_TEST" cloud0 cloud2 cloud3 cloud4
[root@cloud0 ~]# vim /etc/httpd/conf.d/ganglia.conf
7
8
9 Order deny,allow
10 # Deny from all 注释这一行
11 Allow from all
12
13 # Require local
14 # Require ip 10.1.2.3
15 # Require host example.org
16
Apache的配置文件 httpd.conf
修改如下:
[root@cloud0 ~]# vim /etc/httpd/conf/httpd.conf
102 <Directory />
103 #AllowOverride none
104 #Require all denied
105
106 Options FollowSymLinks
107 AllowOverride None
108 Order deny,allow
109 allow from all
110
111 Directory>
注: 不修改的话,用web页面查看图形化界面时,会报错:403 没有权限访问
b: 对机器cloud0 、机器cloud2 、机器cloud3、机器cloud4 上的文件操作
[root@cloud0 ~]# vi /etc/ganglia/gmond.conf
cluster {
name = "MyCluster_TEST"
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
注: 此时的 name 要和 文件/etc/ganglia/gmetad.conf中配置的data_source 中相同
第四步: 启动服务并设置开机启动
a: 机器cloud0 : 启动服务 gmetad gmond apache
[root@cloud0 ~]# service gmetad start
[root@cloud0 ~]# service gmond start
[root@cloud0 ~]# service httpd start
查看是否启动成功
[root@cloud0 ~]# service gmetad status
...active (running) ...
[root@cloud0 ~]# service gmond status
...active (running)...
[root@cloud0 ~]# service httpd status
... active (running) ...
设置开机启动
[root@cloud0 ~]# chkconfig gmetad on
[root@cloud0 ~]# chkconfig gmond on
[root@cloud0 ~]# systemctl enable httpd.service
b: 机器cloud2 、机器cloud3、机器cloud4
[root@cloud2 ~]# service gmond start
[root@cloud3 ~]# service gmond start
[root@cloud4 ~]# service gmond start
[root@cloud2 ~]# chkconfig gmond on
[root@cloud3 ~]# chkconfig gmond on
[root@cloud4 ~]# chkconfig gmond on
停止ganglia
service gmetad stop
service gmond stop
service httpd stop
最后通过网址访问:http://service_ip/ganglia
参考的链接:
Ganglia CentOS yum安装配置
httpd服务403解决
httpd服务开机启动
环境搭建部署介绍
另一种安装方式:编译源文件,但是我没有行得通
查看linux版本
查看linux版本:lsb_release -a 命令用不了的解决方案
网卡是否启动
rpm包的安装与卸载
epel源的安装