youyou 2010-11-01
Ganglia是一个集群监控软件,底层使用RRDTool获得数据。Ganglia分为ganglia-monitor和gmetad两部分,前 者运行在集群每个节点上,收集RRDTool产生的数据,后者运行在监控服务器上,收集每个ganglia-monitor的数据,通过Web UI可以看到直观的各种图表。
在Ubuntu上安装Ganglia非常简单,首先安装下面三个包。因为要使用Web服务器才能看到图表,所以如果没有安装apache的话,会自动安装apache服务器.
1、sudoapt-getinstallganglia-monitorganglia-webfrontend
安装完成之后,启动apache2服务器,gmetad和gmond两个服务会运行起来,使用下面的命令可以启动这两个服务。
view sourceprint?2、sudo service gmetad start启动成功:StartingGangliaMonitorMeta-Daemon:gmetad.
sysv-rc-confgmetadon(ubuntu下sysv-rc-conf命令等同redhat下的chkconfig命令)
sysv-rc-conf--listgmetad
GMETAD0:off1:off2:on3:on4:on5:on6:off
验证gmetad 正常工作:telnet localhost 8651就可以得到监控的各个主机的状态。3、sudo service ganglia-monitor start启动成功StartingGangliaMonitorDaemon:gmond
sysv-rc-confgmondon(ubuntu下sysv-rc-conf命令等同redhat下chkconfig命令)
sysv-rc-conf—listgmondgmond0:off1:off2:on3:on4:on5:on6:off
service gmond start Starting GANGLIA gmond: [ OK ] 验证gmond正常工作:telnet localhost 8649 就可以获取机群内运行gmond的主机的信息4、 sudo /etc/init.d/apache2 restar*Restartingwebserverapache2apache2:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,using172.16.205.55forServerName ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 172.16.205.55 for ServerName
因为ganglia-webfront这个包默认将Web相关的代码安装在”/usr/share/ganglia-webfrontend/”路径下,这样apache访问不到。可以使用软链接,或者直接将目录移到”/var/www/”目录下。
viewsourceprint
sudoln-s/usr/share/ganglia-webfrontend//var/www/ganglia或者:
sudo mv /usr/share/ganglia-webfrontend/ /var/www/ganglia
接着在浏览器输入”http://localhost/ganglia”就可以看到WebUI了。使用Chrome时,总是会将index.php主页下载下来,不知道为何。使用Firefox一切都很正常。WebUI如下:
这里只有一个Grid,并且这个Grid只有一个节点。往Grid里面添加节点是很简单的,只需要在该节点的/etc/ganglia/gmond.conf指明加入cluster的名字和该cluster多播地址就可以了。
配置服务器端
1、修改sudovigmetad.conf文件
配置集群的服务器IP及相应的名称
# data_source "my grid" 50 1.3.4.7:8655 grid.org:8651 grid-backup.org:8651 · # data_source "another source" 1.3.4.7:8655 1.3.4.8 · · data_source "cloudsearch-server" localhost · data_source "cloudsearch-crawler" 172.16.205.55
2、配置集群监控的名称
#ThenameofthisGrid.AllthedatasourcesabovewillbewrappedinaGRID#tagwiththisname.#default:unspecifiedgridname"cloudsearch"
配置完成后重新启动sudo service gmetad restart配置客户端
1、全局配置参数
注意user=nobody这个属于要与服务端的setuid_username"nobody"名称一致
globals { daemonize = yes setuid = yes user = nobody debug_level = 0 max_udp_msg_len = 1472 mute = no deaf = no host_dmax = 0 /*secs */ cleanup_threshold = 300 /*secs */ gexec = no send_metadata_interval = 0 }
2、修改监控组名称
· # tag with this name. · # default: unspecified · gridname "cloudsearch"
配置完成后重新启动sudo service ganglia-monitor restart
安装期间遇到的问题及解决方案:
异常提示说要把rrd的权限设置给nobody用户组:
StartingGangliaMonitorMeta-Daemon:Pleasemakesurethat/var/lib/ganglia/rrdsisownedbynobody
解决方案
1、sudo chown -R nobody /var/lib/ganglia/rrds 2、sudo service gmetad restart
异常:
Therewasanerrorcollectinggangliadata(127.0.0.1:8652):fsockopenerror:Connectionrefused
解决方案
1、检查监控的服务器端的ganglia是否正常安装启动,并且能输入http://localhost/ganglia能访问到相关的信息
2、或者重新启动sudoservicegmetarestar