莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          storm集群的監(jiān)控

          Posted on 2011-12-01 21:02 dennis 閱讀(10542) 評論(0)  編輯  收藏 所屬分類: my open-source 、Hadoop與分布式Clojure

              所謂兵馬未動,糧草先行,準備將storm用在某個項目中做實時數(shù)據(jù)分析。無論任何系統(tǒng),一定要有監(jiān)控系統(tǒng)并存,當故障發(fā)生的時候你能第一個知道,而不是讓別人告訴你,那處理故障就很被動了。

              因此我寫了這么個項目,取名叫storm-monitor,放在了github上

               https://github.com/killme2008/storm-monitor

              主要功能如下:
          1.監(jiān)控supervisor數(shù)目是否正確,當supervisor掛掉的時候會發(fā)送警告。
          2.監(jiān)控nimbus是否正常運行,monitor會嘗試連接nimbus,如果連接失敗就認為nimbus掛掉。
          3.監(jiān)控topology是否正常運行,包括它是否正常部署,是否有運行中的任務。

              當故障發(fā)生的時候通過alarm方法警告用戶,開放出去的只是簡單地打日志。因為每個公司的告警接口不一樣,所以你需要自己擴展,修改alarm.clj即可。我們這兒就支持旺旺告警和手機短信告警。

              基本的原理很簡單,對supervisor和topology的監(jiān)控是通過zookeeper來間接地監(jiān)控,通過定期查看path是否存在。對nimbus的監(jiān)控是每次起一個短連接連上去,連不上去即認為掛掉。

              整個項目也是用clojure寫。你的機器需要安裝leinexec插件,然后將你的storm.yaml拷貝到conf目錄下,編輯monitor.yaml設定監(jiān)控參數(shù)如檢查間隔等,最后啟動start.sh腳本即可。默認日志輸出在logs/monitor.log。
          主站蜘蛛池模板: 新田县| 达拉特旗| 岐山县| 云浮市| 蒙城县| 天水市| 勐海县| 林口县| 长沙市| 博湖县| 商都县| 陆河县| 甘孜县| 白银市| 涿鹿县| 皋兰县| 右玉县| 教育| 白山市| 克什克腾旗| 平南县| 五莲县| 蒙城县| 西贡区| 台山市| 鹤岗市| 新乐市| 庐江县| 谢通门县| 涡阳县| 隆德县| 阜南县| 益阳市| 民和| 潢川县| 卓尼县| 广西| 井陉县| 大荔县| 丽江市| 和林格尔县|