天天看點

storm叢集的監控

所謂兵馬未動,糧草先行,準備将storm用在某個項目中做實時資料分析。無論任何系統,一定要有監控系統并存,當故障發生的時候你能第一個知道,而不是讓别人告訴你,那處理故障就很被動了。

是以我寫了這麼個項目,取名叫storm-monitor,放在了github上

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

主要功能如下:

1.監控supervisor數目是否正确,當supervisor挂掉的時候會發送警告。

2.監控nimbus是否正常運作,monitor會嘗試連接配接nimbus,如果連接配接失敗就認為nimbus挂掉。

3.監控topology是否正常運作,包括它是否正常部署,是否有運作中的任務。

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

基本的原理很簡單,對supervisor和topology的監控是通過zookeeper來間接地監控,通過定期檢視path是否存在。對nimbus的監控是每次起一個短連接配接連上去,連不上去即認為挂掉。

整個項目也是用clojure寫。你的機器需要安裝lein和exec插件,然後将你的storm.yaml拷貝到conf目錄下,編輯monitor.yaml設定監控參數如檢查間隔等,最後啟動start.sh腳本即可。預設日志輸出在logs/monitor.log。