1、pinpoint介绍
1.1 pinpoint是什么?
pinpoint是开源在github上的一款APM监控工具,它是由java编写的,用于大规模分布式系统的监控;它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测试的Tomcat中加上3句话,打下探针,就可以监控整套程序了。Pinpoint支持的功能比较丰富,可以支持如下几种功能:
-
服务拓扑图:对整个系统中应用的调用关系进行了可视化的展示,单击某个服务节点,可以显示该节点的详细信息,比如当前节点状态、请求数量等
-
实时活跃线程图:监控应用内活跃线程的执行情况,对应用的线程执行性能可以有比较直观的了解
-
请求响应散点图:以时间维度进行请求计数和响应时间的展示,拖过拖动图表可以选择对应的请求查看执行的详细情况
-
请求调用栈查看:对分布式环境中每个请求提供了代码维度的可见性,可以在页面中查看请求针对到代码维度的执行详情,帮助查找请求的瓶颈和故障原因。
-
应用状态、机器状态检查:通过这个功能可以查看相关应用程序的其他的一些详细信息,比如CPU使用情况,内存状态、垃圾收集状态,TPS和JVM信息等参数。
1.2 架构组成
pipoint由pinpoint agent、pinpoint collector、pinpoint web、HBase 4部分组成;
-
Pinpoint Agent:用于收集应用端监控数据,无侵入式,只需要在启动命令中加入部分参数即可;
-
Pinpoint Collector:数据收集模块,接收Agent发送过来的监控数据,并存储到HBase;
-
Pinpoint Web:监控展示模块,展示系统调用关系、调用详情、应用状态等,并支持报警等功能;
-
HBase:数据库,用于保存监控数据;
架构图如下:
2、pinpoint安装部署
2.1 环境准备
1)2台centos虚拟机,1台用于部署pinpoint-web、pinpoint-collector以及HBase;1台用于部署应用系统和pinpoint agent;
2)jdk7 --- Java运行环境
3)hbase-1.0.3-bin.tar.gz --- 数据库,用来存储监控信息
4)tomcat8.0 --- Web服务器
5)pinpoint-collector-1.5.2.war --- pp的控制器
6)pinpoint-web-1.5.2.war --- pp展示页面
7)test.war--测试系统
8)pinpoint-agent-1.5.2.tar.gz --- pp探针
安装包下载地址:
链接:https://pan.baidu.com/s/1gpT5IXRvmYWPJmxKzo446Q
2.2 HBase安装
1)将安装包hbase-1.0.3-bin.tar.gz上传到服务器/home/pp_res目录,并解压;
tar -xzvf hbase-1.0.3-bin.tar.gz
2)修改HBase配置文件hbase-site.xml
vi /home/pp_res/hbase-1.0.3/conf/hbase-site.xml #在末尾添加configuration内容 <configuration> <property> <name>hbase.rootdir</name> <value>file:///data/hbase</value> </property> </configuration>
3)修改启动文件hbase-env.sh的JAVA_HOME环境变量位置
vi /home/pp_res/hbase-1.0.3/conf/hbase-env.sh
#修改JAVA_HOME环境变量的值为JDK的安装路径; export JAVA_HOME=/usr/local/java/jdk1.8 #注:java_home的地址可通过echo $JAVA_HOME获取;
4)配置环境变量
#配置环境变量HBASE_HOME vi /etc/profile #在末尾添加: export HBASE_HOME=/home/pp_res/hbase-1.0.3 #让环境变量生效 source /etc/profile
5)启动HBase
执行命令:
cd /home/pp_res/hbase-1.0.3/bin ./start-hbase.sh
6)验证是否启动成功:
jps
启动成功会看到HMaster进程;
5)初始化HBase的pinpoint库
执行pinpoint提供的Hbase初始化语句
执行命令:
cd /home/pp_res/hbase-1.0.3/bin ./hbase shell /home/pp_res/hbase-create.hbase
执行结果:
结果验证:
方法1:进入数据库,查看初始化表
#进入数据库 cd /home/pp_res/hbase-1.0.3/bin ./hbase shell #查看初始化表 status "detailed"
方法2
登录web,查看初始化数据是否成功;
HbaseWeb地址 : http://192.168.197.129:16010/master-status,IP地址为hbase数据库所在服务器的IP地址
2.3 安装pinpoint-collector
1)将tomcat包解压至/data/service目录下并重命名为pinpoint-collector
mkdir -pv /data/service cd /data/service tar -zxvf apache-tomcat-8.0.36.tar.gz -C /data/service mv apache-tomcat-8.0.36/ pinpoint-collector
2)修改tomcat端口避免与pinpoint-web冲突
cd /data/service/pinpoint-collector/conf vi server.xml <Server port="18005" shutdown="SHUTDOWN"> #修改端口 <Connector port="18085" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="18443" /> #修改端口 <!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> --> # 注释该行
3)将pinpoint-collector解压至pinpoint-collector程序目录下
rm -rf /data/service/pinpoint-collector/webapps/* unzip /home/pp_res/pinpoint-collector-1.5.2.war -d /data/service/pinpoint-collector/webapps/ROOT
4)配置pinpoint-collector中hbase数据库的地址
cd /data/service/pinpoint-collector/webapps/ROOT/WEB-INF/classes/vi hbase.properties hbase.client.host=192.168.197.129 # 修改这里让collector向hbase存储数据,如果pinpoint-collect和hbase在同一个服务器,可以配置为localhost #启动hbase数据库 cd /home/pp_res/hbase-1.0.3/bin ./start-hbase.sh
5)启动pinpoint-collector
cd /data/service/pinpoint-collector/bin ./startup.sh
6)启动验证
tail -f /data/service/pinpoint-collector/logs/catalina.out 输出日志没有错误信息表示启动成功;如果出现connect refuse,表示端口被占用,启动失败;
启动成功日志:
2.4 安装pinpoint-web
1)安装tomcat
tar -xf /home/pp_res/apache-tomcat-8.0.36.tar.gz -C /data/service mv apache-tomcat-8.0.36/ pinpoint-web
2)配置tomcat
rm -rf /data/service/pinpoint-web/webapps/* vi /data/service/pinpoint-web/conf/server.xml <Server port="18006" shutdown="SHUTDOWN"> #修改端口 <Connector port="18081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="18446" /> #修改端口 <!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> --> # 注释该行
3)将pinpoint-web解压到tomcat中
unzip /home/pp_res/pinpoint-web-1.5.2.war -d /data/service/pinpoint-web/webapps/ROOT/
4)启动pinpoint-web
cd /data/service/pinpoint-web/bin ./start.sh
5)启动验证
#查看日志,没有错误日志输出表示成功启动 tail -f /data/service/pinpoint-web/logs/catalina.out
成功启动日志:
查看页面是否能正常打开(其中端口号为配置端口号时HTTP/1.1对应的端口号)
http://192.168.197.131:18081/(IP地址为pinpoint-web所在服务器的IP)
2.5 安装pinpoint-agent(部署在被测应用系统)
1)搭建被测系统
将test.war、pinpoint-agent-1.5.2.tar.gz和apache-tomcat-8.0.36.tar.gz上传到应用服务器并解压(使用服务的启动用户上传操作)
#将pinpoint-agent-1.5.2.tar.gz上传到应用程序所在的目录 cd /data/service tar -xf pinpoint-agent-1.5.2.tar.gz tar -xf apache-tomcat-8.0.36.tar.gz mv apache-tomcat-8.0.36.tar.gz tomcat8 unzip test.war -d /data/service/tomcat8/webapps/ROOT/
2)配置pinpoint-agent数据库地址
cd /data/service/pinpoint-agent-1.5.2 vi pinpoint.config profiler.collector.ip=192.168.197.131 #hbase服务器地址
3)配置catalina.sh
#配置应用服务器启动文件
cd /usr/local/apache/Tomcat
vi catalina.sh
#在第20行添加探针
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/pinpoint-agent-1.5.2/pinpoint-bootstrap-1.5.2.jar" #pinpoint jar包地址
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=pp20210331" #id不可重复
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=eshop" #项目名称
4)启动系统
cd /data/service/tomcat8/bin ./startup.sh
5)启动验证
1)查看日志
tail -f /data/service/tomcat8/logs/catalina.out
2)浏览器访问系统
成功启动页面:
3、pinpoint监控
1)通过接口多次访问系统
pinpoint数据采集需要多次调取事务才会触发,所以需要通过接口多次访问系统后,才能监控到数据;
2)查看监控
访问pinpoint-web地址:http://192.168.197.131:18081/
项目1:
项目2: