CentOS-5.9系统下Ganglia-3.6.0监控集群安装配置实践
来源:互联网 发布:java 数据一致性 编辑:程序博客网 时间:2024/05/01 02:25
CentOS-5.9系统下Ganglia-3.6.0监控集群安装配置实践
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个守护进程:
o gmond
gmond相当于一个代理(agent)服务进程,它被部署在待监控的各个节点上,主要负责与宿主节点操作系统交互,获取到节点的一些监控数据,如CPU负载、磁盘容量、内存容量、网络状况等等。gmond进程收集到很多监控的元数据信息后,等待gmetad周期性地轮询这些信息。gmond进程运行时给系统带来的负载是非常小的,从而不会影响用户应用程序性能。
从《Monitoring with Ganglia》一书中引用一个给出的gmond架构图,如图所示:
这是2个gmond集群,每个集群有一个是主节点,其余的是从节点,主节点上的gmond服务与该gmond集群中其它从节点通信收集监控数据,gmond集群中的主节点通过组播的方式与gmetad服务器通信。
o gmetad
gmetad可以看成是Ganglia集群的Master,它采用poll的方式,主动与集群中各个gmond进程交互,周期性地轮询每个gmond进程收集到的元数据,然后存储到RRD数据库中,为Web展示监控数据做准备。
o gweb
gweb进程主要是用来展示展示gmetad进程从各个节点上轮询到的监控元数据,这里,用来展示的数据,实际上是经过RRDTool这个工具处理过的。
下面,是我在CentOS-5.9系统下的安装配置实践,系统为64位。
Ganglia服务器安装配置
安装Ganglia服务器,需要用到的软件包,如下所示:
o pcre-8.33.tar.bz2
o confuse-2.7.tar.gz
o rrdtool-1.4.7.tar.gz
o php-5.5.14.tar.gz
o ganglia-3.6.0.tar.gz
o ganglia-web-3.5.9.tar.gz
o nginx-1.6.0.tar.gz
下面介绍安装和配置的过程:
o 安装基础依赖软件包
首先保证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
如果安装过程中,没有出错,则可以正常进行下一步,如果出现错误,可能会影响后面的安装过程。
o 安装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
o 安装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
o 安装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目录下面。
o 安装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
o 安装配置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
o 安装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";
o 安装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
o 启动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进程,用来收集监控数据,需要在待监控的节点上安装配置后才能够正常工作。在每个待监控的节点上安装配置步骤都非常类似,下面介绍安装配置步骤:
o 安装基础依赖软件包
与安装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
如果安装过程中,没有出错,则可以正常进行下一步,如果出现错误,可以根据错误提示安装缺失的软件包,否则可能会影响后面的安装过程。
o 安装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
o 安装配置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, 服务器 | Ganglia | 永久链接: http://shiyanjun.cn/archives/893.html.
- CentOS-5.9系统下Ganglia-3.6.0监控集群安装配置实践
- CentOS-6.3系统下Ganglia-3.6.0监控集群安装配置实践
- 安装配置实践Ganglia-监控集群
- centos下安装ganglia监控hadoop集群
- CentOS下安装与配置Ganglia监控Hadoop集群及HBase
- ganglia分布式服务器集群监控系统的安装配置
- Linux下Ganglia集群监控安装、配置笔记
- Ganglia分布式集群监控系统安装手册
- Ganglia分布式集群监控系统安装手册
- Ganglia分布式集群监控系统安装手册
- centos集群上安装ganglia-3.6.0监控hadoop-2.2.0和hbase-0.96.0
- centos集群上安装ganglia-3.6.0监控hadoop-2.2.0和hbase-0.96.0
- 【Ganglia】集群监控系统搭建
- hadoop集群配置Ganglia监控
- ganglia监控hadoop集群配置
- 安装ganglia监控hadoop集群
- 集群下的ganglia多点系统监控原理
- Ganglia监控Hadoop及Hbase集群性能(安装配置)
- 小米前端面试
- C#回顾
- 面向对象的三个基本元素,五个基本原则
- pypy优点
- nyoj 914 Yougth的最大化(贪心+二分搜索)
- CentOS-5.9系统下Ganglia-3.6.0监控集群安装配置实践
- 电子工程师标配十款经典RF射频器件
- vim插件之快速切换头(.h)/源(.c,.cpp,.cc)文件——a.vim
- 编程珠玑之第二章习题7
- Java学习--面向对象编程
- c++_primer_exercise_1120
- 学完JAVA基础
- 实习篇---第三十五天
- 关于Eclipse创建Android项目时,会多出一个appcompat_v7的问题