一. 搭建prometheus及相關工具
參考本人寫的另一篇博客
https://www.cnblogs.com/dongjl/p/13796030.html
二. 搭建fabric2.0測試網絡(2.0版本之前叫byfn,之后改名叫做test-network)
參考官方文檔的“Using the Fabric test network” https://hyperledger-fabric.readthedocs.io/en/release-2.2/test_network.html
根據官方說明,預先安裝go,docker,docker-compose等工具,然后創建目錄$GOPATH/src/github.com/hyperledger,在hyperledger目錄下,推薦使用官方的腳本去一鍵部署環境,如下圖所示。
具體的步驟是,先git clone一個fabric-sample項目,然后在項目的父目錄里,運行上面的命令。
如果以上命令被牆了(不FQ的話大概率沒法用),請考慮使用下面這個指令
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s(會安裝需要的bin目錄下的文件和docker中需要的iamge)
可以看到上面這個命令使用的腳本其實就是fabric項目的scripts文件夾下的bootsrap腳本。也可以考慮自己把這個腳本復制到本地,然后再執行。
以上這個腳本可能需要不少時間,會安裝很多東西,特別是fabric 在docker中的幾個映像比較大以及從git上下載東西很慢。這個腳本可以接受不同參數從而去忽略某些步驟。具體哪些參數,可以自己看腳本文件的內容。
推薦的做法是,自己去clone fabric和fabric-ca的庫,手動編譯。而docker的鏡像讓腳本文件去幫你下載。這樣比較快。
如果不用以上這個腳本去做,會非常麻煩(我自己動手試了下,過程如下,如果使用腳本安裝的,可以跳過下面這些步驟)。
手動安裝過程:
在hyperledger目錄下,git clone 命令去安裝fabric ,fabric-ca和fabric-samples三個項目,然后去docker hub搜索docker需要下載的幾個映像並下載對應版本(由於我實際是fabric2.2,所以映像也是下載2.2.x版本),如下圖所示,同時注意把tag修改成latest,不然會報錯
在fabric ,fabric-ca兩個目錄里分別都執行命令make release,編譯得到可執行工具,然后進入fabric-samples文件下創建子目錄bin和config。將之前編譯得到的所有可執行工具復制到bin目錄,將fabric下子目錄sampleconfig里的所有內容復制到config.
接下來就可以在fabric-samples/test-network/目錄下執行./network.sh up來啟動測試網絡啦。可以在上面部署和測試鏈碼,體驗fabric各種功能。
三、使用prometheus來監控fabric的測試網絡
我在學習中參考了官方文檔的"The Operations Service"章節 https://hyperledger-fabric.readthedocs.io/en/release-2.2/operations_service.html 以及第三方教程 **請搜索Hyperledger Fabric的運維服務與可視化監控,來找到博客,因為網址含敏感詞匯被博客園ban了**來學習(后者基於fabric1.4版本。腳本名,項目配置文件目錄和文件名可能有所不同,自行斟酌)。
注意:fabric-samples的子目錄config 目錄是必須存在的,否則network.sh腳本啟動測試網絡時會報錯缺少二進制文件和配置文件,但是,config目錄中的配置文件在啟動階段是用不到的!(原因可以自己看腳本代碼。。) 排序節點和peer節點的配置都是通過fabric-samples/test-network/docker/docker-compose-test-net.ymal文件直接進行環境變量的設置。
第一步,修改fabric-samples/test-network/docker/docker-compose-test-net.ymal文件
打開docker-compose-test-net.ymal文件,進行如下圖所示的修改。
配置orderer
配置peer,下圖以其中一個節點為例
第二步,修改prometheus.yml配置文件
第三步,啟動prometheus容器以及fabric測試網絡。並將protmetheus加入測試網絡的專用網絡,從而可以監聽端口。
使用" docker inspect peer0.org2.example.com "命令查看peer容器的網絡配置,得到網絡模式名
使用" sudo docker network connect net_test prometheus的容器id "命令將prometheus加入網絡“net_test”
最后,可以通過瀏覽器訪問local:9090得到如下圖結果。配置成功。
可以通過grafana可視化工具來監控,fabric的dashboard模板可以在grafana官網找到。效果如下(因為還未在測試網部署通道和發送交易。所以賬本交易和背書提案等無數據)