分布式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 start
sudo service ganglia-monitor start
sudo mv /usr/share/ganglia-webfrontend/ /var/www/ganglia
然后访问就行了!!!
下面是CentOS的安装过程 ~
#基础的开发包
yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng
libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel
gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2
libxml2-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.rpm
wget ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el5/en/x86_64/dag/RPMS/libconfuse-devel-2.6-2.el5.rf.x86_64.rpm
rpm -ivh libconfuse*.rpm
#安装绘图工具:rrdtool
cd /root/tools
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz
tar zvxf rrdtool-1.4.5.tar.gz
cd rrdtool-1.4.5
./configure –prefix=/usr/local/rrdtool
make && make install
cd ..
#推荐大家直接用
yum -y install rrdtool
ln -s /usr/local/rrdtool/include/rrd.h /usr/include/rrd.h
ln -s /usr/local/rrdtool/lib/librrd.a /usr/lib/librrd.a
#大家也可以用yum的安装方法,yum的话,相对简单了很多 !!!epel源的ganglia是3.1的版本,要是想要最新的可以源码的安装
#安装ganglia
wget http://cdnetworks-kr-2.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.2.0/ganglia-3.2.0.tar.gz
tar zxvf ganglia-3.2.0.tar.gz
cd ganglia-3.2.0
./configure –prefix=/usr/local/ganglia –sysconfdir=/usr/local/ganglia –with-gmetad
make && make install
cd ..
客户端的安装就简单了~
./configure
make
make install
#这样就行了,要是有报错,大家搜搜问题所在
#网站目录
cd /root/tools/ganglia-3.2.0
cp -Rf web /var/www/html/ganglia
chown -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/gmetad
cp 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/rrds
mkdir -p /var/lib/ganglia/dwoo/
chown apache:apache /var/lib/ganglia/dwoo
chown apache:apache /var/lib/ganglia/rrds
相关阅读: