Ganglia是UC Berkeley发起的一个开源实时监视项目,用于测量数以千计的节点,为云计算系统提供系统静态数据以及重要的性能度量数据。Ganglia系统基本包含以下三大部分。
Gmond:Gmond运行在每台计算机上,它主要监控每台机器上收集和发送度量数据(如处理器速度、内存使用量等)。
Gmetad:Gmetad运行在Cluster的一台主机上,作为Web Server,或者用于与Web Server进行沟通。
Ganglia Web前端:Web前端用于显示Ganglia的Metrics图表。
Hadoop和HBase本身对于Ganglia的支持非常好。通过简单的配置,我们可以将Hadoop和HBase的一些关键参数以图表的形式展现在Ganglia的Web Console上。这些对于我们洞悉Hadoop和HBase的内部系统状态有很大的帮助。
1. 准备
安装依赖:
apt-get install rrdtool apache2 php5
2. 安装
安装ganglia:
apt-get install ganglia*
3. 配置
配置ganglia服务器端:
cd /etc/ganglia
编辑配置文件gmond.conf:
vimgmond.conf
globals {
….
setuid = yes
….
}
cluster {
name = “my cluster” // 这个名称很重要
owner = “nobody”
….
}
udp_send_channel {
host = 192.168.1.5 // 使用host为单播,mcast_join为多播
port = 8649
ttl = 1
}
udp_recv_channel { // 如果使用单机广播,要删除“mcast_join”和“bind”
/* mcast_join = 239.2.11.71 */
port = 8649
/* bind = 239.2.11.71 */
编辑配置文件gmetad.conf
vim gmetad.conf
# 配置一个数据源,名称“heipark”要和/etc/gmond.conf中一致,后面的ip为server的ip
data_source “my cluster” 192.168.1.5
配置ganglia客户端:
将/etc/ganglia/gmond.conf文件拷贝到客户端/etc/ganglia/
scp /etc/ganglia/gmond.conf root@{ip}:/etc/ganglia/gmond.conf
4. 运行
Server端
servicegmetad restart
service ganglia-monitor restart
serviceapache2restart
Client端
service ganglia-monitor restart
5. 测试
# 命令行打印当前活动client
gstat -a
# web显示当前client状态
http://{your_ip}/ganglia
6. Apache密码验证
通过web方式访问ganglia不需要密码,所以我们通过apache设置密码达到安全目的。
①
htpasswd -c /etc/apache2/conf.d/passwords {your_name}
②
cd /usr/share/ganglia
vi .htaccess // 创建apache目录密码文件,并写入下面内容
AuthType Basic
AuthName “Restricted Files”
AuthUserFile /etc/httpd/conf.d/passwords
Require user {your_name}
③
vi /etc/httpd/conf/httpd.conf
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
修改为:
<Directory />
Options FollowSymLinks
AllowOverrideAuthConfig
</Directory>