开源 APM 工具 Pinpoint 线上部署

发布于 2021-04-03 01:27:28 字数 11788 浏览 1552 评论 0

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

安装指南

pinpoint 运行需要以实例

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

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

Java version required to run Pinpoint:

Pinpoint VersionAgentCollectorWeb
1.0.x6-86+6+
1.1.x6-87+7+
1.5.x6-87+7+
1.6.x6-87+7+
1.7.x6-88+8+

HBase compatibility table:

Pinpoint VersionHBase 0.94.xHBase 0.98.xHBase 1.0.xHBase 1.1.xHBase 1.2.x
1.0.xyesnononono
1.1.xnonot testedyesnot testednot tested
1.5.xnonot testedyesnot testednot tested
1.6.xnonot testednot testednot testedyes
1.7.xnonot testednot testednot testedyes

Agent compatibility table:

Agent VersionCollector 1.0.xCollector 1.1.xCollector 1.5.xCollector 1.6.xCollector 1.7.x
1.0.xyesyesyesyesyes
1.1.xnot testedyesyesyesyes
1.5.xnonoyesyesyes
1.6.xnononot testedyesyes
1.7.xnonononoyes

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.2vm_1zookeeper
10.10.10.3vm_2zookeeper
10.10.10.4vm_3zookeeper
10.10.10.5vm_4hbase
10.10.10.6vm_5Collector
10.10.10.7vm_6Web

所有机器添加 ‘/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 就出如界面。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

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

0 文章
0 评论
84960 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文