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
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
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实现的多机部署。