搭建prometheus监控联盟链fabric2.0的测试网络
一. 搭建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官网找到。效果如下(因为还未在测试网部署通道和发送交易。所以账本交易和背书提案等无数据)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战