10分钟搭建Pinpoint全链路追踪:Docker Compose一站式部署指南

10分钟搭建Pinpoint全链路追踪:Docker Compose一站式部署指南

【免费下载链接】pinpoint 【免费下载链接】pinpoint 项目地址: https://gitcode.com/gh_mirrors/pin/pinpoint

你是否还在为分布式系统的性能瓶颈排查而烦恼?是否因复杂的APM(Application Performance Management,应用性能管理)工具部署流程而却步?本文将带你通过Docker Compose快速搭建Pinpoint全链路追踪系统,无需复杂配置,10分钟即可完成从环境准备到服务监控的全流程,让你轻松掌握分布式应用的性能脉搏。

什么是Pinpoint

Pinpoint是一款开源的APM工具,专为大规模分布式系统设计,支持Java、PHP、Python等多种语言。它能够帮助你:

  • 直观了解应用拓扑结构
  • 实时监控应用性能指标
  • 追踪分布式事务调用链
  • 无需修改代码即可接入Agent
  • 对系统性能影响极小(资源占用增加约3%)

Server Map

为什么选择Docker Compose部署

相比传统部署方式,Docker Compose部署Pinpoint具有以下优势:

  • 环境一致性:避免因环境差异导致的部署问题
  • 快速启停:一键启动/停止整个Pinpoint生态系统
  • 资源隔离:各组件独立运行,互不干扰
  • 版本控制:轻松管理不同版本的Pinpoint组件

准备工作

硬件要求

  • CPU:至少2核
  • 内存:至少4GB
  • 磁盘:至少20GB可用空间

软件要求

  • Docker:19.03+
  • Docker Compose:1.27+

获取项目代码

git clone https://link.gitcode.com/i/bbe3250a6a70f1200fbdaf2b9d1942a4.git
cd pinpoint

部署步骤

1. 构建HBase容器

HBase是Pinpoint的存储组件,用于存储监控数据。项目提供了现成的Dockerfile用于构建HBase镜像:

HBase Dockerfile

FROM openjdk:8u342-slim

ARG HBASE_VERSION=${HBASE_VERSION:-2.2.6}

ENV HBASE_REPOSITORY=http://apache.mirrors.pair.com/hbase
ENV HBASE_SUB_REPOSITORY=http://archive.apache.org/dist/hbase

ENV BASE_DIR=/opt/hbase
ENV HBASE_HOME=${BASE_DIR}/hbase-${HBASE_VERSION}

# 复制配置脚本和初始化脚本
COPY scripts/hbase-create.hbase ${BASE_DIR}/hbase-create.hbase
COPY hbase-docker/Dockerfiles/configure-hbase.sh /usr/local/bin/configure-hbase.sh
COPY hbase-docker/Dockerfiles/check-table.sh /usr/local/bin/check-table.sh
COPY hbase-docker/Dockerfiles/initialize-hbase.sh /usr/local/bin/initialize-hbase.sh

# 安装依赖并设置权限
RUN apt-get update && apt-get install --no-install-recommends -y curl && apt-get clean \
    && chmod a+x /usr/local/bin/initialize-hbase.sh \
    && chmod a+x /usr/local/bin/check-table.sh \
    && chmod a+x /usr/local/bin/configure-hbase.sh

# 下载并解压HBase
RUN mkdir -p ${BASE_DIR} \
    && curl -fSL "${HBASE_REPOSITORY}/${HBASE_VERSION}/hbase-${HBASE_VERSION}-bin.tar.gz" -o hbase.tar.gz || curl -fSL "${HBASE_SUB_REPOSITORY}/${HBASE_VERSION}/hbase-${HBASE_VERSION}-bin.tar.gz" -o ${BASE_DIR}/hbase.tar.gz \
    && tar xfvz ${BASE_DIR}/hbase.tar.gz -C ${BASE_DIR} \
    && rm ${BASE_DIR}/hbase.tar.gz

# 复制配置文件
COPY hbase-docker/Dockerfiles/hbase-site.xml ${HBASE_HOME}/conf/hbase-site.xml
COPY hbase-docker/Dockerfiles/hbase-env.sh ${HBASE_HOME}/conf/hbase-env.sh

VOLUME ["/home/pinpoint/hbase", "/home/pinpoint/zookeeper"]

CMD /usr/local/bin/initialize-hbase.sh && tail -f /dev/null

构建HBase镜像:

cd hbase
docker build -t pinpoint-hbase:latest .
cd ..

2. 创建Docker Compose配置文件

在项目根目录创建docker-compose.yml文件:

version: '3'

services:
  zookeeper:
    image: zookeeper:3.5
    ports:
      - "2181:2181"
    environment:
      - ZOO_MY_ID=1
    volumes:
      - zookeeper-data:/data
      - zookeeper-datalog:/datalog

  hbase:
    image: pinpoint-hbase:latest
    ports:
      - "16010:16010"
      - "16020:16020"
      - "16030:16030"
    environment:
      - HBASE_VERSION=2.2.6
      - HBASE_MANAGES_ZK=false
    depends_on:
      - zookeeper
    volumes:
      - hbase-data:/home/pinpoint/hbase
      - hbase-zookeeper:/home/pinpoint/zookeeper
    command: /usr/local/bin/initialize-hbase.sh

  collector:
    build:
      context: .
      dockerfile: collector/Dockerfile
    ports:
      - "9994:9994"
      - "9995:9995"
      - "9996:9996"
    environment:
      - PINPOINT_ZOOKEEPER_ADDRESS=zookeeper:2181
    depends_on:
      - zookeeper
      - hbase

  web:
    build:
      context: .
      dockerfile: web/Dockerfile
    ports:
      - "8080:8080"
    environment:
      - PINPOINT_ZOOKEEPER_ADDRESS=zookeeper:2181
    depends_on:
      - zookeeper
      - hbase
      - collector

  testapp:
    build:
      context: ./quickstart/testapp
    ports:
      - "8082:8082"
    environment:
      - PINPOINT_AGENT_ID=test-agent
      - PINPOINT_APPLICATION_NAME=TESTAPP
      - PINPOINT_COLLECTOR_IP=collector
    depends_on:
      - collector

volumes:
  zookeeper-data:
  zookeeper-datalog:
  hbase-data:
  hbase-zookeeper:

3. 启动Pinpoint服务

docker-compose up -d

这个过程可能需要几分钟时间,取决于你的网络速度和硬件性能。

4. 初始化HBase表结构

HBase启动后,需要创建Pinpoint所需的表结构:

docker-compose exec hbase hbase shell /opt/hbase/hbase-create.hbase

5. 验证部署

访问Pinpoint Web界面:http://localhost:8080

你应该能看到Pinpoint的登录界面。默认用户名和密码都是admin

Inspector

接入测试应用

Pinpoint提供了一个测试应用,你可以通过以下步骤启动并接入Pinpoint Agent:

cd quickstart/testapp
./mvnw clean package
java -jar -javaagent:../../agent/target/pinpoint-agent-2.3.1/pinpoint-bootstrap.jar -Dpinpoint.agentId=test-agent -Dpinpoint.applicationName=TESTAPP target/pinpoint-quickstart-testapp-2.3.1.jar

访问测试应用:http://localhost:8082

在Pinpoint Web界面中,你可以看到测试应用的调用链信息:

Call Stack

性能监控

Pinpoint提供了丰富的性能监控指标,包括:

URI指标

URI-Metric

基础设施指标

Infrastructure

常见问题解决

HBase启动失败

检查HBase日志:

docker-compose logs hbase

确保Zookeeper服务正常运行,并且HBase配置正确。

Collector连接不上HBase

检查网络连接和HBase表是否创建成功:

docker-compose exec hbase hbase shell
hbase(main):001:0> list

应该能看到Pinpoint相关的表。

Web界面无法访问

检查Web服务日志:

docker-compose logs web

确保Web服务能够连接到Zookeeper和HBase。

总结

通过本文,你已经学会了如何使用Docker Compose快速部署Pinpoint全链路追踪系统。Pinpoint的强大功能可以帮助你更好地理解和优化分布式系统的性能。如果你有任何问题或建议,欢迎在项目仓库中提交issue。

下一步

  • 探索Pinpoint的高级功能
  • 接入自己的应用程序
  • 配置告警规则
  • 学习数据分析和性能优化

希望本文对你有所帮助,如果你觉得有用,请点赞、收藏并分享给更多需要的人!

参考资料

【免费下载链接】pinpoint 【免费下载链接】pinpoint 项目地址: https://gitcode.com/gh_mirrors/pin/pinpoint

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值