分布式ganglia自定义扩展监控及集群环境下的实施

今天和朋友聊起ganglia来,他想做性能分析,一开始选择是zabbix了,后来改成ganglia了,我的回答是 ganglia更适合做这些东西。 好多朋友不会ganglia,甚至没有接触过ganglia,这样我就先简单介绍下ganglia。

与Cacti、Nagios、Zabbix等工具相比,Ganglia 更多地与收集度量数据并随时跟踪这些数据有关,可以用于集群的性能监控、分析和优化。

Ganglia就是这样一种工具。Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。Ganglia主要监控集群的性能指标,如cpu 、mem、硬盘利用率, I/O负载、网络流量情况等, 也可以监控自定义的性能指标。通过Ganglia绘制的曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

还有就是ganglia客户端gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。

上面话有些官方:

我自己的理解是,让ganglia收集性能信息,更好的做服务性能的分析。

ganglia的框架:

每个被检测的节点或集群运行一个gmond进程,进行监控数据的收集、汇总和发送。gmond即可以作为发送者(收集本机数据),也可以作为接收者(汇总多个节点的数据)。

通常在整个监控体系中只有一个gmetad进程。该进程定期检查所有的gmonds,主动收集数据,并存储在RRD存储引擎中。

ganglia-web是使用php编写的web界面,以图表的方式展现存储在RRD中的数据。通常与gmetad进程运行在一起。

对于ganglia分布式的理解,可以看下面的图~

在安装前先说明下,ganglia的安装会遇见各种各样的问题的,遇到问题可以搜,也可以找我问的。

要是大家没有这个耐心,可以先用ubuntu跑一个

在Ubuntu上安装Ganglia非常简单,首先安装下面三个包。因为要使用Web服务器才能看到图表,所以如果没有安装apache的话,会自动安装apache服务器。

sudo apt-get install ganglia-monitor ganglia-webfront

安装完成之后,gmetad和gmond两个服务会运行起来,使用下面的命令可以启动这两个服务。

sudo service gmetad startsudo service ganglia-monitor startsudo mv /usr/share/ganglia-webfrontend/ /var/www/ganglia

然后访问就行了!!!

下面是centos的安装过程 ~

#基础的开发包

yum -y install ntp make openssl openssl-devel pcre pcre-devel libpnglibpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-develgcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel

#安装lamp环境:

yum -y install httpd mysql mysql-server mysql-connector-odbc php php-mysql php-common php-pdo apr apr-util* pcre pcre-devel

wget ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el5/en/x86_64/dag/RPMS/libconfuse-2.6-2.el5.rf.x86_64.rpmwget ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el5/en/x86_64/dag/RPMS/libconfuse-devel-2.6-2.el5.rf.x86_64.rpmrpm -ivh libconfuse*.rpm

#安装绘图工具:rrdtool

cd /root/toolswget tar zvxf rrdtool-1.4.5.tar.gzcd rrdtool-1.4.5./configure –prefix=/usr/local/rrdtoolmake && make installcd ..

#推荐大家直接用

yum -y install rrdtoolln -s /usr/local/rrdtool/include/rrd.h /usr/include/rrd.hln -s /usr/local/rrdtool/lib/librrd.a /usr/lib/librrd.a

#大家也可以用yum的安装方法,yum的话,相对简单了很多 !!!epel源的ganglia是3.1的版本,要是想要最新的可以源码的安装

#安装ganglia

wget %20monitoring%20core/3.2.0/ganglia-3.2.0.tar.gztar zxvf ganglia-3.2.0.tar.gzcd ganglia-3.2.0./configure –prefix=/usr/local/ganglia –sysconfdir=/usr/local/ganglia –with-gmetadmake && make installcd ..

客户端的安装就简单了~

./configuremakemake install

#这样就行了,要是有报错,大家搜搜问题所在

#网站目录

cd /root/tools/ganglia-3.2.0cp -Rf web /var/www/html/gangliachown -R apache.apache /var/www/html/ganglia

#修改RRDTOOL的路径:

vi /var/www/html/ganglia/conf.php

修改约33行成如下:

which rrdtool看看rrdtool的位置是在那里

33 define(“RRDTOOL”, “/usr/local/rrdtool/bin/rrdtool”);

#生成启动程序

cp gmetad/gmetad.init /etc/rc.d/init.d/gmetadcp gmond/gmond.init /etc/rc.d/init.d/gmond

#开机自启动

chkconfig gmetad on

chkconfig gmond on

#被监控端的配置文件

gmond/gmond -t | tee /usr/local/ganglia/gmond.conf

#生成服务器端的配置文件

cp gmetad/gmetad.conf /usr/local/ganglia/

#存放rrdtool数据的目录

mkdir -p /var/lib/ganglia/rrdsmkdir -p /var/lib/ganglia/dwoo/chown apache:apache /var/lib/ganglia/dwoochown apache:apache /var/lib/ganglia/rrds

gmetad.conf是服务器端的配置文件,其中里面最重要的参数是data_source,他是来定义被监控端的。例如:data_source “db1” 10.10.10.73

db1表示集群的名字,后面的ip是是被监控端的ip。Ok,这时候服务器端就可以启动了。

vim gmond.conf

cluster{name= “db1”owner= “unspecified”latlong = “unspecified”url =”unspecified”}

需要注意的是,你的配置文件里面的url要能访问nginx_status页面得到数据。

gmond是一个守护进程,运行在主机上,并在TCP的8649端口侦听。远程主机可以通过8649端口获取以xml文件格式显示的各项主机的性能参数。

telnet localhost 8649 > 123.txt

能看到他的收集到的信息。

家门前的那条小路,到底通向了什么样的远方呢?

分布式ganglia自定义扩展监控及集群环境下的实施

相关文章:

你感兴趣的文章:

标签云: