You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Hyperledger Caliper监控远程Docker容器性能?

解决方案:Hyperledger Caliper监控远程Docker容器性能

1. 修正Caliper监控配置格式

你之前的配置错误地将容器名拼接到了Docker daemon的URL中,正确做法是分开指定远程Docker daemon地址和要监控的容器列表。示例配置如下(修改你的networkconfig.json或对应监控配置文件):

monitor:
  type: docker
  docker:
    # 指定要监控的远程容器名称(需与远程服务器`docker ps`输出的NAMES完全一致)
    containers:
      - peer0.org2.example.com
      - peer1.org2.example.com
      - orderer2.example.com
    # 第二台服务器的Docker远程API地址(默认端口2375,生产环境建议用TLS加密的2376)
    daemon: http://10.0.0.252:2375

2. 启用远程服务器的Docker远程API访问

在第二台服务器上,修改Docker配置以允许远程连接:

  • 编辑Docker daemon配置文件/etc/docker/daemon.json,添加远程访问地址:
{
  "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
  • 重启Docker服务使配置生效:
systemctl restart docker
  • 开放服务器防火墙的2375端口(云服务器需额外配置安全组规则):
# 以firewalld为例
firewall-cmd --add-port=2375/tcp --permanent
firewall-cmd --reload

注意:生产环境必须启用TLS加密保护Docker远程API,避免未授权访问,测试环境可暂时使用裸端口。

3. 验证远程Docker API连通性

在第一台服务器上执行以下命令,确认能正常获取远程服务器的容器列表:

curl http://10.0.0.252:2375/containers/json

如果返回JSON格式的容器信息,说明API连通正常;若失败,检查网络连通性、Docker配置和防火墙规则。

4. 排查版本兼容性与配置细节

  • 确保Hyperledger Caliper版本与Docker远程API版本兼容,建议使用对应文档推荐的Caliper版本。
  • 确认容器名称与远程服务器docker ps输出的NAMES字段完全一致,大小写敏感。

错误原因说明

你遇到的TypeError: cannot read properties of undefined {hasOwnproperty}错误,本质是配置格式错误导致Caliper无法正确解析监控配置——错误地将容器名嵌入daemon URL,使Caliper无法识别预期的配置字段,进而引发解析异常。

内容的提问来源于stack exchange,提问作者Junseok Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 16:37:31