一、 安裝環境
- Ubuntu server 12.04?
- 安裝gmetad的機器:192.168.52.105
- 安裝gmond的機器:192.168.52.31,192.168.52.32,192.168.52.33,192.168.52.34,192.168.52.35,192.168.52.36,192.168.52.37,192.168.52.38,192.168.52.105
- 瀏覽監控web頁面的機器:192.168.52.105
二、 介紹
Ganglia 監控套件包括三個主要部分:gmond,gmetad,和網頁接口,通常被稱為ganglia- web。
- gmond 是一個守護進程,他運行在每一個需要監測的節點上,收集監測統計,發送和接受在同一個組播或單播通 道上的統計信息。
- gme tad 也是一個守護進程,他定期檢查gmonds ,從那里拉取數據,并將他們的指標存儲在RRD存儲引擎中。它 可以查詢多個集群并聚合指標。RRD也被用于生成用戶界面的web前端。
- ?ganglia- web 顧名思義,他應該安裝在有gmetad運行的機器上,以便讀取RRD文件。
三、 安裝
1.apt-get方式安裝
首先找一個結點當作web顯示的結點,使用以下命令一鍵安裝:
apt-get -y install ganglia-monitor ganglia-webfrontend?
安裝了ganglia-webfrontend就相當于同時安裝了gmetad、ganglia-web和rrdtool等。
以上安裝的版本都是3.1.7,因為ubuntu官方源里面只支持到ganglia-webfrontend-3.1.7,起中使用的Ganglia Web Frontend版本也是3.1.7,版本太低,顯示的界面很不友好,因此后面的文章我會介紹如何手動安裝Ganglia Web Frontend version 3.5.7(目前最高版本已經到3.6)。如果為了方便,對于監控的界面要求不高的話,又圖省事,可以用上述命令一鍵安裝。
除了安裝ganglia-webfrontend的主機,其他主機只需要安裝ganglia-monitor即可。
apt-get -y install ganglia-monitor ganglia-webfrontend?
安裝了ganglia-webfrontend就相當于同時安裝了gmetad、ganglia-web和rrdtool等。
以上安裝的版本都是3.1.7,因為ubuntu官方源里面只支持到ganglia-webfrontend-3.1.7,起中使用的Ganglia Web Frontend版本也是3.1.7,版本太低,顯示的界面很不友好,因此后面的文章我會介紹如何手動安裝Ganglia Web Frontend version 3.5.7(目前最高版本已經到3.6)。如果為了方便,對于監控的界面要求不高的話,又圖省事,可以用上述命令一鍵安裝。
除了安裝ganglia-webfrontend的主機,其他主機只需要安裝ganglia-monitor即可。
2.鏈接到web服務器
安裝ganglia-webfrontend的時候就已經安裝了Apache Web Server,Ganglia-webfrontend默認安裝的位置是/usr/share/ganglia-webfront,現在還不能通過瀏覽器訪問Ganglia監控界面,需要執行以下命令將將ganglia的文件鏈接到apache的默認目錄下。
ln -s /usr/share/ganglia-webfront /var/www/ganglia
四、 配置
1.單播與組播
在進行Ganglia集群配置之前,首先要搞清楚單播和組播。
- 單播:可以跨網段傳播,只將信息發送給指定的機器。要配置成為單播你應該指定一個(或者多個)接受的主機。
- 組播:在機器所處的網段中發送廣播,發送給位于同一網段的所有機器。如果你正在使用組播傳輸,那么你沒必要改變任何東西,因為這是Ganglia包安裝默認的。唯一要做的就是把gmetad指向一個或幾個運行著gmo nd的主機。沒有必要列出每一個單個主機,因為gmo nd被設置為接受模式時會包含所有主機的列表以及整個集群的統計信息。
2.集群配置
我的Ganglia監控集群使用了單播模式。所有的配置都在/etc/ganglia目錄下,在每個節點上都要配置/etc/ganglia/gmond.conf.
紅色字體為修改項。
globals {
? daemonize = yes
? setuid = yes
? user = root /*運行Ganglia的用戶*/
? debug_level = 0
? max_udp_msg_len = 1472
? mute = no
? deaf = no
? host_dmax = 120 /*secs */
? cleanup_threshold = 300 /*secs */
? gexec = no
? send_metadata_interval = 15 /*發送數據的時間間隔*/
}
cluster {
? name = "hadoop_hf" /*集群名稱*/
? owner = "root" /*運行Ganglia的用戶*/
? latlong = "unspecified"
? url = "unspecified"
}
udp_send_channel {
# ?mcast_join = 192.168.52.105 /*注釋掉組播*/
? host = 192.168.52.105 /*發送給安裝gmetad的機器*/
? port = 8649
? ttl = 1
}
? daemonize = yes
? setuid = yes
? user = root /*運行Ganglia的用戶*/
? debug_level = 0
? max_udp_msg_len = 1472
? mute = no
? deaf = no
? host_dmax = 120 /*secs */
? cleanup_threshold = 300 /*secs */
? gexec = no
? send_metadata_interval = 15 /*發送數據的時間間隔*/
}
cluster {
? name = "hadoop_hf" /*集群名稱*/
? owner = "root" /*運行Ganglia的用戶*/
? latlong = "unspecified"
? url = "unspecified"
}
udp_send_channel {
# ?mcast_join = 192.168.52.105 /*注釋掉組播*/
? host = 192.168.52.105 /*發送給安裝gmetad的機器*/
? port = 8649
? ttl = 1
}
五、 啟動Ganglia
?
?
使用apt-get方式安裝的Ganglia,可以直接用service方式啟動。
- service ganglia-monitor start (每臺機器都需要啟動)
- service gmetad start (在安裝了ganglia-webfrontend的機器上啟動)
?
?
六、 檢驗
?
?
登錄瀏覽器查看:http://192.168.52.105/ganglia,如果Hosts up為9即表示安裝成功。
若安裝不成功,有幾個很有用的調試命令:
- 以調試模式啟動gmetad : gmetad -d 9?
- 查看gmetad收集到的XML文件:telnet 192.168.52.105 8649?
?
?
七、 Ganglia-web的安裝
?
?
因為3.1.7版本的Ganglia-web實在太丑,因此我卸載了ganglia-webfrontend,然后單獨安裝了gmetad后又安裝了新版的Ganglia-web-3.5.10.
按照官方的說明,首先將tar.gz文件解壓,然后進入解壓后的目錄,修改Makefile文件中的如下四個配置:
# Location where gweb should be installed to (excluding conf, dwoo dirs). GDESTDIR = /var/www/ganglia # Gweb statedir (where conf dir and Dwoo templates dir are stored) GWEB_STATEDIR = /var/lib/ganglia # Gmetad rootdir (parent location of rrd folder) GMETAD_ROOTDIR = /var/lib/ganglia APACHE_USER = root(切忌后面不要有空格)
監控界面截圖:


八、 監控Hadoop集群
修改Hadoop的配置文件/etc/hadoop/hadoop-metrics.properties,根據文件中的說明,修改三處:
dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
dfs.period=30
dfs.servers=192.168.52.105:8649
dfs.period=30
dfs.servers=192.168.52.105:8649
mapred.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
mapred.period=30
mapred.servers=192.168.52.105:8649
mapred.period=30
mapred.servers=192.168.52.105:8649
jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext
jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
jvm.period=30
jvm.servers=192.168.52.105:8649
jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
jvm.period=30
jvm.servers=192.168.52.105:8649
所有的servers都修改為安裝為gmetad的機器IP。
重啟Hadoop datanode:service hadoop-datanode restart
重啟gmond:/usr/sbin/gmond restart
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
