Ganglia 监控安装介绍

前言


Ganglia 开源集群监视系统主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过可视化图形界面,很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能

本文ganglia工作原理不做介绍,只是从部署的角度出发,安装的过程还是比较繁琐,依赖库太多。

Ganglia 监控安装介绍_第1张图片


主机环境

192.168.11.213 CentOs 6.5  x86_64 GNU/Linux  --服务主节点
192.168.11.214 CentOs 6.5  x86_64 GNU/Linux  --监控节点
192.168.11.215 CentOs 6.5  x86_64 GNU/Linux  --监控节点

安装路径

ganglia安装路径             /usr/local/ganglia
PHP安装路径                 /usr/local/php
apache安装路径              /usr/local/apache2
ganglia-web安装路径         /home/ganglia/ganglia-web-3.5.10
RRDTOOL 数据库路径          /export/home/ganglia/rrds

编译安装

在unbuntu或者CentOS可以连接互联网的情况下安装非常方便直接用apt或者yum工具直接安装即可,一些复杂的依赖包都自动安装好,非常方便,下面我主要介绍下源码安装。

查看源码包ganglia-3.6.0\INSTALL文件,可以清楚知道Ganglia依赖的包。

ganglia安装依赖包
* APR (http://apr.apache.org/)	
* libConfuse (http://www.nongnu.org/confuse/)
* expat (http://expat.sourceforge.net/)
* pkg-config (http://www.freedesktop.org/wiki/Software/pkg-config)
* python (http://www.python.org/)
* PCRE (http://www.pcre.org/)
* RRDtool (http://oss.oetiker.ch/rrdtool/)


下面按照官网的方法一步一步的安装

重点介绍下RRDTool的源码安装,这个相对其他的最为复杂。

官方给的文档很有意思,叫OPTIMISTIC BUILD,叫最乐观的状况,下载源码包直接编译OK,一般不大可能。

我们也可以检查一下。

 BUILD_DIR=/tmp/ganglia-build

 INSTALL_DIR=/usr/local/ganglia

注意:因为我是在虚拟机上执行的所有的权限都有,一般/tmp和/opt目录没有权限需要更换目录。

 mkdir -p $BUILD_DIR
 cd $BUILD_DIR
 wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.8.tar.gz
 gunzip -c rrdtool-1.4.8.tar.gz | tar xf -
 cd rrdtool-1.4.8
 ./configure --prefix=$INSTALL_DIR && make && make install

不出意外会报缺少一系列依赖库没有,several missing libraries。

Rrdtool安装依赖包
  pkgconfig
  zlib
  libpng
  f reetype
  LibXML2
  fontconfig
  Pixman
  Cairo
  Glib
  Pango

也许你觉得很奇怪glibc系统中已经有了,为什么还要安装?因为太老了,在红帽linux系统中可以直接用rpm -qi glibc 看下glibc的版本,我看了下我们环境glibc的版本都是2.12版本的。当然glibc 2.12 的可以直接用,但是为了方便迁移部署还是统一安装一下。

 

注意:机型不一样,编译方式也是不一样,不一一举例,先以linux系统为例,其他系统如AIX Solaris HPUX 还是有区别的。

Linux  

设置环境变量,直接指定动态库搜索路径

export LDFLAGS="-Wl,--rpath -Wl,${INSTALL_DIR}/lib"
export MAKE=make

Building pkgconfig

 wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz
 gunzip -c pkg-config-0.23.tar.gz | tar xf -
 cd pkg-config-0.23
 ./configure --prefix=$INSTALL_DIR 
 $MAKE
 sudo $MAKE install

export PKG_CONFIG=$INSTALL_DIR/bin/pkg-config

(最好添加到环境变量中,以免打开另外的窗口就失效了。)

Building zlib

 cd $BUILD_DIR
 wget http://oss.oetiker.ch/rrdtool/pub/libs/zlib-1.2.3.tar.gz
 gunzip -c zlib-1.2.8.tar.gz | tar xf -
 cd zlib-1.2.8
 ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" --shared
 $MAKE
 sudo  $MAKE install

Building libpng

 cd $BUILD_DIR
 wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.18.tar.gz
 gunzip -c libpng-1.2.18.tar.gz | tar xf -
 cd libpng-1.2.18
 env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR
 $MAKE
 sudo  $MAKE install

Building freetype

 cd $BUILD_DIR
 wget http://oss.oetiker.ch/rrdtool/pub/libs/freetype-2.3.5.tar.gz
 gunzip -c freetype-2.3.5.tar.gz | tar xf -
 cd freetype-2.3.5
 ./configure --prefix=$INSTALL_DIR 
 $MAKE
 sudo  $MAKE install

Building LibXML2

 cd $BUILD_DIR
 wget http://oss.oetiker.ch/rrdtool/pub/libs/libxml2-2.6.32.tar.gz
 gunzip -c libxml2-2.6.32.tar.gz | tar xf -
 cd libxml2-2.6.32
 ./configure --prefix=$INSTALL_DIR 
 $MAKE
 sudo  $MAKE install

Building fontconfig

 cd $BUILD_DIR
 wget http://oss.oetiker.ch/rrdtool/pub/libs/fontconfig-2.4.2.tar.gz
 tar -xzvf fontconfig-2.4.2.tar.gz
 cd fontconfig-2.4.2
 ./configure 
  --prefix=$INSTALL_DIR  --with-freetype-config=$INSTALL_DIR/bin/freetype-config
 $MAKE
 sudo  $MAKE install

Building Pixman

 cd $BUILD_DIR
 wget http://oss.oetiker.ch/rrdtool/pub/libs/pixman-0.10.0.tar.gz
 gunzip -c pixman-0.10.0.tar.gz  | tar xf -
 cd pixman-0.10.0
 ./configure --prefix=$INSTALL_DIR 
 $MAKE
 sudo  $MAKE install

Building Cairo

 cd $BUILD_DIR
 wget http://oss.oetiker.ch/rrdtool/pub/libs/cairo-1.6.4.tar.gz
 gunzip -c cairo-1.6.4.tar.gz   | tar xf -
 cd cairo-1.6.4
 ./configure --prefix=$INSTALL_DIR \
    --enable-xlib=no \
    --enable-xlib-render=no \
    --enable-win32=no \
    CFLAGS="-O3 -fPIC"
 $MAKE
 sudo  $MAKE install

Building Glib

 cd $BUILD_DIR
 wget http://oss.oetiker.ch/rrdtool/pub/libs/glib-2.15.4.tar.gz
 gunzip -c glib-2.15.4.tar.gz  | tar xf -
 cd glib-2.15.4
 ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
 $MAKE
 sudo  $MAKE install

Building Pango

 cd $BUILD_DIR
 wget http://oss.oetiker.ch/rrdtool/pub/libs/pango-1.21.1.tar.bz2
 bunzip2 -c pango-1.21.1.tar.bz2 | tar xf -
 cd pango-1.21.1
 ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" --without-x
 $MAKE
 sudo  $MAKE install

Building rrdtool (second try)

 cd $BUILD_DIR/rrdtool-1.4.8
 ./configure --prefix=$INSTALL_DIR --disable-tcl --disable-python
 $MAKE clean
 $MAKE
 sudo  $MAKE install

上面每一步都执行成功,这次执行肯定是成功的,注意安装先$MAKE clean还是必要的,上次安装失败,可能还存在一下垃圾数据。

$INSTALL_DIR/share/rrdtool/examples/ 共享目录下面的例子可以验证是否安装成功

安装RRDtool只是第一步,下面安装一下Ganglia其他依赖包,相对就比较简单一点

Building APR 

 cd $BUILD_DIR
 tar -xzvf  apr-1.5.0.tar.gz 
 cd apr-1.5.0
 ./configure --prefix=$INSTALL_DIR
  $MAKE
 sudo  $MAKE install 

Building libConfuse 

 cd $BUILD_DIR
 tar -zxf confuse-2.7.tar.gz
 cd confuse-2.7
 ./configure  --prefix=$INSTALL_DIR CFLAGS=-fPIC --disable-nls
 $MAKE
 sudo  $MAKE install

Building expat 

cd $BUILD_DIR
tar -xzvf  expat-2.0.1.tar.gz
cd  expat-2.0.1
./configure --prefix=$INSTALL_DIR 
 $MAKE
 sudo  $MAKE install

Building python 

 cd $BUILD_DIR
 tar -jxf Python-2.7.3.tar.bz2
 ./configure --prefix=$INSTALL_DIR --enable-shared
 $MAKE
 sudo  $MAKE install

Building PCRE 

cd $BUILD_DIR
tar -xzvf   Python-2.7.6.tgz
./configure --prefix=$INSTALL_DIR 
 $MAKE
 sudo  $MAKE install

5.安装ganglia

注:Building 时候的一些参数配置说明,请参考源码包里面configure配置文档,有详细的英文说明,此处不做介绍。

Building gangliathe last

cd $BUILD_DIR
tar -zxf ganglia-3.6.0.tar.gz
cd ganglia-3.6.0
./configure --prefix=$INSTALL_DIR  --with-gmetad  --enable-gexec --with-python  --with-librrd=/home1/etl5/ganglia-3.6.0


Ganglia 监控安装介绍_第2张图片


5.1 安装ganglia-web (主节点安装)

tar -zxf ganglia-web-3.5.10.tar.gz -C /home/etl/ganglia/
cp conf_default.php conf.php
vi conf.php    调整为如下内容
$conf['gweb_confdir'] = " /home/etl/ganglia//ganglia-web-3.5.10";
$conf['gmetad_root'] = "/export/home/ganglia";
配置临时目录
cd /home/etl/ganglia//ganglia-web-3.5.10/dwoo
mkdir cache
chmod 777 cache
mkdir compiled
chmod 777 compiled


5.2 安装apache (主节点安装)

tar -zxf httpd-2.2.23.tar.gz
 cd httpd-2.2.23
--./configure --prefix=$INSTALL_DIR/apache2
 make && make install
 
./configure --prefix=$INSTALL_DIR  --with-apr=/home1/etl5/ganglia-3.6.0/bin/apr-1-config

5.3 安装php (主节点安装)

tar -zxf php-5.4.10.tar.gz
cd php-5.4.10
./configure --prefix=$INSTALL_DIR/php  --with-apxs2=$INSTALL_DIR/apache2/bin/apxs  
make  && make install
 
./configure --prefix=/home1/etl5/web-ganglia/php --with-apxs2=/home1/etl5/web-ganglia/apache2/bin/apxs --with-libxml-dir=/home1/etl5/ganglia-3.6.0

5.4 使用apache发布ganglia-web (主节点安装)

vi /usr/local/apache2/conf/httpd.conf

启动httpd服务

$INSTALL_DIR/apache2/bin/apachectl restart

6. 配置Ganglia

6.1  配置gmeted

vi /etc/init.d/gmetad  修改如下内容  --添加系统服务

GMETAD=$INSTALL_DIR/ganglia/sbin/gmetad
vi /usr/local/ganglia/etc/gmetad.conf     -- 修改如下内容
data_source "my-cluster" 10 node-1  node-2  node-3
xml_port 8651
interactive_port 8652
rrd_rootdir "$INSTALL_DIR/ganglia/rrds"
case_sensitive_hostnames 0

修改rrds数据目录所有者

chown -R nobody:nobody /export/home/ganglia/rrds

启动gmetad服务,并设为开机自动运行 

service gmetad restart

chkconfig --add gmetad

6.2 配置gmond

cd ganglia-3.6.0

cp ./gmond/gmond.init /etc/init.d/gmond

--添加系统服务

vi /usr/local/ganglia/etc/gmond.conf      -- 修改如下内容
cluster {
name = "my-cluster"

启动gmond服务,并设为开机自动运行

service gmond  start


部署迁移


注意:其他节点只需要将ganglia目录打包,直接迁移到指定的目录就可以了,监控节点配置gmond配置文件.
注意单播和组播方式配置略有不同。
单播:一般是服务器和被监控的Agent节点不在一个网段内,直接用IP来访问
组播:一般是服务器和被监控节点在一个网段里面。

监控界面

Ganglia 监控安装介绍_第3张图片

参考文档


Ganglia 官网

RRDTool 官网

云监控 Ganglia 安装步骤 (含python module)










你可能感兴趣的:(云监控)