全链路跟踪之Pinpoint

一、前言

1.1、缘由

随着项目扩大和升级,系统架构也从最开始的单机模式进化到分布式架构,各个系统维护起来也比较费劲了,当遇到问题时无法快速定位问题点,这时迫切需要通过某些方法定位和跟踪系统,以及监控系统性能。

实现方法有很多,可以自定义开发相关框架,也可以使用第三方开源的框架。如果是完全自己开发,短期内还无法完成,所以考虑使用第三方框架。

1.2、调研

调研了市面上几个同类框架,有:

  • Google的Dapper
  • Twitter的Zipkin
  • 点评的CAT
  • Naver的Pinpoint
  • Skywalking

通过对比,最终还是选择了Pinpoint,最重要的原因是,对代码的零侵入,运用JavaAgent字节码增强技术,只需要加启动参数即可。

二、初识Pinpoint

2.1、Pinpoint是什么

Pinpoint是基于Java编写的一个APM(APM:Application Performance Management,应用性能管理)工具。受Dapper的启发,Pinpoint提供了一种解决方案,通过在分布式应用程序中跟踪事务来帮助分析系统的整体结构以及它们中的组件之间的相互关系。

2.2、Pinpoint架构

架构说明:

  • Pinpoint Collector:收集各种性能数据
  • Pinpoint Agent:运行于应用中的探针
  • Pinpoint Web UI:监控查看界面
  • HBase Storage:收集数据存储库

三、搭建环境

3.1、相关工具

  • CentOS 7.4 64位
  • JDK 1.8.0_144
  • ZooKeeper 3.4.13
  • Pinpoint 1.8.0
  • HBase 1.2.8
  • Tomcat 8.5.34

3.2、安装JDK

3.3、安装ZooKeeper

3.4、安装HBase

3.4.1、下载

cd /data

wget http://mirror.bit.edu.cn/apache/hbase/hbase-1.2.8/hbase-1.2.8-bin.tar.gz

3.4.2、安装Zip解压工具

yum install unzip

3.4.3、解压HBase

unzip hbase-1.2.8/hbase-1.2.8-bin.tar.gz

mv hbase-1.2.8 hbase

3.4.4、修改配置

打开 /data/hbase/conf/hbase-env.sh

修改为false,使用独立安装的Zookeeper

export HBASE_MANAGES_ZK=false

打开 /data/hbase/conf/hbase-site.xml

添加如下配置

hbase.cluster.distributed

true

3.4.5、启动HBase

cd /data/hbase/bin

./start-hbase.sh

3.4.6、创建数据表

下载Pinpoint创建表脚本:https://github.com/naver/pinpoint/blob/master/hbase/scripts/hbase-create.hbase

./hbase shell hbase-create.habse

3.5、安装Tomcat

3.5.1、下载

cd /data

wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz

unzip apache-tomcat-8.5.34

mv apache-tomcat-8.5.34 tomcat

3.5.2、启动

cd /data/tomcat/bin

./startup.sh

3.6、安装Pinpoint

3.6.1、下载

地址:https://github.com/naver/pinpoint/releases

分别下载:pinpoint-agent-1.8.0.tar.gz、pinpoint-collector-1.8.0.war、pinpoint-web-1.8.0.war

pinpoint-collector-1.8.0.war 重命名为 collector.war

pinpoint-web-1.8.0.war 重命名为 ROOT.war

拷贝到Tomcat的webapps目录下:

由于Tomcat、HBase、Zoookeeper都安装在同一台服务器中,所以Pinpoint无需更改配置文件,保持默认即可。

3.6.2、访问WEB

地址:http://localhost

3.7、配置Agent

3.7.1、配置

解压pinpoint-agent-1.8.0.tar.gz,重命名为 pinpoint-agent,拷贝到Java应用所在服务器中。

修改 pinpoint.config 文件

采集器所在服务器IP地址

profiler.collector.ip=172.19.1.2

设置应用程序类型为 Spring Boot

profiler.applicationservertype=SPRING_BOOT

3.7.2、启动应用

java -jar -javaagent:/pinpoint-agent/pinpoint-bootstrap-1.8.0.jar -Dpinpoint.agentId=user-service -Dpinpoint.applicationName=user-service user-service.jar

-javaagent:pinpoint探针路径

-Dpinpoint.agentId:探针ID

-Dpinpoint.applicationName:应用名称

四、预览

五、其它

  • pinpoint-bootstrap-1.8.0.jar 的名称不能修改,否则导致启动失败
  • 启动Collector后,自动就开启了9994、9995、9996端口,服务器应开放对应端口

你可能感兴趣的:(Java,系统架构,Spring,Boot)