tangtb

          Hadoop,SpringMVC,ExtJs,Struts2,Spring,SpringSecurity,Hibernate,Struts
          posts - 25, comments - 88, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Ganglia整合Nagios監控Hadoop集群

          Posted on 2015-02-25 14:48 tangtb 閱讀(6829) 評論(0)  編輯  收藏 所屬分類: Hadoop

              Ganglia是UC Berkeley發起的一個開源集群監視項目,設計用于測量數以千計的節點。Ganglia的核心包含gmond、gmetad以及一個Web前端。主要 是用來監控系統性能,如:cpu 、mem、硬盤利用率, I/O負載、網絡流量情況等,通過曲線很容易見到每個節點的工作狀態,對合理調整、分配系統資源,提高系統整體性能起到重要作用。

              gmetad可以部署在集群內任一臺節點或者通過網絡連接到集群的獨立主機,它通過單播路由的方式與gmond通信,收集區域內節點的狀態信息,并以XML數據的形式,保存在數據庫中由RRDTool工具處理數據,并生成相應的的圖形顯示,以Web方式直觀的提供給客戶端

              Ganglia包括如下幾個程序,他們之間通過XDR(xml的壓縮格式)或者XML格式傳遞監控數據,達到監控效果。集群內的節點,通過運行gmond收集發布節點狀態信息,然后gmetad周期性的輪詢gmond收集到的信息,然后存入rrd數據庫,通過web服務器可以對其進行查詢展示。

           

           

          檢查安裝ganglia依賴包

           

          rpmbuild命令生成rpm包 

          [root@hadoop228 ~]# rpmbuild -tb ganglia-3.6.1.tar.gz

           

          命令執行成功,如上圖所示,執行以下命令查看生成的rpm文件;我再執行過程中出現“錯誤:發現已安裝(但未打包)文件:”(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 *,執行命令安裝ganglia相關軟件包

          配置ganglia

          本例只在一臺機器上安裝配置ganglia,如果是集群環境

          在主節點配置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網格

          data_source由3個字段組成。第一個字段為唯一標識data_source的字符串;第二個字段為指定輪詢間隔(單位:秒)的數字;第三個字段 為以空格分開的所要輪詢數據的主機列表,這些地址以IP地址或DNS主機名的形式指定,并可能添加“:端口號”形式的后綴,該端口號指明gmond的 tcp_accept_channel所在位置。如果未指明端口號,gmetad將嘗試連接tcp/8649。

           

          在主節點及其它節點配置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主節點

            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屬性值與主節點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 

           

          進入ganglia-web-3.6.2目錄修改ganglia-web安裝參數

          [root@hadoop228 ganglia-web-3.6.2]# vim Makefile

           

          修改默認配置:

          GDESTDIR=/var/www/html/ganglia
           APACHE_USER = apache

          GDESTDIR 和 APACHE_USER 屬性值與/etc/httpd/conf/httpd.confAPACHE配置文件中的DocumentRootUser對應

          執行make install安裝

          [root@hadoop228 ganglia-web-3.6.2]# make install

          修改ganglia-web訪問權限[根據具體情況可選]

          [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服務

           

          訪問ganglia-web監控頁面http://localhost/ganglia

           

           

          Ganglia 監控 Hadoop集群

          HADOOP_PATH/etc/hadoop/目錄下有兩個配置文件:hadoop-metrics.properties和hadoop-metrics2.properties

          hadoop-metrics.properties 用于hadoop與3.1版本以前的ganglia集成做監控的配置文件

          hadoop-metrics2.properties 用于hadoop與3.1版本以后的ganglia集成做監控的配置文件本文使用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監控頁面選擇某個hadoop節點,進入節點監控頁面,如果能看到如下圖所示的監控內容表示配置成功

           

           

           

           

           

           

           

           

           

          Nagios與Ganglia整合

          本文使用的Nagios版本:

          nagios-4.0.8.tar.gz

          nagios-plugins-2.0.3.tar.gz

          安裝方法參考官網安裝文檔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如下圖所示:

           



          主站蜘蛛池模板: 隆化县| 石林| 石门县| 乐昌市| 陕西省| 思茅市| 米易县| 朝阳区| 南昌市| 恩平市| 沧源| 辽中县| 兰溪市| 福安市| 绍兴县| 长宁区| 长春市| 论坛| 瑞丽市| 苍溪县| 滨海县| 永和县| 澳门| 辽宁省| 高密市| 涞源县| 双桥区| 东港市| 大渡口区| 梧州市| 大埔区| 五河县| 郴州市| 贡山| 新巴尔虎左旗| 孝义市| 阳泉市| 泰州市| 靖宇县| 方山县| 湘西|