如要監控Storm叢集和執行在其上的Topology,該如何做呢?
Storm已經為你考慮到了,Storm支援Thrift的C/S架構,在部署Nimbus元件的機器上啟動一個Thrift Server程序來提供服務,我們可以透過編寫一個Thrift Client來請求Thrift Server,來獲取你想得到的叢集和Topology的相關資料,來接入監控平臺,如Zabbix等,我目前使用的就是Zabbix。
整體的流程已經清楚了,下面就來實踐吧。
1 安裝Thrift
由於我們要使用Thrift來編譯Storm的原始碼來獲得Thrift Client相關的Java原始碼,所以需要先安裝Thrift,這裡選取的版本為0.9.2。
到官網下載好安裝包:http://thrift.apache.org/
編譯安裝:configure && make && make install
驗證:thrift --version
如果打印出Thrift version 0.9.2,代表安裝成功。
2 編譯Thrift Client程式碼
首先下載Storm原始碼,這裡使用最新的0.9.3版本:http://mirrors.hust.edu.cn/apache/storm/apache-storm-0.9.3/apache-storm-0.9.3-src.tar.gz
解壓後進行編譯:thrift -gen java apache-storm-0.9.3/storm-core/src/storm.thrift
在當前目錄下出現gen-java資料夾,此資料夾下就是Thrift Client的Java原始碼了。
3 使用Thrift Client API
然後建立一個Maven專案來進行執行監控資料的獲取。
專案生成一個Jar檔案,輸入一些命令和自定義引數,然後輸出結果。
以命令列的形式進行呼叫,這樣可以方便的接入監控系統,當然使用形式可以根據自身情況施行。
建立好後,把gen-java生成的程式碼複製進來。
如要監控Storm叢集和執行在其上的Topology,該如何做呢?
Storm已經為你考慮到了,Storm支援Thrift的C/S架構,在部署Nimbus元件的機器上啟動一個Thrift Server程序來提供服務,我們可以透過編寫一個Thrift Client來請求Thrift Server,來獲取你想得到的叢集和Topology的相關資料,來接入監控平臺,如Zabbix等,我目前使用的就是Zabbix。
整體的流程已經清楚了,下面就來實踐吧。
1 安裝Thrift
由於我們要使用Thrift來編譯Storm的原始碼來獲得Thrift Client相關的Java原始碼,所以需要先安裝Thrift,這裡選取的版本為0.9.2。
到官網下載好安裝包:http://thrift.apache.org/
編譯安裝:configure && make && make install
驗證:thrift --version
如果打印出Thrift version 0.9.2,代表安裝成功。
2 編譯Thrift Client程式碼
首先下載Storm原始碼,這裡使用最新的0.9.3版本:http://mirrors.hust.edu.cn/apache/storm/apache-storm-0.9.3/apache-storm-0.9.3-src.tar.gz
解壓後進行編譯:thrift -gen java apache-storm-0.9.3/storm-core/src/storm.thrift
在當前目錄下出現gen-java資料夾,此資料夾下就是Thrift Client的Java原始碼了。
3 使用Thrift Client API
然後建立一個Maven專案來進行執行監控資料的獲取。
專案生成一個Jar檔案,輸入一些命令和自定義引數,然後輸出結果。
以命令列的形式進行呼叫,這樣可以方便的接入監控系統,當然使用形式可以根據自身情況施行。
建立好後,把gen-java生成的程式碼複製進來。