## 在搭建pinpoint之前,首先先介绍一下pinpoint
pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。
它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,
只需要在被测试的程序启动文件中加上3句话,打下探针,就可以监控整套程序了
APM (Application Performance Management/应用性能管理)工具
架构组成
Pinpoint 主要由 3 个组件外加 Hbase 数据库组成,三个组件分别为:Agent、Collector 和 Web UI。
Agent组件:用于收集应用端监控数据,无侵入式,只需要在启动命令中加入部分参数即可
Collector组件:数据收集模块,接收Agent发送过来的监控数据,并存储到HBase
WebUI:监控展示模块,展示系统调用关系、调用详情、应用状态等,并支持报警等功能
环境准备:linux服务器3台 作为agent 探针部署地点
ip 容器 agent版本
192.168.225.130 springboot 1.8.0
环境准备:linux服务器1台 作为pinpoint-web以及pinpoint-col 部署地点
ip 容器 pinpoint版本
192.168.225.131 tomcat 1.8.0
## 我们首先安装Collector组件和WebUI
## 在搭建之前,我们首先要去执行pinpoint提供的一个初始化hbase语句,hbase-create.hbase
## 将hbase-create.hbase 拷贝到/usr/hbase文件夹下
## 在切换到 /usr/hbase/hbase-1.2.9/bin路径下
cd /usr/hbase/hbase-1.2.9/bin
## 执行初始化语句
./hbase shell /usr/hbase/hbase-create.hbase
## 执行成功后,可通过hbase的web页面查看是否初始化成功,也可进入hbase
./hbase shell
## 查看表是否都创建成功
hbase(main):001:0> list
##表创建成功后,开始安装collector组件
##因为我是将组建安装 /data/application/pinpoint文件夹下的 ,如果没有则创建文件夹
cd /data/application/pinpoint
## 在此文件夹下面,上传两个tomcat,用来启动Collector和WebUI
## 解压tomcat
tar -zxvf apache-tomcat-8.5.28.tar.gz
mv apache-tomcat-8.5.28 tomcat-col
tar -zxvf apache-tomcat-8.5.28.tar.gz
mv apache-tomcat-8.5.28 tomcat-web
## tomcat解压成功后
##分别将 pinpoint-collector-1.8.0.war放到 /data/application/pinpoint/tomcat-col/webapps文件夹下面
##分别将 pinpoint-web-1.8.0.war放到 /data/application/pinpoint/tomcat-web/webapps文件夹下面
##==================================修改tomcat-col和tomcat-web配置====================================##
# 修改tomcat-col的Tomcat的配置,主要修改端口,避免与tomcat-web的Tomcat的端口冲突。我在原本默认的端口前都加了1,下面是替换的shell命令。
#【注意】最后一条是将tomcat的私有ip开放,需要将localhost替换成本机的ip,我本机的网卡是默认的,如果你本机的网卡不是eth0,需要进行相关的修改。或者直接用"vi"进去,修改localhost
## 切换到conf文件下面
cd /data/application/pinpoint/tomcat-col/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
## 直接进入server.xml 修改host,将localhost换成ip
<Host name="192.168.225.131" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
##启动tomcat
cd /data/application/pinpoint/tomcat-col/bin
./startup.sh
##查看日志
tail -f ../logs/catalina.out
# 修改tomcat-web的Tomcat的配置,主要修改端口,避免与tomcat-col的Tomcat的端口冲突。我在原本默认的端口前都加了2,下面是替换的shell命令。
#【注意】最后一条是将tomcat的私有ip开放,需要将localhost替换成本机的ip,我本机的网卡是默认的,如果你本机的网卡不是eth0,需要进行相关的修改。或者直接用"vi"进去,修改localhost
## 切换到conf文件下面
cd /data/application/pinpoint/tomcat-col/conf
sed -i 's/port="8005"/port="28005"/g' server.xml
sed -i 's/port="8080"/port="28080"/g' server.xml
sed -i 's/port="8443"/port="28443"/g' server.xml
sed -i 's/port="8009"/port="28009"/g' server.xml
sed -i 's/redirectPort="8443"/redirectPort="28443"/g' server.xml
## 直接进入server.xml 修改host,将localhost换成ip
<Host name="192.168.225.131" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
##启动tomcat
cd /data/application/pinpoint/tomcat-web/bin
./startup.sh
##查看日志
tail -f ../logs/catalina.out
## 如果都启动成功,可通过浏览器访问
http://192.168.225.131:28080/pinpoint-web-1.8.0
##==================================springboot整合pinpoint-agent-1.8.0===================================##
##因为我的应用是部署到192.168.225.130上面的所以我们需要加agent放在该服务器上面
##将pinpoint-agent-1.8.0.tar.gz放在 /data/application/pinpoint
##解压pinpoint-agent-1.8.0.tar.gz
tar -zxvf pinpoint-agent-1.8.0.tar.gz
## 修改 pinpoint.config文件配置
vi pinpoint.config
将 profiler.collector.ip=192.168.225.131修改为部署 collector组建的ip地址 ,下面的9994,9995,9996端口在collector启动时就自动开启,所以不用修改
profiler.collector.ip=192.168.225.131
## 修改完agent配置文件以后,只需要在springboot的启动文件中加入
-javaagent:/data/application/pinpoint/pinpoint-bootstrap-1.8.0.jar -Dpinpoint.agentId=luckdraw -Dpinpoint.applicationName=luckdraw
## 让启动的脚本变为,具体的启动脚本,根据自己的定,集成agent只需要加入上面的配置
java -javaagent:/data/application/pinpoint/pinpoint-bootstrap-1.8.0.jar -Dpinpoint.agentId=luckdraw -Dpinpoint.applicationName=luckdraw -jar ${JVM_OPTION} -Djava.io.tmpdir="$CACHE_DIR" $RUN_DIR/luckdraw-0.0.1-SNAPSHOT.jar -d"$RUN_DIR">>$RUN_DIR/log &
##具体的pinpoint-bootstrap-1.8.0.jar地址是自己放置agnet的位置,所以根据自己的地址,自己进行相应的修改
##-Dpinpoint.agentId:表示你的agentId,全局唯一
##-Dpinpoint.applicationName:应用名
## 用自己的脚本启动自己的项目,在到http://192.168.225.131:28080/pinpoint-web-1.8.0刷新,就可看到自己的项目在pinpoint中监控起来了