1.修改docker-compose文件
多机部署Fabric可以参考这篇文章
1.1修改orderer节点启动参数
cd /home/yujialing/go/src/github.com/hyperledger/fabric-samples/multiple-deployment
修改docker-compose-up.yaml
文件,在environment
处增加:
- ORDERER_OPERATIONS_LISTENADDRESS=0.0.0.0:8443
- ORDERER_METRICS_PROVIDER=prometheus
修改完成后如图所示,网络中所有orderer的environment
处都要添加,同机节点的端口号不要冲突
1.2修改peer节点启动参数
在environment
处增加:
- CORE_OPERATIONS_LISTENADDRESS=0.0.0.0:10443
- CORE_METRICS_PROVIDER=prometheus
2.配置Prometheus
2.1 拉取Prometheus镜像
配置一下镜像目的域名的ip映射
,有vpn
的小伙伴可以直接pull
镜像
ping github-production-release-asset-2e65be.s3.amazonaws.com
去hosts文件
处配置一下ip地址映射
sudo vim /etc/hosts
按照以下格式写进hosts文件
中
52.216.138.xxx github-production-release-asset-2e65be.s3.amazonaws.com
按I
插入,插入完成后按ESC
退出插入,输入:wq!
保存退出,如下图所示
重启一下网络
Ubuntu:
sudo /etc/init.d/networking restart
CentOS:
sudo /etc/init.d/network restart
执行拉取prometheus
镜像指令
docker pull prom/prometheus
2.2下载Prometheus到Hyperledger文件夹下
cd /home/yujialing/go/src/github.com/hyperledger
wget https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gz
tar -xvzf prometheus-2.23.0.linux-amd64
编辑prometheus.yml
配置文件
cd prometheus-2.23.0.linux-amd64
在scrape_configs
选项下添加,域名和端口号根据实际更改
- job_name: 'hyperledger_metrics'
scrape_interval: 10s
static_configs:
- targets: ['orderer0.amops.com:8443','orderer1.amops.com:9443','orderer2.amops.com:8443','peer0.agridepart.amops.com:10443','peer1.agridepart.amops.com:11443','peer0.agrimacowner.amops.com:9443','peer1.agrimacowner.amops.com:10443']
如图所示:
2.3启动prometheus服务
docker run -d --name prometheus-server -p 9090:9090 \
--restart always \
-v /home/yujialing/go/src/github.com/hyperledger/prometheus-2.23.0.linux-amd64/prometheus.yml:/prometheus.yml \
prom/prometheus \
--config.file=/prometheus.yml
查看Fabric
的NetworkMode
docker inspect orderer0.amops.com
查看prometheus
的容器id
docker ps
将prometheus
容器加入Fabric
网络,格式docker network connect <NetworkMode> <prometheus的容器id>
docker network connect multiple-deployment_default 07e9a1f03a59
3.访问Prometheus监控页面
通过主机IP:9090
的方式访问,在输入框中输入scrape_samples_scraped
scrape_samples_scraped
点击Status
中的Targets
可以各节点的状态,目前只能看到Prometheus
所在主机的节点状态,其他主机的状态显示连接错误,目前正在解决中(知道怎么解决的小伙伴可以提出来,谢谢你)。其他选项可以查看其他参数,各位小伙伴自行操作
4.Grafana配置
下载Grafana
cd /home/yujialing/go/src/github.com/hyperledger
wget https://dl.grafana.com/oss/release/grafana-7.3.5.linux-amd64.tar.gz
tar -zxvf grafana-7.3.5.linux-amd64.tar.gz
cd grafana-7.3.5/bin
./grafana-server
打开浏览器,通过Grafana
所在主机的IP:端口号
的形式访问控制面板,默认账号和密码均为admin
登陆进来界面如下所示:
选择配置菜单,点击增加数据源
选择Prometheus
作为数据源
输入部署Prometheus
所在的主机IP
加9090
端口号,例如http://192.168.171.xxx:9090
,输入完成后拉到最下面点击Save and Test
访问Grafana
官网,下载Fabric
模板的JSON
文件
https://grafana.com/
选择Grafana
菜单进入Dashboards
界面
在搜索框中输入Fabric
后选择Hyperledger Fabric Monitoring for 1.4
把Json文件下载下来
下载完成后回到Grafana
面板,导入刚刚下载完成的Json文件
点击Upload JSON file选择文件
点击import导入
导入完成后界面长这个样子,但有一些没数据,那么我们测试一下是否有数据
比如通过Fabric Version
查看指标是什么,点击下拉框
,选择编辑
按钮
采用的是fabric_version
那我们增添新的仪表板测试一下
设置指标
其实是有数据的,只是数据参数设置不对
我们返回主界面,把新建的仪表板移除
再次编辑Fabric Version
在Options
看到Field
确实是version
,但显示的是version
的名称,我们将Name
改为Current
(当前值),注意:Fabric Version展现的是当前值,但其他的像交易提案成功
次数应该设置为Total
版本号就出来了,随后点击应用回到主界面
主界面的Fabric Version就显示正常
各位小伙伴按需设计与分配可达到自己满意的效果
使用Prometheus+Grafana
监控Hyperledger Fabric
的运行参数详细流程大概就是上文所述
欢迎小伙伴讨论,如有错误请在评论区评论或发私聊消息,谢谢你。