10分钟搭建Pinpoint全链路追踪:Docker Compose一站式部署指南
【免费下载链接】pinpoint 项目地址: https://gitcode.com/gh_mirrors/pin/pinpoint
你是否还在为分布式系统的性能瓶颈排查而烦恼?是否因复杂的APM(Application Performance Management,应用性能管理)工具部署流程而却步?本文将带你通过Docker Compose快速搭建Pinpoint全链路追踪系统,无需复杂配置,10分钟即可完成从环境准备到服务监控的全流程,让你轻松掌握分布式应用的性能脉搏。
什么是Pinpoint
Pinpoint是一款开源的APM工具,专为大规模分布式系统设计,支持Java、PHP、Python等多种语言。它能够帮助你:
- 直观了解应用拓扑结构
- 实时监控应用性能指标
- 追踪分布式事务调用链
- 无需修改代码即可接入Agent
- 对系统性能影响极小(资源占用增加约3%)
为什么选择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镜像:
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。
接入测试应用
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界面中,你可以看到测试应用的调用链信息:
性能监控
Pinpoint提供了丰富的性能监控指标,包括:
URI指标
基础设施指标
常见问题解决
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 项目地址: https://gitcode.com/gh_mirrors/pin/pinpoint
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考








