Ganglia是一个集群监控软件,底层使用RRDTool获得数据。Ganglia分为ganglia-monitor和gmetad两部分,前 者运行在集群每个节点上,收集RRDTool产生的数据,后者运行在监控服务器上,收集每个ganglia-monitor的数据,通过Web UI可以看到直观的各种图表。
在Ubuntu上安装Ganglia非常简单,首先安装下面三个包。因为要使用Web服务器才能看到图表,所以如果没有安装apache的话,会自动安装apache服务器.
1、sudo apt-get install ganglia-monitor ganglia-webfrontend
安装完成之后,启动apache2服务器,gmetad和gmond两个服务会运行起来,使用下面的命令可以启动这两个服务。
view sourceprint?
2、sudo service gmetad start
启动成功:Starting Ganglia Monitor Meta-Daemon: gmetad.
sysv-rc-conf gmetad on (ubuntu 下sysv-rc-conf 命令等同redhat 下的chkconfig 命令) sysv-rc-conf --list gmetad GMETAD 0:off 1:off 2:on 3:on 4:on 5:on 6:off 验证gmetad 正常工作:telnet localhost 8651就可以得到监控的各个主机的状态。 |
3、sudo service ganglia-monitor start
启动成功 Starting Ganglia Monitor Daemon: gmond
sysv-rc-conf gmond on (ubuntu 下sysv-rc-conf命令等同redhat下chkconfig命令) sysv-rc-conf —list gmond gmond 0:off 1:off 2:on 3:on 4:on 5:on 6:off service gmond start Starting GANGLIA gmond: [ OK ] 验证gmond正常工作:telnet localhost 8649 就可以获取机群内运行gmond的主机的信息 |
4、 sudo /etc/init.d/apache2 restar
*Restartingwebserver apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 172.16.205.55 for ServerName
... 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/”目录下。
view sourceprint
sudo ln -s /usr/share/ganglia-webfrontend/ /var/www/ganglia
或者: sudo mv /usr/share/ganglia-webfrontend/ /var/www/ganglia |
接着在浏览器输入”http://localhost/ganglia”就可以看到Web UI了。使用Chrome时,总是会将index.php主页下载下来,不知道为何。使用Firefox一切都很正常。Web UI如下:
这里只有一个Grid,并且这个Grid只有一个节点。往Grid里面添加节点是很简单的,只需要在该节点的/etc/ganglia/gmond.conf指明加入cluster的名字和该cluster多播地址就可以了。
配置服务器端
1、修改 sudo vi gmetad.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、配置集群监控的名称
# The name of this Grid. All the data sources above will be wrapped in a GRID # tag with this name. # default: unspecified gridname "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用户组:
Starting Ganglia Monitor Meta-Daemon: Please make sure that /var/lib/ganglia/rrds is owned by nobody
解决方案
1、sudo chown -R nobody /var/lib/ganglia/rrds
2、sudo service gmetad restart
异常:
There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Connection refused
解决方案
1、检查监控的服务器端的ganglia是否正常安装启动,并且能输入http://localhost/ganglia能访问到相关的信息
2、或者重新启动sudo service gmeta restar