别再手动折腾了!用Docker Compose一键部署Pinpoint 2.3.3 + HBase 1.4.9(附完整配置)

张开发
2026/6/9 15:27:29 15 分钟阅读
别再手动折腾了!用Docker Compose一键部署Pinpoint 2.3.3 + HBase 1.4.9(附完整配置)
容器化Pinpoint全栈部署指南从零构建APM监控系统在分布式系统复杂度日益增长的今天应用性能监控APM已成为保障服务可靠性的关键基础设施。传统手动部署Pinpoint的方案需要逐个组件安装配置不仅耗时费力还容易因环境差异导致各种玄学问题。本文将带你用Docker Compose构建完整的Pinpoint 2.3.3监控栈包含HBase 1.4.9存储层实现真正的一键部署体验。1. 容器化方案设计Pinpoint的传统部署涉及多个组件的串联协作HBase作为数据存储、Collector负责数据收集、Web提供可视化界面以及需要植入目标应用的Agent。容器化方案通过以下设计解决传统部署痛点版本固化所有组件版本在docker-compose.yml中明确定义避免我的环境能跑你的不行的经典问题依赖隔离每个服务运行在独立容器中Java版本、端口冲突等问题不复存在快速重置测试环境需要清理时只需docker-compose down -v即可完全重置资源可控通过cgroup限制各容器资源用量防止HBase内存溢出拖垮主机核心组件容器映射关系如下表传统组件容器镜像方案数据持久化方案HBase 1.4.9harisekhon/hbase:1.4挂载./data/hbase目录Pinpoint Webpinpointdocker/pinpoint-web链接HBase容器Pinpoint Collectorpinpointdocker/pinpoint-collector共享HBase连接提示生产环境建议将HBase替换为独立集群本文方案适合开发和测试环境快速搭建2. 基础环境准备开始前请确保宿主机已安装Docker 20.10Docker Compose 2.0至少4GB可用内存10GB磁盘空间创建项目目录结构mkdir -p pinpoint-docker/{data/hbase,configs} cd pinpoint-docker下载官方HBase初始化脚本wget -O configs/hbase-create.hbase \ https://raw.githubusercontent.com/pinpoint-apm/pinpoint/master/hbase/scripts/hbase-create.hbase3. Docker Compose编排实现创建docker-compose.yml文件包含以下核心服务配置version: 3.8 services: hbase: image: harisekhon/hbase:1.4 container_name: pinpoint-hbase ports: - 16010:16010 # HBase Web UI - 16020:16020 # RegionServer - 16030:16030 # Master备用端口 volumes: - ./data/hbase:/hbase-data - ./configs/hbase-create.hbase:/tmp/hbase-create.hbase environment: - HBASE_HEAPSIZE2G healthcheck: test: [CMD, curl, -f, http://localhost:16010] interval: 30s timeout: 10s retries: 3 zookeeper: image: zookeeper:3.6 container_name: pinpoint-zk ports: - 2181:2181 healthcheck: test: [CMD, zkServer.sh, status] collector: image: pinpointdocker/pinpoint-collector:2.3.3 container_name: pinpoint-collector ports: - 9991-9996:9991-9996 # Agent通信端口 - 29991-29996:29991-29996 # Grpc端口 depends_on: hbase: condition: service_healthy zookeeper: condition: service_healthy environment: - HBASE_HOSTpinpoint-hbase - ZOOKEEPER_HOSTpinpoint-zk web: image: pinpointdocker/pinpoint-web:2.3.3 container_name: pinpoint-web ports: - 8080:8080 depends_on: collector: condition: service_started environment: - HBASE_HOSTpinpoint-hbase - ZOOKEEPER_HOSTpinpoint-zk启动完整监控栈docker-compose up -d验证服务状态docker-compose ps应看到所有服务状态为running。4. 接入应用监控以Spring Boot应用为例接入Pinpoint监控只需三步下载对应版本的Agent到应用服务器wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.3.3/pinpoint-agent-2.3.3.tar.gz tar -xzf pinpoint-agent-2.3.3.tar.gz修改Agent配置config/pinpoint.configprofiler.collector.ipDocker主机IP profiler.transport.grpc.collector.ipDocker主机IP profiler.sampling.rate10 # 采样率百分比启动应用时附加JavaAgent参数java -javaagent:./pinpoint-agent/pinpoint-bootstrap.jar \ -Dpinpoint.agentIdorder-service \ -Dpinpoint.applicationNameorder-system \ -jar your-app.jar常见接入问题排查无数据显示检查Agent与Collector网络连通性确保9991-9996端口开放拓扑图不全确认所有相关应用使用相同的applicationName前缀高延迟调整采样率或增加Collector容器资源5. 高级配置与优化HBase性能调优在docker-compose.yml中为HBase容器添加JVM参数environment: - HBASE_MASTER_OPTS-Xms2g -Xmx2g -XX:UseG1GC - HBASE_REGIONSERVER_OPTS-Xms4g -Xmx4g -XX:UseG1GCCollector水平扩展当监控应用数量增加时可通过复制Collector实例分担负载collector2: image: pinpointdocker/pinpoint-collector:2.3.3 ports: - 9997-9999:9997-9999 - 29997-29999:29997-29999 environment: - CLUSTER_ENABLEtrue - CLUSTER_ZK_ADDRESSpinpoint-zk:2181数据持久化方案修改HBase容器配置实现数据持久化volumes: - ./data/hbase:/hbase-data - ./hbase-config:/etc/hbase/conf创建自定义HBase配置文件hbase-config/hbase-site.xmlproperty namehbase.rootdir/name valuefile:///hbase-data/value /property6. 监控数据可视化成功接入应用后访问http://docker-host:8080可看到以下功能模块实时拓扑图动态展示服务间调用关系调用链追踪查看任意请求的完整执行路径JVM监控实时显示内存、线程、GC状态异常统计自动记录方法级别异常信息典型使用场景示例定位慢查询在散点图中筛选高延迟请求分析依赖瓶颈通过拓扑图发现异常调用链路容量规划基于历史数据预测资源需求对于需要长期存储的监控数据建议配置HBase定期快照docker exec pinpoint-hbase hbase shell snapshot ApplicationTraceIndex, trace_index_backup在容器化方案中遇到性能问题时可优先检查以下指标HBase RegionServer内存使用通过16010端口Collector的9991端口连接数网络延迟特别是跨主机部署时

更多文章