ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RHEL 6.7下Ganglia简单安装yum版

RHEL 6.7下Ganglia简单安装yum版

原创 Linux操作系统 作者:luashin 时间:2016-03-30 18:33:41 0 删除 编辑
一.Ganglia概述
   Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu、mem、硬盘利用率、I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。(来自百度百科)

二、Ganglia组件
Ganglia 监控套件包括三个主要部分:gmond,gmetad,和网页接口,通常被称为ganglia-web。

Gmond :是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息 如果他是一个发送者(mute=no)他会收集基本指标,比如系统负载(load_one),CPU利用率。他同时也会发送用户通过添加C/Python模块来自定义的指标。 如果他是一个接收者(deaf=no)他会聚合所有从别的主机上发来的指标,并把它们都保存在内存缓冲区中。

Gmetad:也是一个守护进程,他定期检查gmonds,从那里拉取数据,并将他们的指标存储在RRD存储引擎中。他可以查询多个集群并聚合指标。他也被用于生成用户界面的web前端。

Ganglia-web :顾名思义,他应该安装在有gmetad运行的机器上,以便读取RRD文件。 集群是主机和度量数据的逻辑分组,比如数据库服务器,网页服务器,生产,测试,QA等,他们都是完全分开的,你需要为每个集群运行单独的gmond实例。

一般来说每个集群需要一个接收的gmond,每个网站需要一个gmetad。

Ganglia工作流如图所示:


CentOS集群上安装Ganglia-3.6.0监控各种网络服务器

左边是运行在各个节点上的gmond进程,这个进程的配置只由节点上/etc/ganglia/gmond.conf的文件决定。所以,在各个监视节点上都需要安装和配置该文件。

右上角是更加负责的中心机(通常是这个集群中的一台,也可以不是)。在这个台机器上运行这着gmetad进程,收集来自各个节点上的信息并存储在rrdtool上,该进程的配置只由/etc/ganglia/gmetad.conf决定。   

右下角显示了关于网页方面的一些信息。由浏览网站时调用php脚本,从RRDTool数据库中抓取信息,动态的生成各类图表。
 
三.前期工作EPEL的安装
   EPEL(Extra Packages for Enterprise Linux),这是针对RHEL设计的软件仓库,在这个仓库中有很多免费的常用软件,由Fedora项目维护,如果使用的是RHEL、CentOS、Scientific等RHEL系列的Linux,可以非常方便的使用EPEL的yum源。这是为以后安装任何软件节省时间。
查看本机是否安装了EPEL:
[root@localhost ~]# rpm -q epel-release
package epel-release is not installed
 
如果没有安装,可以选择下面的情况来安装:
32位系统选择:
[root@localhost ~]# rpm -ivh http://download.fedora.RedHat.com/pub/epel/6/i386/epel-release-6-8.noarch.rpm
 
64位系统选择:
[root@localhost ~]# rpm -ivh http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
 
导入key:
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
 
安装后可以查看,得到:
[root@localhost ~]# rpm -q epel-release
epel-release-6-8.noarch
安装好epel-release-6-8.noarch.rpm后,会在/etc/yum.repos.d目录下,新增两个文件:
epel.repo                  //标准的epel源,经过测试,并且比较稳定的
epel-testing.repo          //最新的epel源,正在测试阶段。
   默认情况下,yum会搜索/etc/yum.repos.d目录下所有的文件,搜索其中的yum源。搜索的前提是enable=1,如果是enable=0就不搜索该源了。
 
四.ganglia的安装

安装
Server端
# yum -y install rrdtool httpd php ganglia-gmetad ganglia-web ganglia-gmond 

client端
# yum -y install ganglia-gmond

五.Ganglia的配置

两个节点的配置:即服务器端192.168.1.63和客户端192.168.1.64
Server端:
# vim /etc/ganglia/gmetad.conf 
data_source "Nebula" 192.168.1.63:8649  //配置数据源名称为“Nebula”和gmond.conf中“name”值一致,后面的ip为要监控的主机ip


# vim /etc/ganglia/gmond.conf
主要是三个地方需修改:cluster name、udp_send_channel、udp_recv_channel。注意单播与多播模式的区别,在多播模式下,加入该多播组的节点都会收到组内所有其他节点的数据,所以每个相当于一个备份。单播模式下,只是点到点的发送数据,数据只会发向特定的那个host,这种模式下通常具有一个中央收集节点。
globals {
user = ganglia /*运行Ganglia的用户*/
host_dmax = 120 /*secs */
cleanup_threshold = 300 /*secs */
send_metadata_interval = 15 /*发送数据的时间间隔*/
}

cluster {
name = "Nebula"          //这个名称很重要
}

udp_send_channel {            /*udp包的发送通道*/
#mcast_join = 239.2.11.71     /*注释掉组播或组播*/

host = 192.168.1.63           /*发送给安装gmetad服务器,这里使用单播这里应改为host*/
port = 8649
ttl = 1
}

udp_recv_channel {          /*udp包的接收通道,使用单机广播需删除mcast_join、bind*/
#mcast_join = 239.2.11.71
port = 8649
#bind = 239.2.11.71

}

集群的配置:目前集群有三个节点:server01.example.cn,server02.example.cn,server03.example.cn,其中hdp1为主节点
1.服务端配置:
# vim /etc/ganglia/gmetad.conf
data_source "Nebulaserver01.example.cn server02.example.cn server03.example.cn  
setuid_username "apache" (可以不设置)
 
2.客户端配置:
# vim /etc/ganglia/gmond.conf
globals {
user = ganglia /*运行Ganglia的用户*/
host_dmax = 120 /*secs */
cleanup_threshold = 300 /*secs */
send_metadata_interval = 15 /*发送数据的时间间隔*/
}

cluster {
  name = "Nebula"
  owner = "apache"    /*该节点的所有者*/
  latlong = "unspecified"
  url = "unspecified"
}
其中:name需要与gmetad.conf中data_source中的“Nebula”匹配,owner需要与setuid_username中的值对应(如果没有设置,可以不用修改)

注意:修改了setuid_username后需要对权限进行更改,否则使用service gmetad status时会出现gmetad dead but subsys locked.
# chown -R apache:apache /var/lib/ganglia/rrds

3.Apache的服务端配置
# vim /etc/httpd/conf.d/ganglia.conf
Alias /ganglia /usr/share/ganglia

  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
  Allow from ::1
  # Allow from .example.com

修改为:
Alias /ganglia /usr/share/ganglia 

  Order deny,allow
  Allow from all

注意:需开启allow from相关配置,否则在apache不允许浏览图形界面。

六.Ganglia的启动
启动服务端gmetad并且设为开机启动

chkconfig --levels 235 gmond on       //开机运行采集进程
chkconfig --levels 235 gmetad on      //开机运行数据存储进程
service gmetad start

service gmond start

通过telnet localhost 8651进行测试

server端gmond.conf文件通过scp发送到各个client端
# scp /etc/ganglia/gmond.conf root@192.168.1.64:/etc/ganglia/gmond.conf

启动客户端的gmond并设为开机启动
# chkconfig --levels 235 gmond on         //设置开机运行数据采集进程
service gmond start
通过telnet localhost 8649进行测试

为Apache指定主机名称: 
cp /etc/httpd/conf/httpd.conf{.bak}   //备份httpd.conf文件
# vim /etc/httpd/conf/httpd.conf
ServerName server01.example.cn:80
  
启动apache服务端
chkconfig --levels 235 httpd on       //开机运行apache服务
service httpd restart

七.Ganglia的测试
//命令行打印当前活动client
# gstat -a

访问http://server01.example.cn/ganglia,将出现很多的监控指标,非常方便查看程序的资源消耗情况,如下图所示:
http://localhost/ganglia 或 http://192.168.1.63/ganglia
server01.example.cn为运行gmetad主机的hostname

CPU:

进程:

网络:

内存:

Load:

磁盘:


Apache密码验证 
通过web方式访问ganglia不需要密码,通过apache设置密码达到安全访问的目的。
# htpasswd -c /etc/httpd/conf.d/passwords admin
# cd /usr/share/ganglia
# vim .htaccess          //创建apache目录密码文件,并写入下面内容
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/httpd/conf.d/passwords
Require user admin

# vim /etc/httpd/conf/httpd.conf 
    Options FollowSymLinks
    AllowOverride None
修改为:
    Options FollowSymLinks
    AllowOverride AuthConfig

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9034054/viewspace-2072589/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-02-18

  • 博文量
    290
  • 访问量
    1050043