Ganglia 简介

    Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。

    所有这些数据收集会多次影响节点性能。网络中的 “抖动(Jitter)” 发生在大量小消息同时出现时。我们发现通过将节点时钟保持一致,就可以避免这个问题。

安装

1、安装先决软件RRDTOOL。

(yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel)

    RRDTool 表示:轮循数据库工具(Round Robin Database Tool)。它是由 Tobias Oetiker 创建的,并且为许多高性能监视工具提供了引擎。

    要安装 Ganglia,首先需要让 RRDTool 运行在监视服务器上。RRDTool 将提供其他程序使用的两个非常优秀的功能:

  • 它将在轮循数据库中存储数据。随着捕捉的数据变得越来越旧,解析的精确性将变得越来越低。这将占用很少的内存并且在大多数情况下仍然有用。

  • 它可以通过使用命令行实参根据捕捉的数据生成图形。

 ./configure --prefix=/usr/local/rrdtool --disable-python --disable-tcl
make
make install

(1)安装RRDTOOL先决条件之cgilib-0.5

tar安装

(2)安装RRDTOOL先决条件之libart

rpm安装

2、安装先决软件之apr

rpmbuild --rebuild apr-1.2.7-11.src.rpm
rpmbuild --rebuild apr-1.2.7-11.src.rpm
cd /usr/src/redhat/RPMS/i386
rpm -ivh *.rpm

3、安装先决软件之confuse
tar -zvxf confuse-2.6.tar.gz
cd confuse-2.6
./configure
make
make install

4、安装ganglia

服务端:

cd ganglia-3.1.7
./configure --sysconfdir=/usr/local/ganglia --with-gmetad
make
make install

 

mkdir -p /usr/local/apache2/htdocs/www.bobo365.com/ganglia
cp -a web/* /usr/local/apache2/htdocs/www.bobo365.com/ganglia/
cp gmetad/gmetad.init /etc/rc.d/init.d/gmetad
cp gmond/gmond.init /etc/rc.d/init.d/gmond
mkdir /etc/ganglia
gmond -t | tee /etc/ganglia/gmond.conf
cp gmetad/gmetad.conf /etc/ganglia/
mkdir -p /var/lib/ganglia/rrds
chown nobody:nobody /var/lib/ganglia/rrds
chkconfig --add gmetad
chkconfig --add gmond
vi /etc/ganglia/gmond.conf

-------------------------

cluster {
  name = "bobo365"
  owner = "KING"
  latlong = "unspecified"
  url = "unspecified"
}
------------------------- 
service gmond start
service gmetad start

cp /etc/ganglia/gmond.conf /usr/local/ganglia/

service gmond start
vi /usr/local/ganglia/gmetad.conf

-----------------------------------

data_source "bobo365" localhost

-----------------------------------

 

客户端:

1、参照服务端安装ganglia软件

2、vi /usr/local/ganglia/gmond.conf

-------------------------------------

cluster {
  name = "bobo365"
  owner = "KING"
  latlong = "unspecified"
  url = "unspecified"
}
-------------------------------------

3、重启客户端服务

service gmond retart

 

///

 

安装完毕后监控页面截图:

1、监控主页

使用Ganglia监控服务器运行状态

2、显示节点UP状态

使用Ganglia监控服务器运行状态

3、88.89节点状态

使用Ganglia监控服务器运行状态

4、88.99节点状态

使用Ganglia监控服务器运行状态

/

客户端的安装有更简洁明了的方式,但还没搞明白。先附录在下面,有时间研究。

 

///

 

把 Ganglia 放在节点上

到现在为止,我们已经完成了在管理服务器中运行 Ganglia 的工作;现在必须更多地关注计算节点。事实证明只需复制一些文件就可以把 Ganglia 放到计算节点上。这是在使用 Kickstart 时可以添加到安装后脚本中的内容或是可以添加到其他更新工具中的内容。

快速但粗糙的方法是这样的:创建一个含有所有主机名的文件。假定您有 deathstar001-deathstar100 节点。则将拥有类似如下所示的名为 /tmp/mynodes 的文件:

 

deathstar001 deathstar002 ...skip a few... deathstar099 deathstar100

 

现在只需运行以下代码:

 

# for i in `cat /tmp/mynodes`; do scp /usr/sbin/gmond $i:/usr/sbin/gmond ssh $i mkdir -p /etc/ganglia/ scp /etc/ganglia/gmond.conf $i:/etc/ganglia/ scp /etc/init.d/gmond $i:/etc/init.d/ scp /usr/lib64/libganglia-3.1.1.so.0 $i:/usr/lib64/ scp /lib64/libexpat.so.0 $i:/lib64/ scp /usr/lib64/libconfuse.so.0 $i:/usr/lib64/ scp /usr/lib64/libapr-1.so.0 $i:/usr/lib64/ scp -r /usr/lib64/ganglia $i:/usr/lib64/ ssh $i service gmond start done

 

您可以重新启动 gmetad,刷新 Web 浏览器,然后应当会看到节点现在出现在列表中。

您可能会遇到下面这些潜在的问题:

  • 您可能也需要按照前面的步骤 3 那样对节点明确设置静态路由。

  • 您的防火墙可能会阻塞端口。gmond 将在端口 8649 上运行。如果 gmond 是在计算机中运行,您应当能够运行 telnet localhost 8649 命令。并看到一些 XML 输出滚动显示在屏幕中。