- ganglia簡介
- 實驗環境
- ganglia安裝配置
- 安裝
- 配置
- Hadoop配置
- 成果
- 注意問題
- 參考
本篇文章是參考網上别人的部落格,加自己實踐後記錄下來的,免得自己又忘了,感謝網際網路的分享精神,感謝大牛們的分享。
ganglia簡介
名詞說明
引用自此部落格介紹
- Metrics- 監控電腦的運作資料
- Node - 一台電腦,或許擁有多個CPU,中文稱之為節點。
- Cluster - 一組節點,中文稱之為簇。通常節點之間擁有達到G比特的高帶寬,簇内通過多點傳播協定,每個節點多點傳播自己的資料,是以每個節點擁有整個簇的狀态,這種備援設計可以提高簇的魯棒性。一般簇内節點為相同的系統和體系結構,由同一個管理者管理。
-
Grid - 一組簇,中文可稱之為網格。網格的用處是在一個大範圍内把各異構的簇通過寬帶彙聚在一起。
Ganglia的各種組成
功能 | 名稱及配置檔案 | 位置 |
---|---|---|
資料采集器 | 名叫gmond(Ganglia MONitor Daemon)的服務程式,配置檔案是/etc/ganglia/gmond.conf | 位于每個Node上 |
資料混合收集器 | 名叫gmetad(Ganglia METAdata Daemon)的服務程式,配置檔案是/etc/ganglia/gmetad.conf。它通過輪詢收集gmond的資料,并聚合簇的各類資訊,然後儲存在本地rrdtool的資料庫中 | 最好每個cluster都有一個gmetad,以便能建構多級網絡 |
Web可視化工具 | 這是用PHP腳本實作的将資料可視化,并畫出表格。可以是任何支援PHP、SSL和XML的web伺服器。一般都用Apache2 web伺服器 | 一般與gmetad部署在一個節點上 |
額外的進階工具 gmetric可以用來添加你需要監控的Node額外狀态 | ||
gstat可以直接獲得Ganglia的資料 每台需要這些功能的Node上 |
實驗環境
機器 | 系統 | 軟體 |
---|---|---|
ip1 | centos 7 | gmetad + gmond +ganglia-web 3.7.2 |
ip2 | centos 5 | gmond 3.7.1 |
ip3 | centos 5 | gmond 3.7.1 |
ip4 | centos 5 | gmond 3.7.1 |
ip5 | centos 5 | gmond 3.7.1 |
ip6 | centos 5 | gmond 3.7.1 |
ip7 | centos 5 | gmond 3.7.1 |
ganglia安裝配置
安裝
- ip1 安裝ganglia主節點
- yum -y install epel-release
- yum -y install rrdtool httpd
- yum -y install ganglia-devel ganglia-gmetad ganglia-gmond
- yum -y install php ganglia-web
- ip2-ip7 安裝ganglia從節點
- yum -y install epel-release
- yum -y install ganglia-mond
配置
- ganglia配置檔案目錄:/etc/ganglia
- rrd資料庫存放目錄:/var/lib/ganglia/rrds
- httpd主站點目錄:/var/www/html
- ganglia-web安裝目錄:/usr/share/ganglia
- ganglia-web配置目錄:/etc/httpd/conf.d/ganglia.conf
- 相關配置檔案修改
-
将ganglia-web安裝目錄連結到httpd主站點目錄
将 ganglia-web 的 站 點 目 錄 連 接 到 httpd 主 站 點 目 錄 $ ln -s /usr/share/ganglia /var/www/html
-
修改httpd主站點目錄下ganglia站點目錄的通路權限
将 ganglia 站點目錄通路權限改為 apache:apache,否則會報錯
-
$ chown -R apache:apache /var/www/html/ganglia
$ chmod -R /var/www/html/ganglia
- 修改rrd資料庫存放目錄通路權限 将 rrd 資料庫存放目錄通路權限改為
$ chown -R ganglia:ganglia /var/lib/ganglia/rrds
- 修改ganglia-web的通路權限:修改/etc/httpd/conf.d/ganglia.conf
Alias /ganglia /usr/share/ganglia
<Location /ganglia>
Require all granted
#Require ip 10.1.2.3
#Require host example.org
</Location>
- 配置/etc/ganglia/gmond.conf
cluster {
name = "hadoop cluster" ...
}
udp_send_channel {
#the host who gather this cluster's monitoring data and send these data to gmetad node
host = ip1
port =
}
udp_recv_channel {
port =
}
tcp_accept_channel {
port =
}
2.2 Hadoop cluster被監測節點的配置 配置/etc/ganglia/gmond.conf
cluster {
name = "hadoop cluster" ...
}
udp_send_channel {
# the host who gather this cluster's monitoring data and send these data to gmetad node
host = ip1
port =
}
udp_recv_channel {
port =
}
tcp_accept_channel {
port =
}
Hadoop配置
主節點:
# 修改/hadoop/etc/hadoop/hadoop-metrics2.properties
namenode.sink.ganglia.servers=ip1:
resourcemanager.sink.ganglia.servers=ip1:
mrappmaster.sink.ganglia.servers=ip1:
jobhistoryserver.sink.ganglia.servers=ip1:
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=
*.sink.ganglia.supportsparse=true
*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=,jvm.metrics.memHeapUsedM=
從節點
datanode.sink.ganglia.servers=ip1:
nodemanager.sink.ganglia.servers=ip1:
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=
*.sink.ganglia.supportsparse=true
*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=,jvm.metrics.memHeapUsedM=
成果
可以看到有datanode相關資訊
注意問題
- ganglia反應有點慢,每次重新開機後,資料得等一陣子才顯示出來。這個也跟設定的有關,10秒一次顯示
- 我本來配置每個節點都有gmond,cluster的資訊發送到本地的gmond,由gmond發送給gmetad,但是一直不成功。我使用了telnet localhost 8649,能看到資料,但是gmetad就是不顯示。暫時也沒找到什麼原因。
參考
[1] http://wenku.baidu.com/view/ca75df619b89680202d82577.html?re=view
[2] http://blog.cheyo.net/88.html
[3] http://yaoweibin2008.blog.163.com/blog/static/11031392008763256465/