中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

發布時間:2021-12-28 17:27:20 來源:億速云 閱讀:478 作者:小新 欄目:互聯網科技

小編給大家分享一下如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1、配置Hyperledger Fabric節點的運維服務

Hyperledger Fabric 1.4提供了如下的特性用于peer和orderer節點的運維服務API:

  • 日志等級管理:/logspec

  • 節點健康檢查:/healthz

  • 運行監控指標:/metrics

配置Fabric區塊鏈節點的運維服務雖然不是尖端的火箭科技,但是如果你漏掉了某些細節也會覺得不那么容易。

首先修改core.yaml來配置peer節點的運維服務,主要包括監聽地址的配置和TLS的配置(我們先暫時禁用這部分)。

用編輯器打開core.yaml:

$ vi ~/fabric-samples/config/core.yaml

下圖顯示了peer節點的運維服務監聽地址listenAddress的默認值:

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

現在讓我們啟動BYFN網絡,并試著訪問日志等級api。

$ cd ~/fabric-samples/first-network
$ ./byfn.sh -m up
$ docker exec -it cli bash

# curl peer0.org1.example.com:9443/logspec

不幸的是,curl命令返回如下錯誤:

curl: (7) Failed to connect to peer0.org1.example.com port 9443: Connection refused

讓我們看看到底是什么原因。

首先檢查我們的運維服務配置,打開core.yaml文件:

# vi /etc/hyperledger/fabric/core.yaml

可能你還記得,我們使用127.0.0.1作為listenAddress的值,這意味著 從外部無法訪問運維api。

讓我們在peer容器內進行必要的操作以再次檢查。這次我們將使用wget代替 curl,因為在容器內沒有安裝curl。

$ docker exec -it peer0.org1.example.com bash

# wget peer0.org1.example.com:9443/logspec

和預期的一樣,錯誤信息再次出現:

Connecting to peer0.org1.example.com (peer0.org1.example.com)… failed: Connection refused

但是如果用127.0.0.1來連接就會成功:

# wget 127.0.0.1:9443/logspec

結果如下:

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

這標明我們需要設置運維的監聽地址。

為此,修改docker-compose文件,為每個peer指定CORE_OPERATIONS_LISTENADDRESS環境變量。

$ vi ~/fabric-samples/first-network/base/docker-compose-base.yaml

參考下圖進行修改:

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

現在讓我們再次嘗試訪問/logspec這個API,別忘了重新啟動BYFN網絡。

$ docker exec -it cli bash

# curl peer0.org1.example.com:9443/logspec

輸出結果如下:

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

類似的,我們可以檢查節點健康狀況:

# curl peer1.org1.example.com:9443/healthz

輸出結果如下:

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

最后,讓我們在docker-compose-base.yaml中為每個peer設置ORE_METRICS_PROVIDER=prometheus來啟用prometheus指標,并修改core.yaml來聲明指標提供器為prometheus:

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

如果配置正確,在cli容器內執行如下命令后將會輸出一組監控指標的當前值:

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

2、用Prometheus監控Hyperledger Fabric網絡的運行指標

首先下載最新版本的Prometheus并解壓:

$ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.7.1/prometheus-2.7.1.linux-amd64.tar.gz \
$ tar -xvzf prometheus-2.7.1.linux-amd64.tar.gz

在prometheus文件夾中可以找到prometheus.yml文件。我們需要修改這個文件以便抓取Hyperledger Fabric的運行指標數據:在scrape_configs部分添加job_name和targets。

現在我們可以用docker來運行prometheus:

$ sudo docker run -d --name prometheus-server -p 9090:9090 \
  --restart always \
  -v /home/mccdev/prometheus/prometheus/prometheus.yml:/prometheus.yml \
  prom/prometheus \
  --config.file=/prometheus.yml

注意由于docker總是在專用網絡啟動容器,我們需要將prometheus容器加入fabric網絡。用如下命令查看fabric網絡:

$ docker inspect peer1.org1.example.com

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

將prometheus容器接入fabric網絡:

$ sudo docker network connect net_byfn 5b8cbf9d8fa6

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

可以在如下地址訪問統計信息:http://localhost:9090/

要檢查是否成功抓取了peer的運行指標,輸入scrape_samples_scraped查看結果表,內容應該非空。

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

3、用StatsD/Graphite監控Hyperledger Fabric網絡的運行指標

現在我們換StatsD來可視化監控Fabric網絡的運行指標,Prometheus是pull方式,而StatsD則采用push方式。

首先,我們需要先從這里獲取Graphite和StatsD的docker鏡像。

然后,啟動graphite容器:

$ docker run -d\
 --name graphite\
 --restart=always\
 -p 80:80\
 -p 2003-2004:2003-2004\
 -p 2023-2024:2023-2024\
 -p 8125:8125/udp\
 -p 8126:8126\
 graphiteapp/graphite-statsd

現在該修改docker-copose-base.yaml了。每個peer都應該設置如下的環境變量:

CORE_OPERATIONS_LISTENADDRESS
CORE_METRICS_PROVIDER
CORE_METRICS_STATSD_ADDRESS
CORE_METRICS_STATSD_NETWORK
CORE_METRICS_STATSD_PREFIX

我們也應當確保指定端口8125。peer的配置示例如下:

peer0.org1.example.com:
  container_name: peer0.org1.example.com
  extends:
   file: peer-base.yaml
   service: peer-base
  environment:
   - CORE_PEER_ID=peer0.org1.example.com
   - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
   - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:7051
   - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
   - CORE_PEER_LOCALMSPID=Org1MSP
   # metrics
   - CORE_OPERATIONS_LISTENADDRESS=peer0.org1.example.com:8125
   - CORE_METRICS_PROVIDER=statsd
   - CORE_METRICS_STATSD_ADDRESS=graphite:8125
   - CORE_METRICS_STATSD_NETWORK=udp
   - CORE_METRICS_STATSD_PREFIX=PEER_01
  volumes:
     - /var/run/:/host/var/run/
     - ../crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
     - ../crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
     - peer0.org1.example.com:/var/hyperledger/production
  ports:
   - 7051:7051
   - 7053:7053
   - 8125:8125

需要留意使用的端口:對于peer0,端口應當是8125:8125,peer1則應當使用9125:8125,依此類推。

Orderer應當按如下配置:

- ORDERER_OPERATIONS_LISTENADDRESS=orderer.example.com:8125
- ORDERER_METRICS_PROVIDER=statsd
- ORDERER_METRICS_STATSD_ADDRESS=graphite:8125
- ORDERER_METRICS_STATSD_NETWORK=udp
- ORDERER_METRICS_STATSD_PREFIX=ORDERER

ports:
   - 7125:8125

現在讓我們啟動BYFN網絡。

記得將graphite容器接入BYFN網絡,否則你會看到如下錯誤:

Error: error getting endorser client for channel: endorser client failed to 
connect to peer0.org1.example.com:7051: failed to create new connection: 
context deadline exceeded

peer容器的日志將顯示在網絡中沒有找到graphite:

Error: failed to initialize operations subystems: dial udp: lookup graphite 
on 127.0.0.11:53: no such host

使用如下命令將graphite容器接入fabric網絡:

$ sudo docker network connect net_byfn graphite

一切正常的話,你應該可以在如下地址看到運行指標:

http://localhost/metrics/index.json

結果如下:

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

訪問如下地址來查看可視化的數據:

http://localhost/

結果頁面如下:

如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控

以上是“如何實現Fabric區塊鏈基于Prometheus和StatsD的運維監控”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

图木舒克市| 尼木县| 图们市| 防城港市| 永吉县| 砀山县| 长沙县| 龙岩市| 巨野县| 香港| 定结县| 邵阳县| 青冈县| 资中县| 介休市| 确山县| 西和县| 健康| 鄂伦春自治旗| 滦南县| 开鲁县| 永泰县| 贵定县| 两当县| 扶绥县| 三原县| 罗定市| 榆林市| 香格里拉县| 武胜县| 武宁县| 同江市| 孟村| 萨嘎县| 新余市| 灯塔市| 湟中县| 渭南市| 凤城市| 冷水江市| 江阴市|