开源监控软件ganglia安装手册

Ganglia是一个监控服务器,集群的开源软件,可以用曲线图表现最近一个小时,最近一天,最近一周,最近一月,最近一年的服务器或者集群的cpu负载,内存,网络,硬盘等指标。php

Ganglia的强大在于:ganglia服务端可以经过一台客户端收集到同一个网段的全部客户端的数据,ganglia集群服务端可以经过一台服务端收集到它下属的全部客户端数据。这个体系设计表示一台服务器可以经过不一样的分层可以管理上万台机器。这个功能是其余mrtg,nagios,cacti所不能比拟。html

Ganglia的扩展插件很是好写,不管用何种语言(shell,php,pyton)均可以写,只要把最终结果传给gmetric就能够,这样在web上就能够看到对应的数据。linux

 

0.  准备ios

最新的ganglia版本为3.2.0,可是我推荐安装ganglia3.0.3,由于这个版本安装比较简单,依赖包只有rrdtool。而新版本依赖包太多。web

官方网站:http://ganglia.infoshell

ganglia的下载地址 http://sourceforge.net/projects/ganglia数据库

windows版windows客户端版和ganglia 源包:apache

http://www.sajinet.com.pe/ganglia/windows

http://sourceforge.net/project/showfiles.php?group_id=43021&package_id=35280
ganglia的安装分为服务端和客户端和web端安装浏览器

文档帮助: http://ganglia.sourceforge.net/docs/

 

1)     服务端依赖包

Ganglia里的gmetad

Rrdtool(这个依赖不少包,ganglia对于rrdtool的版本不敏感,最好选择比较好安装的版本安装)

2)     客户端
ganglia里的gmond

3)     Web端:

Apache,php,rrdtool,php-gd(可不用装,不装的话只是看不到一张饼图,不影响使用)

 

1.服务端安装 gmetad)

   服务端的服务为gmetad,安装前须要先安装RRDTool(数据库和绘图工具,服务端收集的客户端信息由其来保存),由于要绘制曲线图,因此安装RRDTool前,还必须安装好libpng,freetype,zlib这些库(也是php的gd库须要的),下载地址http://www.rrdtool.org/ 。

安装完了RRDTool,就能够安装gmetad了

1 tar –zxvf ganglia3.0.3.tar.gz
2 cd ganglia3.0.3
3 ./configure CFLAGS="-I/usr/local/rrdtool-1.0.50/include" CPPFLAGS="-I/usr/local/rrdtool-1.0.50/include" LDFLAGS="-L/usr/local/rrdtool-1.0.50/lib" --with-gmetad --enable-gexec
4 make
5 make install

 

将gmetad.init文件拷贝到 /etc/init.d/:

1 cd ganglia-3.0.3/gmetad
2 cp gmetad.init /etc/init.d/gmetad #如果ganglia安装在别的目录,则修改gmetad.init里的gmetad路径
3 cp gmetad.conf /etc/gmetad.conf
4 chkconfig gmetad on
5 chkconfig --list gmetad
6 GMETAD 0:off 1:off 2:on 3:on 4:on 5:on 6:off

 

建立rrd数据存储的文件夹, 修改属性拥有者为: "nobody":

 1 mkdir /var/lib/ganglia/rrds 2 chown nobody:nobody /var/lib/ganglia/rrds 

 

 

启动gmetad:

 1 service gmetad start 2 Starting GANGLIA gmetad: [ OK ] 

 

 

修改 /etc/gmetad.conf文件:

1 data_source "taskcenter" 1.2.3.4 #所要监控的客户端 能够写多个
2 setuid_username "root" #可改成其余安全用户
3 # default: "/var/lib/ganglia/rrds" #定义该客户端的数据保存的路径
4 # rrd_rootdir "/some/other/place"
5 rrd_rootdir "/var/lib/ganglia/rrds"

 

从新启动gmetad: 

 1 service gmetad start 2 Starting GANGLIA gmetad: [ OK ] 

 

 

验证gmetad正常工做:

 1 telnet localhost 8651 

 

就能够获得监控的各个主机的状态。

 

2.安装客户端gmond2.1 linux

 在每台须要监控的机器上,安装gmond

 

安装ganglia:

1 tar zxvf ganglia-3.0.3.tar.gz
2 cd ganglia-3.0.3
3 ./configure --prefix=/usr/local/ganglia
4 make;
5 make install
6 cd gmond
7 ./gmond –t > /etc/gmond.conf

 

1 vi gmond.init
2 修改里面的GMOND 改成GMOND=/usr/local/ganglia/sbin/gmond
3 # cp gmond.init /etc/init.d/gmond
4 # chkconfig --add gmond
5 # chkconfig --list gmond
6 gmond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
7 # service gmond start
8 Starting GANGLIA gmond: [ OK ] #若不成功的话,就用/usr/local/ganglia/sbin/gmond手动启动

 

启动失败有多是由于多播地址没有路由 

 1 route add -host 239.2.11.71 dev eth0 

 

  

验证gmond正常工做: 

 1 telnet localhost 8649 

 

就能够获取机群内运行gmond的主机的信息

 

vi /etc/gmond.conf

配置gmond.conf:

 1 /etc/gmond.conf:
 2 globals
 3 {
 4 setuid = no
 5 user = nobody
 6 cleanup_threshold = 300 /*secs */
 7 }
 8 #修改监控组名称
 9 cluster
10 {
11 name = "taskcenter"
12 .......}

 

配置完成后从新启动gmond

 

2.2 window

下载:http://www.sajinet.com.pe/ganglia/ganglia-3.1.0-bin.zip

解压后,运行gmond.bat

测试:telnet 127.0.0.1 8649

安装自启动:把gmond.bat加到启动项中

 

 

3.web端安装

web端用于经过web来查看监控状态。
由于web端程序是php写的,因此须要安装apache。同时须要编译php的gd库。web端须要和服务器端在一块。

# cp -a ganglia-3.0.3/web /var/www/html/ganglia

肯定web server支持PHP4

对apache来讲,php模块mod_php的状态应该是enabled,貌似默认就是的^_^

 

配制文件是/var/www/html/ganglia/conf.php

 1 # Where gmetad stores the rrd archives.
 2 $gmetad_root = "/var/lib/ganglia";
 3 $rrds = "/usr/local/rrdtool-1.0.50/"; #数据源路径
 4 # Leave this alone if rrdtool is installed in $gmetad_root,
 5 # otherwise, change it if it is installed elsewhere (like /usr/bin)
 6 define("RRDTOOL", "/usr/local/rrdtool-1.0.50/bin/rrdtool"); # rrdtool执行路径
 7 #
 8 # If you want to grab data from a different ganglia source specify it here.
 9 # Although, it would be strange to alter the IP since the Round-Robin
10 # databases need to be local to be read.
11 #
12 $ganglia_ip = "localhost";
13 $ganglia_port = 8652;
14 #$ganglia_port = 8649;

 

在浏览器地址栏输入http://localhost/ganglia/应该能够看到有页面显示了。

 

演示地址 伯克利大学的集群监控(1000多台服务器):

http://monitor.millennium.berkeley.edu/

 

访问web出现图片画不出来的缘由:

1)     rrdtool没有安装,或者conf.php里没有配置

2)     gemtad没有启动

3)     没有客户端数据

4)     Selinux限制apache执行rrdtool

 另外ganglia还有不少插件能够监控更多的指标

其中有一个插件,安装后能够查看任意时间的曲线图

相关文章
相关标签/搜索