Hyperledger Fabric --- 可视化监控 Prometheus

815 阅读3分钟

4.3 Hyperledger Fabric可视化监控的实现

4.3.1 配置Prometheus

4.3.1.1 下载Prometheus

docker pull prom/prometheus

下载Prometheus到Hyperledger文件夹下

mkdir -p /home/ubuntu/go/src/github.com/hyperledger

cd /home/ubuntu/go/src/github.com/hyperledger

wget github.com/prometheus/…

tar -xvzf prometheus-2.23.0.linux-amd64.tar.gz

cd prometheus-2.23.0.linux-amd64

vim prometheus.yml

4.3.1.2 修改配置文件prometheus.yml

将以下内容复制到prometheus.yml的scrape_configs选项下

  - job_name: 'hyperledger_metrics'
    scrape_interval: 10s
    static_configs:
    - targets: ['host1orderer.amops.com:8443','host2orderer.amops.com:8443','host3orderer.amops.com:8443','peer0.host1.amops.com:9443','peer1.host1.amops.com:10443','peer0.host2.amops.com:9443','peer1.host2.amops.com:10443','peer0.host3.amops.com:9443','peer1.host3.amops.com:10443']

4.3.3 启动prometheus服务

docker run -d --name prometheus-server -p 9090:9090
--restart always
-v /home/ubuntu/go/src/github.com/hyperledger/prometheus-2.28.1.linux-amd64/prometheus.yml:/prometheus.yml
prom/prometheus
--config.file=/prometheus.yml

4.3.4 查看promethues的容器id并将该容器加入到fabric网络

查看Fabric的NetworkMode

docker inspect host1orderer.amops.com

查看prometheus的容器id

docker ps -a

将prometheus容器加入Fabric网络,格式为docker network connect (NetworkMode)(promotheus的容器id)

docker ps -adocker network connect multiple-deployment_default 489de7a38098

4.3.2 配置可视化工具Grafana ###

4.3.2.1 下载并运行Grafana

wget dl.grafana.com/oss/release…

tar -zxvf grafana-7.3.5.linux-amd64.tar.gz

cd grafana-7.3.5/bin

nohup ./grafana-server > grafana-server-run.log 2>&1 &

4.3.2.2 访问浏览器(host1的IP:3000)

打开浏览器,通过Grafana所在主机的IP(虚拟机1的IP地址):3000的形式访问控制面板(3000是端口号),默认账号和密码均为admin

登陆进来界面如下所示:

4.3.2.3 增加数据源

选择配置菜单,点击增加数据源

选择Prometheus作为数据源

输入部署Prometheus所在的主机IP加9090端口号,例如192.168.xxx.xxx:9090,输入完成后拉到最下面点击Save and Test

4.3.2.4 下载fabric模版的json文件

访问Grafana官网,下载Fabric模板的JSON文件

选择Grafana菜单进入Dashboards界面

把Json文件下载下来

4.3.2.5 在Dashboard界面导入json文件

下载完成后回到Grafana面板,导入刚刚下载完成的json文件

4.3.2.6 测试数据

导入完成后界面长这个样子,但有一些没数据,那么我们测试一下是否有数据

比如通过Fabric Version查看指标是什么,点击下拉框,选择编辑按钮

采用的是fabric_version

那我们增添新的仪表板测试一下

设置指标

可以看到是有数据的,我们只需要再设置一下参数就可以成功显示

4.3.2.7 设置参数

我们返回主界面,把新建的仪表板移除

再次编辑Fabric Version

在Options看到Field确实是version,但显示的是version的名称,我们将Name改为Current(当前值),注意:Fabric Version展现的是当前值,但其他的像交易提案成功次数应该设置为Total

版本号就出来了,随后点击应用回到主界面

主界面的Fabric Version就显示正常

各位可以自己按需设计与分配来达到自己满意的效果。

4.3.3 fabric网络与监控页同步测试

那么我们现在已经配置好可视化监控,我们不妨来测试一下,注意当前区块高度为2,我们在虚拟机增加一个记录,观察响应数据会不会发生变化。

我们来到服务器1的amops/multiple-deployment目录下,进入容器cli1中,

docker exec -it cli1 bash

增加两个新的车辆记录

peer chaincode invoke -o host1orderer.amops.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/amops.com/orderers/host1orderer.amops.com/msp/tlscacerts/tlsca.amops.com-cert.pem -C amops -n fabcar --peerAddresses peer0.host1.amops.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/host1.amops.com/peers/peer0.host1.amops.com/tls/ca.crt --peerAddresses peer0.host2.amops.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/host2.amops.com/peers/peer0.host2.amops.com/tls/ca.crt --peerAddresses peer0.host3.amops.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/host3.amops.com/peers/peer0.host3.amops.com/tls/ca.crt -c '{"Args":["CreateCar","CAR20","dazhong","dazhong","blue","smy"]}'

peer chaincode invoke -o host1orderer.amops.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/amops.com/orderers/host1orderer.amops.com/msp/tlscacerts/tlsca.amops.com-cert.pem -C amops -n fabcar --peerAddresses peer0.host1.amops.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/host1.amops.com/peers/peer0.host1.amops.com/tls/ca.crt --peerAddresses peer0.host2.amops.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/host2.amops.com/peers/peer0.host2.amops.com/tls/ca.crt --peerAddresses peer0.host3.amops.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/host3.amops.com/peers/peer0.host3.amops.com/tls/ca.crt -c '{"Args":["CreateCar","CAR21","dazhong","dazhong","blue","smy"]}'

我们再回到监控页,如图所示操作

可以看到区块数目已经从49升到51,同时背书请求响应也增加了2。

说明fabric网络已经与监控同步,设置完毕,以后可以使用可视化页面来实时观察区块链的详细信息了!接下来我们讲解使用docker swarm实现的多机部署。