Ganglia是UC Berkeley發(fā)起的一個開源集群監(jiān)視項目,設(shè)計用于測量數(shù)以千計的節(jié)點。Ganglia的核心包含gmond、gmetad以及一個Web前端。主要 是用來監(jiān)控系統(tǒng)性能,如:cpu 、mem、硬盤利用率, I/O負(fù)載、網(wǎng)絡(luò)流量情況等,通過曲線很容易見到每個節(jié)點的工作狀態(tài),對合理調(diào)整、分配系統(tǒng)資源,提高系統(tǒng)整體性能起到重要作用。
gmetad可以部署在集群內(nèi)任一臺節(jié)點或者通過網(wǎng)絡(luò)連接到集群的獨立主機(jī),它通過單播路由的方式與gmond通信,收集區(qū)域內(nèi)節(jié)點的狀態(tài)信息,并以XML數(shù)據(jù)的形式,保存在數(shù)據(jù)庫中,由RRDTool工具處理數(shù)據(jù),并生成相應(yīng)的的圖形顯示,以Web方式直觀的提供給客戶端。
Ganglia包括如下幾個程序,他們之間通過XDR(xml的壓縮格式)或者XML格式傳遞監(jiān)控數(shù)據(jù),達(dá)到監(jiān)控效果。集群內(nèi)的節(jié)點,通過運行g(shù)mond收集發(fā)布節(jié)點狀態(tài)信息,然后gmetad周期性的輪詢gmond收集到的信息,然后存入rrd數(shù)據(jù)庫,通過web服務(wù)器可以對其進(jìn)行查詢展示。
檢查安裝ganglia依賴包
rpmbuild命令生成rpm包
[root@hadoop228 ~]# rpmbuild -tb ganglia-3.6.1.tar.gz
命令執(zhí)行成功,如上圖所示,執(zhí)行以下命令查看生成的rpm文件;我再執(zhí)行過程中出現(xiàn)“錯誤:發(fā)現(xiàn)已安裝(但未打包)文件:”(Installed (but unpackaged) file(s) found),如圖所示:
解決方法:
找到 /usr/lib/rpm/macros 中
%__check_files %{_rpmconfigdir}/check-files %{buildroot} 注釋掉該行
[root@hadoop228 ~]# cd /root/rpmbuild/RPMS/x86_64/
[root@hadoop228 x86_64]# rpm -ivh *,執(zhí)行命令安裝ganglia相關(guān)軟件包
配置ganglia
本例只在一臺機(jī)器上安裝配置ganglia,如果是集群環(huán)境
在主節(jié)點配置gmetad.conf
data_source "hadoop_cluster" 10 10.120.20.228:8649 10.120.20.229:8649 ...
data_source屬性是gmetad配置的核心。每一行data_source描述一個gmetad收集信息的gmond集群或gmetad網(wǎng)格
data_source由3個字段組成。第一個字段為唯一標(biāo)識data_source的字符串;第二個字段為指定輪詢間隔(單位:秒)的數(shù)字;第三個字段 為以空格分開的所要輪詢數(shù)據(jù)的主機(jī)列表,這些地址以IP地址或DNS主機(jī)名的形式指定,并可能添加“:端口號”形式的后綴,該端口號指明gmond的 tcp_accept_channel所在位置。如果未指明端口號,gmetad將嘗試連接tcp/8649。
在主節(jié)點及其它節(jié)點配置gmond.conf
cluster {
name = "hadoop_cluster"
owner = "nobody"
latlong = "unspecified"
url = "unspecified"
}
udp_send_channel {
#mcast_join = 239.2.11.71
host = 10.120.20.228 #gmetad主節(jié)點
port = 8649
ttl = 1
}
udp_recv_channel {
#mcast_join = 239.2.11.71
port = 8649
#bind = 239.2.11.71
#retry_bind = true
# Size of the UDP buffer. If you are handling lots of metrics you really
# should bump it up to e.g. 10MB or even higher.
# buffer = 10485760
}
tcp_accept_channel {
port = 8649
# If you want to gzip XML output
gzip_output = no
}
cluster中的name屬性值與主節(jié)點gmetad.conf文件中data_source配置的hadoop_cluster一致
安裝ganglia-web
首先安裝httpd PHP
[root@hadoop228 ~]# yum install httpd php
下載并解壓縮ganglia-web-3.6.2.tar.gz
[root@hadoop228 ~]# tar -zxf ganglia-web-3.6.2.tar.gz
進(jìn)入ganglia-web-3.6.2目錄修改ganglia-web安裝參數(shù)
[root@hadoop228 ganglia-web-3.6.2]# vim Makefile
修改默認(rèn)配置:
GDESTDIR=/var/www/html/ganglia
APACHE_USER = apache
GDESTDIR 和 APACHE_USER 屬性值與/etc/httpd/conf/httpd.conf(APACHE配置文件)中的DocumentRoot和User對應(yīng)
執(zhí)行make install安裝
[root@hadoop228 ganglia-web-3.6.2]# make install
修改ganglia-web訪問權(quán)限[根據(jù)具體情況可選]
[root@hadoop228 ~]# chown -R apache:apache /var/www/html/ganglia
[root@hadoop228 ~]# chown -R 755 /var/www/html/ganglia
[root@hadoop228 ~]# chown -R nobody:nobody /var/lib/ganglia/rrds
新建/etc/httpd/conf.d/ganglia.conf配置文件,并添加如圖配置:
啟動httpd、gmetad、gmond服務(wù)
訪問ganglia-web監(jiān)控頁面http://localhost/ganglia
Ganglia 監(jiān)控 Hadoop集群
HADOOP_PATH/etc/hadoop/目錄下有兩個配置文件:hadoop-metrics.properties和hadoop-metrics2.properties
hadoop-metrics.properties 用于hadoop與3.1版本以前的ganglia集成做監(jiān)控的配置文件
hadoop-metrics2.properties 用于hadoop與3.1版本以后的ganglia集成做監(jiān)控的配置文件,本文使用hadoop2.5.1,因此使用hadoop-metrics2.properties配置文件
[hadoop@hadoop228 ~]$ vim hadoop-2.5.1-single/etc/hadoop/hadoop-metrics2.properties
加入以下配置信息,如圖所示:
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40
namenode.sink.ganglia.servers=10.120.20.228:8649
resourcemanager.sink.ganglia.servers=10.120.20.228:8649
datanode.sink.ganglia.servers=10.120.20.228:8649
nodemanager.sink.ganglia.servers=10.120.20.228:8649
maptask.sink.ganglia.servers=10.120.20.228:8649
reducetask.sink.ganglia.servers=10.120.20.228:8649
啟動hadoop
在ganglia-web監(jiān)控頁面選擇某個hadoop節(jié)點,進(jìn)入節(jié)點監(jiān)控頁面,如果能看到如下圖所示的監(jiān)控內(nèi)容表示配置成功
Nagios與Ganglia整合
本文使用的Nagios版本:
nagios-4.0.8.tar.gz
nagios-plugins-2.0.3.tar.gz
安裝方法參考官網(wǎng)安裝文檔Installing_Nagios_Core_From_Source.pdf
配置方式可參考:
http://www.ibm.com/developerworks/cn/linux/l-ganglia-nagios-2/
http://quenlang.blog.51cto.com/4813803/1571635
按照上述文檔和文章的步驟可以正確配置,這里就不再累述了;整合成功,訪問http://localhost/nagios如下圖所示:
