Prometheus 监控 HyperLedger Fabric
1. 下载所需镜像
docker pull prom/prometheus
docker pull grafana/grafana
2. 修改orderer、peer节点
# orderer 节点
vim docker-compose-orderer.yaml
# 在environment下添加以下参数
environment:
- ORDERER_METRICS_PROVIDER=prometheus
- ORDERER_OPERATIONS_LISTENADDRESS=0.0.0.0:8443
# ports下增加8443端口
ports:
- 8443:8443 # 端口不要被占用
# peer节点
# org1
vim docker-compose-org1.yaml
environment:
- CORE_METRICS_PROVIDER=prometheus
- CORE_OPERATIONS_LISTENADDRESS=0.0.0.0:8443
ports:
- 8443:8443
# org2
vim docker-compose-org2.yaml
environment:
- CORE_METRICS_PROVIDER=prometheus
- CORE_OPERATIONS_LISTENADDRESS=0.0.0.0:8443
ports:
- 8443:8443
# 修改完成之后 up -d
# orderer
docker-compose -f docker-compose-orderer.yaml up -d
[+] Running 1/1
⠿ Container orderer.example.com Started 1.2s
# org1
docker-compose -f docker-compose-org1.yaml up -d
[+] Running 3/3
⠿ Container cli Running 0.0s
⠿ Container couchdb0.org1.example.com Running 0.0s
⠿ Container peer0.org1.example.com Started 1.8s
# org2
docker-compose -f docker-compose-org2.yaml up -d
[+] Running 3/3
⠿ Container couchdb0.org2.example.com Running 0.0s
⠿ Container peer0.org2.example.com Started 1.8s
⠿ Container cli Running 0.0s
3. 编写 prometheus.yml
vim prometheus.yml
global:
scrape_interval: 15s # # 将scrape间隔设置为每15秒。默认为每1分钟
evaluation_interval: 15s # 每15秒评估一次规则。默认为1分钟。
# scrape_timeout 设置为全局默认值(10s)。
scrape_configs:
# 使用名作为标签`job=<job_name>添加到从该配置中抓取的任何时间序列。
- job_name: 'hyperledger-fabric'
static_configs:
- targets: ['orderer.example.com:8443','peer0.org1.example.com:8443','peer0.org2.example.com:8443'] # 如果有多个节点请以逗号分割。
4. 编写 docker-compose-prometheus.yaml
vim docker-compose-prometheus.yaml
version: '2.0'
services:
prometheus:
image: prom/prometheus:latest
restart: always
container_name: prometheus # 容器名称
ports:
- 9090:9090 # 确保端口未被占用
extra_hosts:
- "orderer.example.com:192.168.88.121"
- "peer0.org1.example.com:192.168.88.122"
- "peer0.org2.example.com:192.168.88.123"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana:latest
restart: always
container_name: grafana
ports:
- 3000:3000
depends_on:
- prometheus
5. 启动 prometheus
docker-compose -f docker-compose-prometheus.yaml up -d
[+] Running 3/3
⠿ Network prometheus_default Created 0.1s
⠿ Container prometheus Started 1.9s
⠿ Container grafana Started 3.8s
浏览器中访问:
http://192.168.88.121:9090/targets
浏览器中访问: http://192.168.88.121:3000/ 打开 Grafana 界面
输入账号密码:
默认账号:admin
默认密码:admin
之后会让你设置新密码,设置完成之后登录即可
添加prometheus数据源:
添加url之后下方保存
访问Grafana 搜索需要监控组件的 dashboards 文件
Hyperledger Fabric 监控目前只支持 1.4 版本。2.x 版本的应该之后会出。
复制这个 dashboard id 添加fabric dashboard:
或者是下载 Get this dashboard之后导入到Grafana内:Download JSON
填入ID之后点击Load
点击import
效果如下,下面版本显示应该是Fabric版本和json不兼容
看一下是否有数据,选择Fabric Version下拉框
采用的是fabric_version
新建仪表盘
可以看到是有数据的,显示版本为2.4.2
接下来删除新创建的面板
继续选择Fabric Version下拉框,可以看到版本号出现,点击右上角apply
返回仪表盘看到版本正常
其它也一样设置
最终结果如下
完成!