zabbix監控Hadoop的實現

        Hadoop日常運行過程中一些參數需要進行實時監控,如:Map、Reduce任務數量,HDFS磁盤使用情況,namenode、datanode在線數量及健康情況,以便更好的掌握整個Hadoop集群架構的運行情況。

        下面結合最近工作中的一些實踐經驗,分享一下如何用zabbix實時監控Hadoop集群。

         工作一開始想在網上找現成的zabbix監控Hadoop文檔,發現只一篇老外的文檔:https://code.google.com/p/mikoomi/wiki/05,51cto有人做了翻譯,上面提供的好用的現成模板和兩個強大的數據抓取腳本。

         但是在使用的過程中有很多問題,需要根據自己的實際環境進行修改,但腳本中大部分的數據抓取和分析代碼是沒有問題的,寫這個的人的確很NB,下了不少工夫。

         我在這里僅提一下,需要改變的部分。

          mikoomi文檔中使用的是zabbix的externalscripts功能,生成數據后使用zabbix_sender命令向服務器發送數據,實現過程非常簡單,但不走運的是,我使他這個方法,數據的抓取和整理都沒有問題,就是在用zabbix_sender上傳數據時問上失敗。中間掙扎、糾結了好久,沒有找到解決辦法。遂決定,放棄原有的套路,換另一種方法。


         如果你用mikoomi的原始方法實現在,那么恭喜你,他的方法確實簡單好用,請你一定聯系我你是怎么做到的。


          下面來講一下我的基于mikoomi腳本的另一種實現方法。


          一開始,按照mikoomi原文中方法,導入他所提供的hadoop監控模板,一個用于監控namemode,一個用于監控jobstracker。

          然后,將需要被監控的namenode加入這兩個模板,當加入第二個模板的時候會提示你,這兩個模板中有兩個item沖突了,很好辦,從任意一個模板中刪除沖突項就好了。

 

         上述兩步操作比較簡單,就不多說了,下面重點來了,前方高能。

   

          兩個模板中默認原作者是要以zabbix_sender的方式傳送監控數據的,所以兩個模板中的item都是zabbix_trap的數據類型,現在我們即將采用的是傳統的在被監控端創建UserParameter的方式,所以一個很重要的地方需要做修改,如圖:

zabbix監控Hadoop的實現

這個頁面就是這么寬,沒辦法,將就著看吧!zabbix監控Hadoop的實現

    兩個模板60多個item一個一個改勢必很痛苦,zabbix給我們提供了一個叫“mess update”的功能,全選之后(除了一個叫Data Collector的item),選擇mess update即可進入如下頁面進行修改:

zabbix監控Hadoop的實現

就是這么貼心,就是這么簡單。有些情況下,全選的話,可能無法成功,那就一次少選 幾個,多改幾次就是了。


        模板中item的數據類型改完之后,將進入最重要的數據抓取階段。原作提供的腳本功能強大,但有很多地方不是哪里都能用,比如他的shell腳本是以#!/usr/bin/bash開頭的。腳本抓取數據的來源是hadoop自身提供的web頁面,腳本通過curl命令抓取頁面內容進行分析,提煉后按照 “主機名 key value”  的格式進行存儲。

        如果你們hadoop服務器的web頁面是不需要密碼訪問的還好,如果像我們公司一樣是需要密碼訪問的,這個url就需要特別注意一個,免得不能訪問,就將無法獲取數據。

    

        現把我修改后的,正在使用的腳本放在這里,供參考 :

mikoomi-hadoop-jobtracker-plugin-helper.sh

mikoomi-hadoop-jobtracker-plugin.sh

mikoomi-hadoop-namenode-plugin-helper.sh

mikoomi-hadoop-namenode-plugin.sh

run_hd.sh

******************************************************

注意事項

         上述腳本均是放在被監控端即namenode上運行。

        上述腳本中的URL使用了user.name變量,是因為我們的環境中訪問hadoop頁面是需要密碼的,直接把密碼加入url就行。如果不需要密碼,把這個就是去掉就了行,注意,每一個腳本有兩處URL。

         從腳本名稱中便可看出,帶有“jobtracker”的腳本是用于抓取和jobtracker運行有關的數據的,帶有“namenode”的是用來抓取和namenode運行有關的數據的。

         腳本run_hd.sh是用來將前面腳本生成的數據合并到一處的,后并后的文件我取名為/tmp/namenode.txt(這個文件不要放在zabbix用戶無法訪問的目錄,比如:root家目錄下zabbix監控Hadoop的實現)。

         

         首次使用需先運行run_hd.sh產生數據文件/tmp/namenode.txt ,然后執行如下awk命令,將生成結果導入 /etc/zabbix/zabbix_agentd.d/hadoop.conf 中,代碼如下:

                    

awk '{ print "UserParameter="$2",grep \" "$2" \" /tmp/namenode.txt | awk '\''{ print '\$'3 }'\''" }' /tmp/namenode.txt  > /etc/zabbix/zabbix_agentd.d/hadoop.conf

        注意: 此awk命令只需執行一次即可。


        然后重啟被監控端的zabbix_agent進程: 

                   

  service zabbix_agent restart


         最后,也是最重要的,要把腳本run_hd.sh放入crontab,第分鐘執行一次,這樣/tmp/namenode.txt   中的數據就會每分更新一次,和zabbix監控中的更新同步。


好了,坐等出圖。出圖需要一點點時間,這個時候可以使用zabbix_get命令來測試,看一看zabbix server 端能不能接收到數據,比如: 

                    

 zabbix_get -s namenode -k min_free_storage_pct_node_name


zabbix監控Hadoop的實現

zabbix監控Hadoop的實現


就先展示這兩個吧,其它的數據不方便放上來。

至于triger和報警,mikoomi的模板中都為我們安排好了,我們只要保障數據能正常上傳,就可以了。



如有疑問,歡迎留言~~~~zabbix監控Hadoop的實現


************************************************************

神馬, 谷歌不能訪問?mikoomi的網頁打不開?好吧,附送hosts一枚,不謝!

戳我就能上谷歌!





原創文章,作者:紅豆殺,如若轉載,請注明出處:http://www.www58058.com/736

(1)
紅豆殺紅豆殺
上一篇 2015-03-06
下一篇 2015-03-08

相關推薦

  • nginx配置(一)

    Nginx:http協議:web服務器(類似于httpd)、http reverse proxy(類似于httpd)、imap/pop3 reverse proxy NGINX is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/…

    Linux干貨 2017-05-05
  • Shell 腳本作業(8月11號)

    1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。 #!/bin/bash # author:huiping # version:1.0.1 # date:2016-08-11 # describe:&nb…

    Linux干貨 2016-08-15
  • Centos系統 本地自動安裝

    §·Centos系統光盤安裝的流程 大概的了解下Centos的光盤系統安裝流程: 1.插入光盤,出現菜單選擇界面;通常情況下我們選擇第一項: 第一項 : Install  or upgrade an existing system   2.默認進入圖形界面安裝并且進行一些必要的環境設置(安裝前的配置階段) 需要我們手工設置的項目…

    Linux干貨 2016-09-15
  • IP SAN實驗

    實驗環境 centos7 serverx2 IP:192.168.0.206??? 192.168.0.207 iscsi-server端的配置 準備磁盤設備 安裝程序包 創建target 創建lun 授權   首先添加兩塊硬盤 sdb sdc 然后安裝軟件包 yum -y install epel-release yum -y install s…

    2017-12-16
  • 基于pxe部署系統

    一、前言 在生產環境中,我們經常遇到需要部署部署多臺服務器。如果我們每部署一臺服務器都要拿著系統盤到機房部署,守在服務器面前,那么我們的效率是十分低下的。況且有時候機房并不在我們身邊。那么我們可以通過讓機房值班人員為每臺服務器配置好遠程管理卡,運維人員通過遠程管理卡,遠程登入服務器進行操作。 二、pxe原理 pxe原理是通過服務器上網卡中支持的pxe啟動,通…

    Linux干貨 2015-09-14
  • 抵御DDOS攻擊,iptables限制TCP連接和頻率

    cc攻擊一到就有點兵臨城下的感覺,正確的設置防護規則可以做到臨危不亂,這里給出一個iptables對ip進行連接頻率和并發限制,限制單ip連接和頻率的設置規則的介紹 #單個IP在60秒內只允許新建20個連接,這里假設web端口就是80, iptables -I  INPUT -i eth1 -p tcp -m tcp –dpo…

    系統運維 2016-05-08
欧美性久久久久