安装配置实践Ganglia-监控集群
来源:互联网 发布:漂亮网络词怎么说 编辑:程序博客网 时间:2024/05/12 15:59
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。Ganglia集群主要用来监控系统性能,它由RRDTool工具处理数据,并生成相应的监控相关的图形,并提供一个Web控制台来直观地提供给客户端,管理员可以通过丰富的图形来对整个被监控的物理机器集群节点进行评估。Ganglia能够监控的内容很多,如CPU利用率 、Mem利用率、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。需要知道的是,Ganglia可以做系统监控,但是,目前它不支持服务器异常或故障报警功能。
Ganglia监控集群架构
下面,我们参考《Monitoring with Ganglia》一书,对Ganglia的架构有一个基本了解,然后在配置使用过程中,能够更好地理解监控的基本原理。下面是Ganglia的整体架构,如图所示:
通过上图我们可以看到,Ganglia集群主要是由gmond、gmetad、gweb这3个守护进程组成,其中gmetad进程相当于监控集群的Master,而多个gmond进程可以进行分组,每个分组其实是一个用来收集监控数据的代理服务集群,也就是说,多个gmond集群在整个Ganglia监控集群中作为从节点的角色。
下面,详细说明这个3个守护进程:
- gmond
gmond相当于一个代理(agent)服务进程,它被部署在待监控的各个节点上,主要负责与宿主节点操作系统交互,获取到节点的一些监控数据,如CPU负载、磁盘容量、内存容量、网络状况等等。gmond进程收集到很多监控的元数据信息后,等待gmetad周期性地轮询这些信息。gmond进程运行时给系统带来的负载是非常小的,从而不会影响用户应用程序性能。
从《Monitoring with Ganglia》一书中引用一个给出的gmond架构图,如图所示:
这是2个gmond集群,每个集群有一个是主节点,其余的是从节点,主节点上的gmond服务与该gmond集群中其它从节点通信收集监控数据,gmond集群中的主节点通过组播的方式与gmetad服务器通信。
- gmetad
gmetad可以看成是Ganglia集群的Master,它采用poll的方式,主动与集群中各个gmond进程交互,周期性地轮询每个gmond进程收集到的元数据,然后存储到RRD数据库中,为Web展示监控数据做准备。
- gweb
gweb进程主要是用来展示展示gmetad进程从各个节点上轮询到的监控元数据,这里,用来展示的数据,实际上是经过RRDTool这个工具处理过的。
下面,是我在CentOS-5.9系统下的安装配置实践,系统为64位。
Ganglia服务器安装配置
安装Ganglia服务器,需要用到的软件包,如下所示:
- pcre-8.33.tar.bz2
- confuse-2.7.tar.gz
- rrdtool-1.4.7.tar.gz
- php-5.5.14.tar.gz
- ganglia-3.6.0.tar.gz
- ganglia-web-3.5.9.tar.gz
- nginx-1.6.0.tar.gz
下面介绍安装和配置的过程:
- 安装基础依赖软件包
首先保证yum源可用,可以查看或者修改,在目录下面/etc/yum.repo.d/可以添加或者修改。接着,就可以执行如下命令安装一些基础依赖软件包:
1
yum -y
install
apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel pkgconfig
如果安装过程中,没有出错,则可以正常进行下一步,如果出现错误,可能会影响后面的安装过程。
- 安装PCRE软件包
1
tar
jxvf pcre-8.33.
tar
.bz2
2
cd
pcre-8.33
3
./configure --prefix=/usr --libdir=/usr/lib64
4
make
5
make
install
- 安装confuse软件包
1
tar
zxvf confuse-2.7.
tar
.gz
2
cd
confuse-2.7
3
./configure CFLAGS=-fPIC --disable-nls
4
make
5
make
install
- 安装rrdtool软件包
1
tar
xvzf rrdtool-1.4.7.
tar
.gz
2
cd
rrdtool-1.4.7/
3
./configure
4
make
5
make
install
6
7
ln
-s /opt/rrdtool-1.4.7/lib/librrd.so.4 /usr/lib64/librrd.so.4
8
ln
-s /opt/rrdtool-1.4.7/lib/librrd.so.4 /usr/lib64/librrd.so
rrdtool默认会安装到/opt/rrdtool-1.4.7目录下面。
- 安装PHP软件包
1
tar
xvzf php-5.5.14.
tar
.gz
2
cd
php-5.5.14
3
./configure --
enable
-fpm
4
make
5
make
install
6
cd
/usr/
local
/etc/
7
cp
php-fpm.conf.default php-fpm.conf
修改配置文件/usr/local/etc/php-fpm.conf,在php-fpm.conf中找到如下行:
1
;security.limit_extensions = .php .php3 .php4 .php5
将配置行修改为如下内容:
1
security.limit_extensions = .php .php3 .php4 .php5 .htm .html .png .jpeg .gif .jpg .js .css
因为Ganglia Web监控是PHP实现的,我们需要保证对于一些图片或者脚本都能够正常加载,才能够浏览到直观完整的图形界面,便于监控理解。
启动fpm,执行如下命令:
1
/usr/
local
/sbin/php-fpm
验证php-fpm启动成功,可以执行如下命令:
1
ps
-ef |
grep
php-fpm
如果能够看到类似如下的几个进程表示启动成功:
1
root 9440 1 0 13:57 ? 00:00:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
2
nobody 9441 9440 0 13:57 ? 00:00:00 php-fpm: pool www
3
nobody 9442 9440 0 13:57 ? 00:00:00 php-fpm: pool www
- 安装配置Ganglia
1
tar
xvzf ganglia-3.6.0.
tar
.gz
2
cd
ganglia-3.6.0
3
./configure --with-gmetad --with-librrd=/opt/rrdtool-1.4.7 --prefix=/usr/
local
/ganglia --
enable
-gexec --
enable
-status
4
make
5
make
install
6
7
cp
/root/ganglia_install/ganglia-3.6.0/gmetad/gmetad.init /etc/init.d/gmetad
修改配置文件/etc/init.d/gmetad,将配置行GMETAD=/usr/sbin/gmeta的内容修改为:
1
GMETAD=/usr/
local
/ganglia/sbin/gmetad
修改配置文件/usr/local/ganglia/etc/gmetad.conf,将默认的data_source “my cluster” localhost修改为:
1
data_source "log server" 10.10.2.245:8652
2
data_source "hadoop" 10.10.3.104:8653
3
data_source "data upload" 10.10.3.22:8654
这里,配置了3个监控组,每个组对应的数据源名称,已经对应的服务器地址和端口信息。我们知道,Ganglia集群的组成类似自包含的结构,亦即,Ganglia集群由主进程gmetad和多个gmond从进程集群组成,而每个gmond从进程集群又存在一个主gmond进程,其他的为从gmond进程,所以上面配置的每个data_source对应的IP:端口可以看成是gmond从进程集群的主gmond进程。
增加grid内容,如下所示:
1
gridname "kaola statistics"
增加rrd数据库路径:
1
rrd_rootdir "/usr/local/ganglia/rrds"
需要保证/usr/local/ganglia/rrds存在,不存在则手动创建,并修改目录属主:
1
mkdir
-p /usr/
local
/ganglia/rrds
2
chown
nobody:nobody -R /usr/
local
/ganglia/rrds
- 安装ganglia-web
执行如下命令:
01
tar
xvzf ganglia-web-3.5.9.
tar
.gz
02
cd
/usr/
local
/ganglia/
03
mkdir
web
04
cd
web
05
cp
-r /root/ganglia_install/ganglia-web-3.5.9.
tar
.gz
06
tar
xvzf ganglia-web-3.5.9.
tar
.gz
07
mv
ganglia-web-3.5.9 ganglia
08
cd
ganglia
09
mkdir
-p dwoo/compiled
10
mkdir
-p dwoo/cache
11
chown
nobody:nobody -R /usr/
local
/ganglia/web
修改配置文件/usr/local/ganglia/web/ganglia/conf_default.php,修改内容如下所示:
修改gweb_confdir变量,将
1
$conf
[
'gweb_confdir'
] =
"/var/lib/ganglia-web"
;
修改为:
1
$conf
[
'gweb_confdir'
] =
"/usr/local/ganglia/web/ganglia"
;
修改gmetad_root变量,将
1
$conf['gmetad_root'] = "/var/lib/ganglia";
修改为:
1
$conf
[
'gmetad_root'
] =
"/usr/local/ganglia"
;
修改rrdtool变量,将
1
$conf
[
'rrdtool'
] =
"/usr/bin/rrdtool"
;
修改为:
1
$conf
[
'rrdtool'
] =
"/opt/rrdtool-1.4.7/bin/rrdtool"
;
- 安装Nginx
安装Nginx反向代理软件:
1
tar
xvzf nginx-1.6.0.
tar
.gz
2
cd
nginx-1.6.0
3
./configure --prefix=/usr/
local
/nginx
4
make
5
make
install
修改配置文件/usr/local/nginx/nginx.conf,在server中增加如下配置内容:
1
location /ganglia/ {
2
root /usr/local/ganglia/web;
3
fastcgi_pass 127.0.0.1:9000;
4
fastcgi_index index.php;
5
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
6
include fastcgi_params;
7
}
根据需要修改Nginx的其他配置,例如,可以修改worker_processes的值:
1
worker_processes 2;
启动Nginx服务:
1
/usr/
local
/nginx/sbin/nginx
- 启动ganglia服务
启动ganglia:
1
service gmetad start
这时,需要查看一下启动状态:
1
service gmetad status
如果失败,先停掉服务:
1
service gmetad stop
然后根据提示信息排查错误,可以查看/var/log/messages来定位错误,修改相应的配置,例如出现错误:
1
Jul 17 14:01:45 WSKJ_BJPBS-C10_MD08_i10_2013111204 /usr/local/ganglia/sbin/gmetad[9678]: Please make sure that /usr/local/ganglia/rrds is owned by nobody
上面错误说明目录文件/usr/local/ganglia/rrds的属主信息有问题,可以根据提示修改属主即可。
Ganglia代理安装配置
Ganglia代理,即gmond进程,用来收集监控数据,需要在待监控的节点上安装配置后才能够正常工作。在每个待监控的节点上安装配置步骤都非常类似,下面介绍安装配置步骤:
- 安装基础依赖软件包
与安装gmetad类似,首先保证yum源可用,可以查看或者修改,在目录下面/etc/yum.repo.d/可以添加或者修改。接着,就可以执行如下命令安装一些基础依赖软件包:
1
yum -y
install
apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel pkgconfig
如果安装过程中,没有出错,则可以正常进行下一步,如果出现错误,可以根据错误提示安装缺失的软件包,否则可能会影响后面的安装过程。
- 安装PCRE软件包
1
tar
jxvf pcre-8.33.
tar
.bz2
2
cd
pcre-8.33
3
./configure --prefix=/usr --libdir=/usr/lib64
4
make
5
make
install
- 安装配置gmond服务
1
tar
zxvf ganglia-3.6.0.
tar
.gz
2
cd
ganglia-3.6.0
3
./configure --prefix=/usr/
local
/ganglia --
enable
-gexec --
enable
-status
4
make
5
make
install
生成gmond配置文件:
1
./gmond -t > /usr/
local
/ganglia/etc/gmond.conf
修改/usr/local/ganglia/etc/gmond.conf配置文件,根据我们安装配置gmetad配置的data_source “hadoop” 10.10.3.104:8653,需要修改如下内容:
01
# 指定在gmetad中配置的data_source名称hadoop,对应于这里的cluster的name值
02
cluster {
03
name = "hadoop"
04
owner = "unspecified"
05
latlong = "unspecified"
06
url = "unspecified"
07
}
08
09
# 修改端口号,与gmetad配置的data_source "hadoop" 10.10.3.104:8653保持一致
10
udp_send_channel {
11
mcast_join = 239.2.11.71
12
port = 8653
13
ttl = 1
14
}
15
16
# 修改端口号,与gmetad配置的data_source "hadoop" 10.10.3.104:8653保持一致
17
udp_recv_channel {
18
mcast_join = 239.2.11.71
19
port = 8653
20
bind = 239.2.11.71
21
retry_bind = true
22
}
23
24
# 修改端口号,与gmetad配置的data_source "hadoop" 10.10.3.104:8653保持一致
25
tcp_accept_channel {
26
port = 8653
27
gzip_output = no
28
}
29
30
# 修改被监控主机信息
31
host {
32
location = "dataNode"
33
}
将/root/ganglia_install/ganglia-3.6.0/gmond/gmond.init复制到/etc/init.d/目录下,并改名为gmond,执行如下命令:
1
cp
/root/ganglia_install/ganglia-3.6.0/gmond/gmond.init /etc/init.d/gmond
修改/etc/init.d/gmond脚本文件,将GMOND=/usr/sbin/gmond修改为/usr/local/ganglia/sbin/gmond,然后,就可以启动gmond进程了,执行如下命令:
1
service gmond start
查看gmond服务启动状态:
1
service gmond status
如果希望加入开机启动,可以执行如下命令:
1
chkconfig --add gmond
至此,就完成了gmond服务的配置,对于其它待监控的节点上,安装配置gmond服务的过程是类似的。
Ganglia集群配置验证
将上面对应的gmetad服务和gmond服务配置完成,启动以后,可以通过查看gmetad服务器的Web监控页面,示例如图所示:
上面是Ganglia监控Web首页图,根据我们在/usr/local/ganglia/etc/gmetad.conf中配置的3个data_source进行分组统计分析监控数据,并以为分组的形式展示了一些监控的概要信息,如果想要查看某个data_source更详细的信息,可以直接选择下方的3个蓝色的图标链接,可以看到某个data_source组下多个节点的综合监控数据和图形,例如我们以其中配置的几台Hadoop节点为例,监控数据展示形式如下图所示:
这时,可以继续深入到每个节点中,查看每个节点的监控数据。
- 安装配置实践Ganglia-监控集群
- CentOS-5.9系统下Ganglia-3.6.0监控集群安装配置实践
- CentOS-6.3系统下Ganglia-3.6.0监控集群安装配置实践
- hadoop集群配置Ganglia监控
- ganglia监控hadoop集群配置
- 安装ganglia监控hadoop集群
- Ganglia监控Hadoop及Hbase集群性能(安装配置)
- Linux下Ganglia集群监控安装、配置笔记
- wang-----Ganglia监控Hadoop及Hbase集群性能(安装配置)
- Ganglia监控Hadoop及Hbase集群性能(安装配置)
- Ganglia监控Hadoop及Hbase集群性能(安装配置)
- ganglia分布式服务器集群监控系统的安装配置
- 云监控 Ganglia 安装配置
- flume之集群监控 Ganglia 部署配置
- Ganglia分布式集群监控系统安装手册
- centos下安装ganglia监控hadoop集群
- Ganglia监控Hadoop集群的安装部署
- Ganglia分布式集群监控系统安装手册
- mybatis+maven 环境搭建
- VIM 打开文件和切换窗口
- MySQL 实现树形的遍历(关于多级菜单栏以及多级上下部门的查询问题)
- MyBatis入门教程(三):优化配置文件
- python继承
- 安装配置实践Ganglia-监控集群
- 用OTL库连接读取access数据库
- linux的umask拿走权限命令以及linux常用命令及概念
- scanf()导致死循环且fflush(stdin)无效详解
- MySQL中进行树状所有子节点的查询
- IOS静态库开发
- final和static 的 区别是什么?
- 在ORACLE中删除表中的重复数据
- windows 64位系统配置安装Memcache缓存