一.Pinpoint是什么?
Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能。基于GoogleDapper论文进行的实现,与另一款开源的全链路分析工具Zipkin类似,但相比Zipkin提供了无侵入式、代码维度的监控等更多的特性。 Pinpoint支持的功能比较丰富,可以支持如下几种功能:
1.服务拓扑图:对整个系统中应用的调用关系进行了可视化的展示,单击某个服务节点,可以显示该节点的详细信息,比如当前节点状态、请求数量等
2.实时活跃线程图:监控应用内活跃线程的执行情况,对应用的线程执行性能可以有比较直观的了解
3.请求响应散点图:以时间维度进行请求计数和响应时间的展示,拖过拖动图表可以选择对应的请求查看执行的详细情况
4.请求调用栈查看:对分布式环境中每个请求提供了代码维度的可见性,可以在页面中查看请求针对到代码维度的执行详情,帮助查找请求的瓶颈和故障原因。
5.应用状态、机器状态检查:通过这个功能可以查看相关应用程序的其他的一些详细信息,比如CPU使用情况,内存状态、垃圾收集状态,TPS和JVM信息等参数。
二.架构组成
Pinpoint 主要由 3 个组件外加 Hbase 数据库组成,三个组件分别为:Agent、Collector 和 Web UI。
1.Agent组件:用于收集应用端监控数据,无侵入式,只需要在启动命令中加入部分参数即可
2.Collector组件:数据收集模块,接收Agent发送过来的监控数据,并存储到HBase
3.WebUI:监控展示模块,展示系统调用关系、调用详情、应用状态等,并支持报警等功能
三.各组件兼容性
1.Java要求的版本
- HBase 兼容性表
- Agent - Collector 兼容性表
- Flink 兼容性表
本次安装版本说明
tomcat:apache-tomcat-8.0.36
Hbase:hbase-1.2.12
pinpoint-agent:pinpoint-agent-1.7.3
pinpoint-collector:pinpoint-collector-1.7.3
pinpoint-web:pinpoint-web-1.7.3
jdk:java-1.8
Flink:本次版本安装未使用flink
四.安装规划
五.安装步骤
说明:该文档不包含jdk安装说明
1. 192.168.229.128节点内容安装
1)安装Hbase
pinpoint收集来的测试数据,主要是存在Hbase数据库的。所以它可以收集大量的数据,可以进行更加详细的分析。
1.1解压hbase文件
[root@master pp_res]# tar -zxvf hbase-1.2.12-bin.tar.gz
[root@master pp_res]# mkdir -p /data/service
[root@master pp_res]# mv hbase-1.2.12/ /data/service/hbase
1.2
[root@master pp_res]# echo $JAVA_HOME
/home/jdk/jdk1.8.0_161
[root@master pp_res]#cd /data/service/hbase/conf/
[root@master pp_res]# vi hbase-env.sh
增加
export JAVA_HOME=/home/jdk/jdk1.8.0_161
1.3 修改Hbase的配置信息
[root@master conf]# vi hbase-site.xml
增加内容: 用于指定HBase数据的存储位置
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///data/hbase</value>
</property>
</configuration>
1.4启动hbase
[root@master conf]# cd /data/service/hbase/bin
[root@master bin]# ./start-hbase.sh
[root@master bin]# jps
2235 HMaster
9115 Jps
1.5 初始化Hbase的pinpoint库
Github上提供了pinpoint在Hbase中初始化的脚步
[root@master conf]# cd /data/service/hbase/bin
[root@master conf]#
./hbase shell /home/pp_res/hbase-create.hbase
2)安装pinpoint-collector
pinpoint-collector该文档中使用了tomcat进行部署,而且与pinpoint-web分别使用了一套tomcat进行部署,此处可确认是否有其他方式部署。
3.1部署tomcat
[root@master pp_res]# tar -zxvf apache-tomcat-8.0.36.tar.gz
[root@master pp_res]#
mv apache-tomcat-8.0.36/ /data/service/pp-col
3.2 由于collector 与web 个使用一套tomcat部署此处修改tomcat端口映射关系
[root@master pp_res]# cd /data/service/pp-col/conf/
[root@master conf]#
`sed -i 's/port="8005"/port="18005"/g' server.xml`
sed -i 's/port="8080"/port="18080"/g' server.xml
sed -i 's/port="8443"/port="18443"/g' server.xml
sed -i 's/port="8009"/port="18009"/g' server.xml
sed -i 's/redirectPort="8443"/redirectPort="18443"/g' server.xml
sed -i "s/192.168.229.128/`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | awk -F: '{print $2}'`/g" server.xml
3.3
[root@master conf]# cd /home/pp_res/
[root@master pp_res]# rm -rf /data/service/pp-col/webapps/*
[root@master pp_res]# unzip pinpoint-collector-1.7.3.war -d /data/service/pp-col/webapps/ROOT
[root@master pp_res]# cd /data/service/pp-col/bin/
[root@master bin]# ./startup.sh
3.3配置快速启动(略)
3)安装pinpoint-web
3.1部署tomcat
[root@master pp_res]# tar -zxvf apache-tomcat-8.0.36.tar.gz
[root@master pp_res]#
mv apache-tomcat-8.0.36/ /data/service/pp-web
3.2 由于collector 与web 个使用一套tomcat部署此处修改tomcat端口映射关系
[root@master pp_res]# cd /data/service/pp-col/conf/
[root@master conf]#
sed -i 's/port="8005"/port="18005"/g' server.xml
sed -i 's/port="8080"/port="18080"/g' server.xml
sed -i 's/port="8443"/port="18443"/g' server.xml
sed -i 's/port="8009"/port="18009"/g' server.xml
sed -i 's/redirectPort="8443"/redirectPort="18443"/g' server.xml
sed -i "s/192.168.229.128/`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | awk -F: '{print $2}'`/g" server.xml
3.3
[root@master conf]# cd /home/pp_res/
[root@master pp_res]# rm -rf /data/service/pp-web/webapps/*
[root@master pp_res]#
unzip pinpoint-web-1.7.3.war -d /data/service/pp-web/webapps/ROOT
[root@master pp_res]# cd /data/service/pp-web/bin/
[root@master bin]# ./startup.sh
3.3 配置快速启动(略)
2. 192.168.229.129/192.168.229.130节点内容安装
两个节点分别部署不同的项目,此处只对192.168.229.129进行说明
- 安装pinpoint-agent
[root@slave1 pp_test]#mkdir pinpoint-agent-1.7.3
[root@slave1 pp_test]#
tar -zxvf pinpoint-agent-1.7.3.tar.gz -C pinpoint-agent-1.7.3
[root@slave1 pp_test]# mv pinpoint-agent-1.7.3 /data/pp-agent
[root@slave1 pp_test]# cd /data/pp-agent/
[root@slave1 pp_test]# vi pinpoint.config
修改配置用于识别 pinpoint-collector
profiler.collector.ip=192.168.229.128
2)启动业务项目
java -javaagent:/data/pp-agent/pinpoint-bootstrap-1.7.3.jar -Dpinpoint.applicationName=AppMember -Dpinpoint.agentId=AppMember
-jar /home/pp_test/springcloud-2.0-member-0.0.1-SNAPSHOT.jar
1. -javaagent:/data/pp-agent/pinpoint-bootstrap-1.7.3.jar
pinpoint-agent探针所在jar位置
2.-Dpinpoint.applicationName=AppMember
采集项目的名字,这个名字可以随便取,只要各个项目不重复就好了
3.-Dpinpoint.agentId=AppMember
第二行是agent的ID,这个ID是唯一的
4.-jar /home/pp_test/springcloud-2.0-member-0.0.1-SNAPSHOT.jar
运行jar所在位置
说明:由于其他节点安装步骤相同,此处不做说明。目前没有找到在数据库服务器增加探针的说明