雲監控 Ganglia 安裝步驟 (含python module)

文章轉載自:https://my.oschina.net/duangr/blog/181585      ,僅用於個人學習、收藏,轉載請註明原作者地址。

前言

最近在研究雲監控的相關工具,感覺ganglia頗有亮點,能從一個集羣整體的角度來展現數據. 但是安裝過程稍過複雜,相關依賴稍多,故寫此文章與大家分享下.

本文不講解相關原理,若想了解請參考其他資料. 

本文目的: 即使之前未觸過ganglia,也能按照文中步驟搭建自己的ganglia監控集羣.

@Author duangr

@Website http://my.oschina.net/duangr/blog/181585

1.相關環境

Host Name IP OS Arch
duangr-1 192.168.56.10 CentOS 6.4 x86_64
duangr-2 192.168.56.11 CentOS 6.4 x86_64
duangr-3 192.168.56.12 CentOS 6.4 x86_64


全部主機確認:

  • iptables關閉

  • SELinux disabled

2.部署規劃

監控服務主節點 duangr-1
被監控從節點

duangr-2
duangr-3


Ganglia監控服務的主節點需要安裝:

  • ganglia

  • ganglia-web

  • php

  • apache

Ganglia被監控從節點需要安裝:

  • ganglia

安裝路徑規劃

ganglia安裝路徑 /usr/local/ganglia
php安裝路徑
/usr/local/php
apache安裝路徑
/usr/local/apache2
ganglia-web安裝路徑
/export/home/ganglia/ganglia-web-3.5.10
rrds數據路徑
/export/home/ganglia/rrds

3.代碼獲取

4.前提依賴

4.1 主機環境檢查(全部主機節點)

# rpm -q gcc glibc glibc-common rrdtool rrdtool-devel apr  apr-devel expat expat-devel  pcre pcre-devel dejavu-lgc-sans-mono-fonts dejavu-sans-mono-fonts
gcc-4.4.7-3.el6.x86_64
glibc-2.14.1-6.x86_64
glibc-common-2.14.1-6.x86_64
rrdtool-1.3.8-6.el6.x86_64
rrdtool-devel-1.3.8-6.el6.x86_64
apr-1.3.9-5.el6_2.x86_64
apr-devel-1.3.9-5.el6_2.x86_64
expat-2.0.1-11.el6_2.x86_64
expat-devel-2.0.1-11.el6_2.x86_64
pcre-7.8-6.el6.x86_64
pcre-devel-7.8-6.el6.x86_64
dejavu-lgc-sans-mono-fonts-2.30-2.el6.noarch.rpm
dejavu-sans-mono-fonts-2.30-2.el6.noarch.rpm

若有缺失,請先安裝. 可通過如下幾個鏡像網站下載相關安裝包:

4.2 dejavu

rpm -ivh dejavu-lgc-sans-mono-fonts-2.30-2.el6.noarch.rpm
rpm -ivh dejavu-sans-mono-fonts-2.30-2.el6.noarch.rpm

4.3 rrdtool

rpm -ivh rrdtool-1.3.8-6.el6.x86_64.rpm
rpm -ivh rrdtool-devel-1.3.8-6.el6.x86_64.rpm

4.4 apr

rpm -ivh apr-1.3.9-5.el6_2.x86_64.rpm
rpm -ivh apr-devel-1.3.9-5.el6_2.x86_64.rpm

4.5 libexpat

rpm -ivh expat-2.0.1-11.el6_2.x86_64.rpm
rpm -ivh expat-devel-2.0.1-11.el6_2.x86_64.rpm

4.6 libpcre

rpm -ivh pcre-7.8-6.el6.x86_64.rpm
rpm -ivh pcre-devel-7.8-6.el6.x86_64.rpm

4.7 confuse

confuse-2.7  http://www.nongnu.org/confuse/

tar -zxf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls
make && make install

4.8 python

Python-2.7.3.tar.bz2   http://www.python.org/

tar -jxf Python-2.7.3.tar.bz2
./configure  --prefix=/usr/local  --enable-shared 
make && make install

配置共享庫

vi /etc/ld.so.conf

-- 增加如下內容
/usr/local/lib

啓用配置

ldconfig

檢查是否生效

ldconfig -v |grep "libpython2.7.so"

5.編譯安裝

5.1 安裝ganglia (全部節點都要安裝)

# tar -zxf ganglia-3.6.0.tar.gz
# cd ganglia-3.6.0
# ./configure --prefix=/usr/local/ganglia --with-gmetad --enable-gexec --with-python=/usr/local
Welcome to..
     ______                  ___
    / ____/___ _____  ____ _/ (_)___ _
   / / __/ __ `/ __ \/ __ `/ / / __ `/
  / /_/ / /_/ / / / / /_/ / / / /_/ /
  \____/\__,_/_/ /_/\__, /_/_/\__,_/
                   /____/

Copyright (c) 2005 University of California, Berkeley

Version: 3.6.0
Library: Release 3.6.0 0:0:0

Type "make" to compile.
# make && make install

5.2 安裝ganglia-web (主節點安裝)

# tar -zxf ganglia-web-3.5.10.tar.gz -C /export/home/ganglia/
# cd /export/home/ganglia/ganglia-web-3.5.10
# cp conf_default.php conf.php

vi conf.php    調整爲如下內容

$conf['gweb_confdir'] = "/export/home/ganglia/ganglia-web-3.5.10";
$conf['gmetad_root'] = "/export/home/ganglia";

vi header.php 

<?php
session_start();
ini_set('date.timezone','PRC');      --修改時區爲本地時區

if (isset($_GET['date_only'])) {
  $d = date("r");
  echo $d;
  exit(0);
}

配置臨時目錄

cd /export/home/ganglia/ganglia-web-3.5.10/dwoo
mkdir cache
chmod 777 cache
mkdir compiled
chmod 777 compiled

5.3 安裝apache (主節點安裝)

tar -zxf httpd-2.2.23.tar.gz
 cd httpd-2.2.23
 ./configure --prefix=/usr/local/apache2
 make && make install

5.4 安裝php (主節點安裝)

tar -zxf php-5.4.10.tar.gz
cd php-5.4.10
./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache2/bin/apxs  --with-mysql=/usr
make  && make install

5.5 使用apache發佈ganglia-web (主節點安裝)

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

....
Listen 80
....

<IfModule dir_module>
    DirectoryIndex index.html index.php
    AddType application/x-httpd-php .php
</IfModule>
....

# 在文件最後增加如下內容
# ganglia
Alias /ganglia "/export/home/ganglia/ganglia-web-3.5.10"
<Directory "/export/home/ganglia/ganglia-web-3.5.10">
     AuthType Basic
     Options None
     AllowOverride None
     Order allow,deny
     Allow from all
</Directory>

啓動httpd服務

/usr/local/apache2/bin/apachectl restart

6.配置Ganglia

6.1 配置gmetad (主節點配置)

cd ganglia-3.6.0
cp ./gmetad/gmetad.init /etc/init.d/gmetad
cp ./gmetad/gmetad.conf /usr/local/ganglia/etc/

vi /etc/init.d/gmetad  --修改如下內容

GMETAD=/usr/local/ganglia/sbin/gmetad

vi /usr/local/ganglia/etc/gmetad.conf     -- 修改如下內容

data_source "duangr-cluster" 10 duangr-1  duangr-2  duangr-3
xml_port 8651
interactive_port 8652
rrd_rootdir "/export/home/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 
./gmond/gmond -t > /usr/local/ganglia/etc/gmond.conf

vi /etc/init.d/gmond  --修改如下內容

GMOND=/usr/local/ganglia/sbin/gmond

vi /usr/local/ganglia/etc/gmond.conf      -- 修改如下內容

cluster {
  name = "duangr-cluster"
  owner = "nobody"
  latlong = "unspecified"
  url = "unspecified"
}

複製python module到ganglia部署目錄

mkdir /usr/local/ganglia/lib64/ganglia/python_modules
cp ./gmond/python_modules/*/*.py  /usr/local/ganglia/lib64/ganglia/python_modules

安裝程序ganglia-3.6.0默認提供了一些python module的配置文件,只需要部署到 /usr/local/ganglia/etc/conf.d 目錄下面即可生效

若對默認提供的這些監控腳本不太關心,可以跳過下面這步:

cp ./gmond/python_modules/conf.d/*.pyconf  /usr/local/ganglia/etc/conf.d

啓動gmond服務,並設爲開機自動運行

service gmond  restart
chkconfig --add  gmond

7.監控頁面

http://192.168.56.10/ganglia/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章