开源 APM 工具 Pinpoint 线上部署 - 文章教程

开源 APM 工具 Pinpoint 线上部署

发布于 2021-04-03 字数 12350 浏览 1142 评论 0

Pinpoint 是一个分析大型分布式系统的平台,提供解决方案来处理海量跟踪数据。2012年七月开始开发,2015年1月9日作为开源项目启动。

安装指南

pinpoint 运行需要以实例

  • HBase (用于存储)
  • pinpoint Collector (收集数据)
  • pinpoint Web (使用web 界面)
  • pinpoint Agent (java 探针)

版本信息(以下来源官网)

Java version required to run Pinpoint:

Pinpoint Version Agent Collector Web
1.0.x 6-8 6+ 6+
1.1.x 6-8 7+ 7+
1.5.x 6-8 7+ 7+
1.6.x 6-8 7+ 7+
1.7.x 6-8 8+ 8+

HBase compatibility table:

Pinpoint Version HBase 0.94.x HBase 0.98.x HBase 1.0.x HBase 1.1.x HBase 1.2.x
1.0.x yes no no no no
1.1.x no not tested yes not tested not tested
1.5.x no not tested yes not tested not tested
1.6.x no not tested not tested not tested yes
1.7.x no not tested not tested not tested yes

Agent compatibility table:

Agent Version Collector 1.0.x Collector 1.1.x Collector 1.5.x Collector 1.6.x Collector 1.7.x
1.0.x yes yes yes yes yes
1.1.x not tested yes yes yes yes
1.5.x no no yes yes yes
1.6.x no no not tested yes yes
1.7.x no no no no yes

Pinpoint Web Supported Browsers:Chrome

生产环境部署

注意: 该文章是做生产环境部署,并非 quick-start guide. 如需要 quick-start guide 建议阅读官方文档 quick-start guide,中文版本:https://www.wenjiangs.com/doc/6pjrawkk5

应用分布

ip 机器名称 appName
10.10.10.2 vm_1 zookeeper
10.10.10.3 vm_2 zookeeper
10.10.10.4 vm_3 zookeeper
10.10.10.5 vm_4 hbase
10.10.10.6 vm_5 Collector
10.10.10.7 vm_6 Web

所有机器添加 ‘/etc/hosts’

10.10.10.2 zk1.iqarr.com
10.10.10.3 zk2.iqarr.com
10.10.10.4 zk3.iqarr.com
10.10.10.5 vm_4
10.10.10.6  agent.iqarr.com

zookeeper 部署

1、下载最新zookeeper

配置 conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
maxClientCnxns=60
autopurge.snapRetainCount=3
autopurge.purgeInterval=24
dataLogDir=/opt/zookeeper/logs
server.1=10.10.10.2:2888:3888
server.2=10.10.10.3:2888:3888
server.3=10.10.10.4:2888:3888

2、创建 zk 的数据目录和日志目录

mkdir -p /opt/zookeeper/data/
mkdir -p /opt/zookeeper/logs

3、创建 myid 文件,节点对应 id

# 在10.10.10.2 节点配置myid
cd /opt/zookeeper/data
echo 1 > myid
# 在10.10.10.3 节点配置myid
cd /opt/zookeeper/data
echo 2 > myid
# 在10.10.10.4 节点配置myid
cd /opt/zookeeper/data
echo 3 > myid

4、分别启动每台机器zookeeper

5、开放端口

firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --reload

hbase 部署

1、下载hbase

2、解压安装 hbase (HBASE_HOME为 hbase 安装目录)

3、配置 HBASE_HOME/conf/hbase-env.sh 使用独立zookeeper

export HBASE_MANAGES_ZK=false

4、创建文件 HBASE_HOME/conf/zoo.cfg (注意该文件就是zk 的配置文件)

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
maxClientCnxns=60
autopurge.snapRetainCount=3
autopurge.purgeInterval=24
dataLogDir=/opt/zookeeper/logs
server.1=10.10.10.2:2888:3888
server.2=10.10.10.3:2888:3888
server.3=10.10.10.4:2888:3888

5、配置 hbase-site.xml

<configuration>
 <property>
    <name>hbase.rootdir</name>
    <value>file:///opt/hbase/data</value>
 </property>
 <property>  
    <name>hbase.cluster.distributed</name>  
    <value>true</value>      
  </property>
  <property>
        <name>hbase.zookeeper.quorum</name>
        <value>zk1.iqarr.com,zk2.iqarr.com,zk3.iqarr.com</value>
    </property>
    <property>
        <name>zookeeper.session.timeout</name>
        <value>60000000</value>
    </property>
    <property>
      <name>hbase.regionserver.lease.period</name>
      <value>900000</value> <!-- 900 000, 15 minutes -->
    </property>
    <property>
      <name>hbase.rpc.timeout</name>
      <value>900000</value> <!-- 15 minutes -->
    </property>
</configuration>

注:hbase data 目录在 /opt/hbase/data

6、启动hbase

#启动hbase
sh HBASE_HOME/bin/start-hbase.sh

7、创建hbase表

sh HBASE_HOME/bin/hbase shell hbase-create.hbase

8、开放端口

firewall-cmd --add-port=16010/tcp --permanent
firewall-cmd --add-port=16201/tcp --permanent
firewall-cmd --add-port=16301/tcp --permanent
firewall-cmd --reload

注:hbase-create.hbase 脚本,如果是下载 release 包脚本在 pinpoint-x.x.x/hbase/scripts/

配置 pinpoint-collector

1、下载 tomcat 和 pinpoint-collector-X.X.X.war,解压 pinpoint-collector-X.X.X.war 到 tomcat 的 webapps 目录中

2、配置 pinpoint-collector 配置信息

#编辑 tomcat/webapps/collector/WEB-INF/classes/pinpoint-collector.properties
#修改以下信息
#配置zk 地址
cluster.zookeeper.address=zk1.iqarr.com,zk2.iqarr.com,zk3.iqarr.com
cluster.enable=true
cluster.zookeeper.address=zk1.iqarr.com,zk2.iqarr.com,zk3.iqarr.com   #zookeeper 集群地址
cluster.zookeeper.sessiontimeout=30000
cluster.listen.ip=0.0.0.0
cluster.listen.port=9997

3、配置 hbase.properties 配置信息

#编辑tomcat/webapps/collector/WEB-INF/classes/hbase.properties
hbase.client.host=zk1.iqarr.com,zk2.iqarr.com,zk3.iqarr.com  #zk集群地址
hbase.client.port=2181  #zk port

4、启动tomcat

5、开放端口

firewall-cmd --add-port=9994/tcp --permanent
firewall-cmd --add-port=9995/udp --permanent
firewall-cmd --add-port=9996/udp --permanent
firewall-cmd --add-port=9997/tcp --permanent
firewall-cmd --reload

配置 pinpoint-web

1、下载 tomcat 和 pinpoint-web-x.x.x.war,解压 pinpoint-web-X.X.X.war 到 tomcat 的 webapps 目录中的 ROOT 目录(目前必须放到ROOT目录)

2、配置 hbase.properties 配置信息

#编辑tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties
hbase.client.host=zk1.iqarr.com,zk2.iqarr.com,zk3.iqarr.com  #zk集群地址
hbase.client.port=2181  #zk port

3、配置pinpoint-web.properties配置信息

#编辑tomcat/webapps/ROOT/WEB-INF/classes/pinpoint-web.properties
#zk 地址
cluster.zookeeper.address=zk1.iqarr.com,zk2.iqarr.com,zk3.iqarr.com
cluster.enable=true
cluster.web.tcp.port=
cluster.zookeeper.sessiontimeout=30000
cluster.zookeeper.retry.interval=60000
cluster.connect.address=10.10.10.6:9997 # 注意这里是pinpoint-collector ip 地址

4、启动 tomcat

5、开放端口

firewall-cmd --add-port=8080/tcp --permanent  #注意tomcat port
firewall-cmd --reload

配置 pinpoint-agent

1、下载  pinpoint-agent-x.x.x.tar.gz

2、解压配置

# 修改文件pinpoint.config
profiler.collector.ip=agent.iqarr.com

3、配置需要收集应用(这里以tomcat例子)

#创建文件 TOMCAT_HOME/bin/setenv.sh
#添加如下内容
AGENT_PATH="$CATALINA_BASE/bin/ex"
# 这里agent版本号
PINPOINT_VERSION="1.7.1"
#默认取主机名称,这里必须唯一
AGENT_ID=`hostname`
#应用名称
APPLICATION_NAME="web-dome"
export CATALINA_OPTS="$CATALINA_OPTS -javaagent:${AGENT_PATH}/pinpoint-bootstrap-${PINPOINT_VERSION}.jar"
export CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=$AGENT_ID"
export CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=$APPLICATION_NAME"

4、复制 agent 到 tomcat 目录

#复制 刚才解压配置好的agent到tomcat的 TOMCAT_HOME/bin/ex
# 目录结构如下
byzy@debian8:~/tomcat-8_web$ tree -L 3
.
├── bin
│   ├── bootstrap.jar
│   ├── catalina.bat
│   ├── catalina.sh
│   ├── catalina-tasks.xml
│   ├── commons-daemon.jar
│   ├── commons-daemon-native.tar.gz
│   ├── configtest.bat
│   ├── configtest.sh
│   ├── daemon.sh
│   ├── digest.bat
│   ├── digest.sh
│   ├── ex
│   │   ├── boot
│   │   ├── lib
│   │   ├── log
│   │   ├── pinpoint-bootstrap-1.7.1.jar
│   │   ├── pinpoint.config
│   │   ├── plugin
│   │   ├── script
│   │   └── tools
│   ├── setclasspath.bat
│   ├── setclasspath.sh
│   ├── setenv.sh
│   ├── shutdown.bat
│   ├── shutdown.sh
│   ├── startup.bat
│   ├── startup.sh
│   ├── tomcat-juli.jar
│   ├── tomcat-native.tar.gz
│   ├── tomcatService.sh
│   ├── tool-wrapper.bat
│   ├── tool-wrapper.sh
│   ├── version.bat
│   └── version.sh
├── change.log
├── conf
│   ├── Catalina
│   │   └── localhost
│   ├── catalina.policy
│   ├── catalina.properties
│   ├── context.xml
│   ├── jaspic-providers.xml
│   ├── jaspic-providers.xsd
│   ├── logging.properties
│   ├── server.xml
│   ├── tomcat-users.xml
│   ├── tomcat-users.xsd
│   └── web.xml
├── lib
│   ├── annotations-api.jar
│   ├── catalina-ant.jar
│   ├── catalina-ha.jar
│   ├── catalina.jar
│   ├── catalina-storeconfig.jar
│   ├── catalina-tribes.jar
│   ├── ecj-4.6.3.jar
│   ├── el-api.jar
│   ├── jasper-el.jar
│   ├── jasper.jar
│   ├── jaspic-api.jar
│   ├── jsp-api.jar
│   ├── org
│   │   └── apache
│   ├── servlet-api.jar
│   ├── spring-instrument-tomcat-4.3.4.RELEASE.jar
│   ├── tomcat-api.jar
│   ├── tomcat-coyote.jar
│   ├── tomcat-dbcp.jar
│   ├── tomcat-i18n-es.jar
│   ├── tomcat-i18n-fr.jar
│   ├── tomcat-i18n-ja.jar
│   ├── tomcat-jdbc.jar
│   ├── tomcat-jni.jar
│   ├── tomcat-util.jar
│   ├── tomcat-util-scan.jar
│   ├── tomcat-websocket.jar
│   └── websocket-api.jar
├── logs
├── temp
├── webapps
│   ├── ROOT
│   └── web
│       ├── META-INF
│       └── WEB-INF
└── work
    └── Catalina
        └── localhost
24 directories, 64 files

4、启动应用,当有请求时候在 pinpoint-web 可看到请求记录

注: TOMCAT_HOME 为 tomcat 安装目录
注: agent 默认收集 20% 的请求所以可能请求一次无法看到的。当然也可以配置全部收集。

检查 pinpoint-web 界面

访问 http://10.10.10.7:8080 就出如界面。

开源 APM 工具 Pinpoint 线上部署

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2583 文章
29 评论
84935 人气
更多

推荐作者

Jay

文章 0 评论 0

guowei007

文章 0 评论 0

2668157715

文章 0 评论 0

HY阳

文章 0 评论 0

想挽留

文章 30 评论 3