太久没写博客了,突然心血来潮,记录下自己折腾了一个上午的ganglia安装流程。
安装:
tar -xz -f expat-2.1.0.tar.gz && cd expat-2.1.0 ./configure --prefix=/apps/svr/expat-2.1.0 make && make install tar -xz -f confuse-2.7.tar.gz && cd confuse-2.7 ./configure --prefix=/apps/svr/confuse-2.7 CFLAGS=-fPIC --disable-nls make && make install #如果系统是64位的还需要(编译ganglia时候需要用到该库):cp -a /apps/svr/confuse-2.7/lib /apps/svr/confuse-2.7/lib64 tar -xz -f apr-1.6.2.tar.gz && cd apr-1.6.2 ./configure --prefix=/apps/svr/apr-1.6.2 make && make install #因为ganglia编译时候会去/apps/svr/apr-1.6.2/include下寻找库文件,所以需要做:cp -a /apps/svr/apr-1.6.2/include/apr-1/* /apps/svr/apr-1.6.2/include/ ,如果系统是64位的还需要:cp -a /apps/svr/apr-1.6.2/lib /apps/svr/apr-1.6.2/lib64 tar -xz -f pcre-8.32.tar.gz && cd pcre-8.32 ./configure --prefix=/apps/svr/pcre-8.32 make && make install tar -xz -f rrdtool-1.5.0.tar.gz && cd rrdtool-1.5.0 ./configure --prefix=/apps/svr/rrdtool-1.5.0 --disable-tcl make && make install tar -xz -f httpd-2.2.34.tar.gz && cd httpd-2.2.34 ./configure --prefix=/apps/svr/httpd-2.2.34 --enable-so --enable-mods-shared=most make && make install #复制源码包(httpd-2.2.34/build/httpd.init)启动脚本去/apps/sh,修改:httpd=${HTTPD-/apps/svr/httpd-2.2.34/bin/httpd} pidfile=${PIDFILE-/apps/run/httpd/httpd.pid} CONFFILE=/apps/svr/httpd-2.2.34/conf/httpd.conf 修改/apps/svr/httpd-2.2.34/conf/httpd.conf User apps Group apps #添加index.php
DirectoryIndex index.html index.php
#在最后添加下面三行: AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps PidFile "/apps/run/httpd/httpd.pid" #做标准化软链接 mv /apps/svr/httpd-2.2.34/log /apps/logs/httpd ln -s /apps/logs/httpd /apps/svr/httpd-2.2.34/logs ln -s /apps/svr/httpd-2.2.34/conf /apps/conf/httpd tar -xz -f php-5.5.38.tar.gz && cd php-5.5.38 ./configure --prefix=/apps/svr/php-5.5.38 --with-apxs2=/apps/svr/httpd-2.2.34/bin/apxs make && make install tar -xz -f ganglia-3.7.2.tar.gz && cd ganglia-3.7.2 ./configure --prefix=/apps/svr/ganglia-3.7.2 --with-librrd=/apps/svr/rrdtool-1.5.0 --with-libapr=/apps/svr/apr-1.6.2 --with-libexpat=/apps/svr/expat-2.1.0 --with-libconfuse=/apps/svr/confuse-2.7 --with-libpcre=/apps/svr/pcre-8.23 --enable-gexec --enable-status --with-gmetad --with-static-modles --sysconfdir=/apps/conf/ganglia make && make install #从源码包复制gmetad服务启动脚本去/apps/sh:cp gmetad/gmetad.init /apps/sh 修改gmetad.init vim /apps/sh/gmetad.init 将GMETAD=/usr/sbin/gmetad修改为GMETAD=/apps/svr/ganglia-3.7.2/sbin/gmetad 将daemon $GMETAD 修改为daemon $GMETAD -c /apps/conf/ganglia/gmetad.conf 修改/apps/conf/gmetad.conf 的rrd_rootdir "/apps/data/ganglia/rrds" 让收集的监控数据放在/apps/data目录下, setuid_username "apps" 启动用户 #如果需要在本机启动gmond,从源码包复制gmond服务启动脚本去/apps/sh:cp gmond/gmond.init /apps/sh ,在源码包执行./gmond -t > /apps/conf/ganglia/gmond.conf 修改/apps/sh/gmond.sh: 将GMOND=/usr/sbin/gmond修改为GMOND=/apps/svr/ganglia-3.7.2/sbin/gmond 将daemon $GMOND 修改为daemon $GMOND -c /apps/conf/ganglia/gmond.conf 安装ganglia-web: tar -xz -f ganglia-web-3.7.2.tar.gz && cd ganglia-web-3.7.2 修改:Makefile: GDESTDIR = /apps/svr/httpd-2.2.34/htdocs/ganglia APACHE_USER = apps GCONFDIR = /apps/conf/ganglia-web GWEB_STATEDIR = /apps/lib/ganglia-web GMETAD_ROOTDIR = /apps/lib/ganglia make install #显示:(rsync --exclude "rpmbuild" --exclude "*.gz" --exclude "Makefile" --exclude "*debian*" --exclude "ganglia-web-3.5.2" --exclude ".git*" --exclude "*.in" --exclude "*~" --exclude "#*#" --exclude "ganglia-web.spec" -a . ganglia-web-3.5.2 mkdir -p //apps/lib/ganglia/dwoo/compiled && \ mkdir -p //apps/lib/ganglia/dwoo/cache && \ mkdir -p //apps/lib/ganglia && \ rsync -a ganglia-web-3.5.2/conf/ //apps/lib/ganglia/conf && \ rsync --exclude "conf" -a ganglia-web-3.5.2/* //apps/svr/httpd-2.2.34/htdocs/ganglia && \ chown -R apps:apps //apps/lib/ganglia/dwoo //apps/lib/ganglia/conf) #设置ganglia-web的php读取gmetad数据,cp /apps/svr/httpd-2.2.34/htdocs/ganglia/conf_default.php /apps/svr/httpd-2.2.34/htdocs/ganglia/conf.php,修改其中几项内容: $conf['gweb_confdir'] = "/apps/lib/ganglia-web" $conf['gmetad_root'] = "/apps/data/ganglia"; $conf['rrds'] = "${conf['gmetad_root']}/rrds $conf['rrdtool'] = "/apps/svr/rrdtool-1.5.0/bin/rrdtool" 启动前:chown apps:apps /apps -R && cd /apps/sh ./gmond.init start ./gmetad.init start ./httpd.init start
直接读取监控数据:除 了使用ganglia内置的网页页面外,也可以自行得到xml文件去进行自己的分析。通常需要自己编写一个脚本来完成该任务。通过直接telnet gmond或者gmetad的tcp服务监听端口,可以直接得到xml文件,然后我们就可以对该xml文件进行需要的处理了。在单播模式下,应该 telnet那个gmond的中央节点,登录该节点才能得到集群内所有节点的信息,否则只能得到单独节点的信息。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201669.html原文链接:https://javaforall.net
