1、PinPoint出现与其他相似概念比较
1.1、PinPoint概念
PinPoint是由java/PHP编写而成的,用来对大规模的分布式系统提供应用性能管理。pinpoint可以解决复杂架构下的拓扑解析与性能分析。
1.2、PinPoint的特点
分布式事务追踪,跟踪跨分布式应用的消息;
自动检测拓扑,帮助搞清楚应用架构;
水平扩展可以支持大规模服务器集群;
提供代码级别的可见性,轻松定位失败点和瓶颈;
使用字节码增强技术,添加新功能是无需修改代码,对代码无侵入性。
1.3、PinPoint的功能
服务拓扑图:对整个系统的调用关系进行可视化的展示,点击某个节点,显示该节点的具体信息。
实时活跃线程图:监控应用内活跃线程的执行情况。
请求响应散点图:以时间维度展示请求计数和响应时间。
请求调用栈查看:对分布式环境中的请求可以定位到代码维度;可以查找问题的出现是否与代码有关。
应用状态、机器状态检查:查看与该项目相关的其他性能,cpu利用率、内存等。
1.4、APM(应用性能管理)
APM属于IT运维管理。主要针对于企业关键业务的应用性能和用户体验的检测、优化,提高企业IT应用的质量和可靠性。
APM多级运用性能监控,覆盖通讯协议1-7层,通过事务处理过程监控、模拟等手段实现端对端的应用监控。对应用系统中的各个组件进行监测,迅速定位系统故障,并进行修复或建议。对系统中各组件的系统资源进行实时监控,并根据监控结果给予建议。
图片来自华为云官网。
2、PinPoint架构原理
2.1、架构组成
PinPoint Collector:收集各种性能数据
PinPoint Agent:和自己运行的应用关联起来的探针
Pinpoint-Web: 将收集到的数据显成为 WEB网页显示
HBase Storage: 存储收集到的数据
2.2、工作原理
pinpoint的核心思想是在各个服务节点之间彼此调用时,记录并传递一个应用级别的标记,这个标记用来关联各个服务节点之间的关系。例:两个服务器之间利用http协议来进行通信,pinpoint就会将这个标记加入到http头之中,各个应用之间进行上报的时候,将报文头上的标记和各个应用之间的调用关系汇报给pinpoint,pinpoint根据得到的信息,将每一个应用串联成一个链路,得到服务拓扑。
通过pinpoint-agent往自身web应用的tomcat中打入探针,由pinpoint-collector收集数据,存储于hbase中,通过pinpoint-web展示数据。
3、pinpoint应用部署
部署一个例子,用来收集一些数据,展示pinpoint的配置和应用方式。
这个例子共需要两台服务器,一台安装pinpoint,用作pinpoint的web展示端,逻辑控制机,以及hbase存储。另一台用来安装pinpoint-agent ,主要用来采集数据,发送给pinpoint处理。
3.1 环境准备
两台机器之间可以关闭防火墙,也可以打开,在这个例子中,我运用的云主机,所以会将服务器内部的防火墙关闭,在服务器的安全组之中将所需要的端口打开。
注:两台机器最好同时操作,防止之后忘记
3.2、关闭防火墙:
命令集合:
systemctl stop firewalld
systemctl disable firewalld取消开机自启动
3.3、 安装一些依赖以及一些常用工具
命令集合
[root@pinpoint ~]# yum install net-tools bash-completion wget vim -y
3.4、关于时间同步
由于云主机上的利用弹性公网ip与外界连接,所以,运用云主机之间是可以不用同步时间的。但在自己的虚拟机,比如利用wmware虚拟的虚拟机,机器时间可能会不相同,需要进行时间同步,否则如果在两台机器上连接时,可能会出现问题。
同步命令合集:
yum install ntpdate -y
ntpdate cn.pool.ntp.org
hwclock -w
4、环境配置
4.1、获取需要的安装包
官网下载。
均未选择版本,请自行选择版本。
jdk下载地址:Java Downloads | Oracle
hbse下载地址:Index of /dist/hbase
tomcat下载地址:Apache Tomcat® - Apache Tomcat 9 Software Downloads
pinpoint下载地址:Home - PinPoint
网盘下载
我提供我的网盘中的压缩包,可自行选择下载方式。
链接:https://pan.baidu.com/s/1ZNq6y6KFW8qv7C_KyKbE1Q
提取码:k4s0
jdk Java运行环境
hbase 数据库。用来存储监控数据
tomcat web服务器
pinpoint-collector.war pinpoint的控制器
pinpoint-web.war pinpoint的展示页面
2、 配置jdk;
pinpoint这套系统利用jdk进行部署,所以首先配置jdk。
[root@pinpoint pinpoint]# tar -xf jdk-7u79-linux-x64.tar.gz
[root@pinpoint pinpoint]# mkdir /usr/java/
[root@pinpoint pinpoint]# mv jdk1.7.0_79/ /usr/java/jdk7
[root@pinpoint pinpoint]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk7
export PATH=$PATH:$JAVA_HOME/bin
[root@pinpoint pinpoint]# source /etc/profile
[root@pinpoint pinpoint]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
5、安装hbase
Hbase在这套系统中的主要功能是用来存储pinpoint收集到的数据。
1、解压Hbase,并放入制定目录
[root@pinpoint pinpoint]# tar xf hbase-1.0.3-bin.tar.gz
[root@pinpoint pinpoint]# mkdir -p /data/service
[root@pinpoint pinpoint]# mv hbase-1.0.3/ /data/service/hbase
[root@pinpoint pinpoint]# cd /data/service/hbase/conf/
[root@pinpoint conf]# vim hbase-env.sh
[root@pinpoint conf]# egrep -v "^#|^$" hbase-env.sh
export JAVA_HOME=/usr/java/jdk7/
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
2、修改 Hbase的配置信息
[root@pinpoint conf]# pwd
/data/service/hbase/conf
[root@pinpoint conf]# vim hbase-site.xml
[root@pinpoint conf]# egrep -v "^#|^$|\*" hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
-->
<configuration>
hbase.rootdir
file:///data/hbase
</configuration>
3、启动Hbase
[root@pinpoint ~]# cd /data/service/hbase/bin/
[root@pinpoint bin]# ./start-hbase.sh
starting master, logging to /data/service/hbase/bin/../logs/hbase-root-master-pinpoint.out
[root@pinpoint bin]# jps
12527 HMaster
12756 Jps
4、初始化Hbase的pinpoint库;
初始化这个库需要一个文件,hbase-create.hbase。该文件存在于我分享的百度网盘中。
[root@pinpoint pinpoint]# cd /data/service/hbase/bin/
[root@pinpoint bin]# ./hbase shell /root/pinpoint/hbase-create.hbase
#初始化完成后,进入Hbase 可以看到数据库的版本以及一些其他的信息。
[root@pinpoint bin]# ./hbase shell
2021-11-03 13:44:35,524 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.0.3, rf1e1312f9790a7c40f6a4b5a1bab2ea1dd559890, Tue Jan 19 19:26:53 PST 2016
#查看初始化的表是否存在
hbase(main):001:0> status 'detailed'
version 1.0.3
0 regionsInTransition
master coprocessors: []
1 live servers
git:38684 1635911596175
或者访问web页面,查看数据库是否初始化成功!
访问:http://ip:16010/master-status
如果访问不到,请查看端口是否已经打开。
6、安装pinpoint- collector
1、部署war包
#解压tomcat,并放置在响应地点
[root@pinpoint pinpoint]# tar xf apache-tomcat-8.0.36.tar.gz
[root@pinpoint pinpoint]# mv apache-tomcat-8.0.36/ /data/service/pinpoint-col
#修改tomcat的配置
#修改端口,避免与后续的pinpoint-web的端口冲突。如果使用云主机,请开启安全组的响应端口,如果使用防火墙,请开启相应端口
[root@pinpoint pinpoint]# cd /data/service/pinpoint-col/conf/
[root@pinpoint conf]# sed -i 's/port="8005"/port="18005"/g' server.xml
[root@pinpoint conf]# sed -i 's/port="8080"/port="18080"/g' server.xml
[root@pinpoint conf]# sed -i 's/port="8443"/port="18443"/g' server.xml
[root@pinpoint conf]# sed -i 's/port="8009"/port="18009"/g' server.xml
[root@pinpoint conf]# sed -i 's/redirectPort="8443"/redirectPort="18443"/g' server.xml
#将tomcat的私有IP开放。
[root@pinpoint conf]# sed -i 's/localhost/47.103.24.126/g' server.xml
#部署pinpoint-collector.war包(如果没有unzip命令,使用“yum install unzip -y”下载)
[root@pinpoint pinpoint-col]# pwd
/data/service/pinpoint-col
[root@pinpoint pinpoint-col]# rm -rf ./webapps/*
[root@pinpoint pinpoint-col]# unzip /root/pinpoint/pinpoint-collector-1.5.2.war -d /data/service/pinpoint-col/webapps/ROOT
#启动tomcat
[root@pinpoint pinpoint-col]# cd /data/service/pinpoint-col/bin/
[root@pinpoint bin]# ./startup.sh
Using CATALINA_BASE: /data/service/pinpoint-col
Using CATALINA_HOME: /data/service/pinpoint-col
Using CATALINA_TMPDIR: /data/service/pinpoint-col/temp
Using JRE_HOME: /usr/java/jdk7/
Using CLASSPATH: /data/service/pinpoint-col/bin/bootstrap.jar:/data/service/pinpoint-col/bin/tomcat-juli.jar
Tomcat started.
#查看日志,是否启动成功
[root@pinpoint bin]# tail -f ../logs/catalina.out
11-03 14:21:50 [INFO ](o.s.w.s.m.a.DefaultAnnotationHandlerMapping:314) Mapped URL path [/admin/isEnable.*] onto handler 'handlerManagerController'
11-03 14:21:50 [INFO ](o.s.w.s.m.a.DefaultAnnotationHandlerMapping:314) Mapped URL path [/admin/isEnable/] onto handler 'handlerManagerController'
11-03 14:21:50 [INFO ](o.s.w.s.m.a.DefaultAnnotationHandlerMapping:314) Mapped URL path [/admin/enableAccess] onto handler 'handlerManagerController'
11-03 14:21:50 [INFO ](o.s.w.s.m.a.DefaultAnnotationHandlerMapping:314) Mapped URL path [/admin/enableAccess.*] onto handler 'handlerManagerController'
11-03 14:21:50 [INFO ](o.s.w.s.m.a.DefaultAnnotationHandlerMapping:314) Mapped URL path [/admin/enableAccess/] onto handler 'handlerManagerController'
11-03 14:21:50 [INFO ](o.s.w.s.DispatcherServlet :504) FrameworkServlet 'pinpoint-web': initialization completed in 663 ms
03-Nov-2021 14:21:50.531 INFO [47.103.24.126-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /data/service/pinpoint-col/webapps/ROOT has finished in 6,978 ms
03-Nov-2021 14:21:50.534 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-18080"]
03-Nov-2021 14:21:50.549 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-18009"]
03-Nov-2021 14:21:50.550 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 7026 ms
2、配置快速启动
配置快速启动需要一个pp- collector.init的文件,可以有两种获取方法
网盘:
之前分享的网盘中拥有这个文件,直接上传至服务器就可以使用。
文件内容:
新建一个文件,名为pp-collector.init,内容如下:
#!/bin/bash
#
# chkconfig: 345 99 28
# description: Starts/Stops Apache Tomcat
#
# Tomcat 7 start/stop/status script
# Forked from: https://gist.github.com/valotas/1000094
# @author: Miglen Evlogiev <bash@miglen.com>
#
# Release updates:
# Updated method for gathering pid of the current proccess
# Added usage of CATALINA_BASE
# Added coloring and additional status
# Added check for existence of the tomcat user
#
#Location of JAVA_HOME (bin files)
export JAVA_HOME=/usr/java/default/
#Add Java binary files to PATH
export PATH=$JAVA_HOME/bin:$PATH
#CATALINA_HOME is the location of the bin files of Tomcat
export CATALINA_HOME=/data/service/pinpoint-collector/
#CATALINA_BASE is the location of the configuration files of this instance of Tomcat
export CATALINA_BASE=/data/service/pinpoint-collector/
#TOMCAT_USER is the default user of tomcat
export TOMCAT_USER=root
#TOMCAT_USAGE is the message if this script is called without any options
TOMCAT_USAGE="Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}"
#SHUTDOWN_WAIT is wait time in seconds for java proccess to stop
SHUTDOWN_WAIT=3
tomcat_pid() {
echo ps -fe | grep $CATALINA_BASE | grep -v grep | tr -s " "|cut -d" " -f2
}
start() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m"
else
Start tomcat
echo -e "\e[00;32mStarting tomcat\e[00m"
ulimit -n 100000
umask 007
/bin/su -p -s /bin/sh tomcat
if [ user_exists $TOMCAT_USER = "1" ]
then
su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh
else
sh $CATALINA_HOME/bin/startup.sh
fi
status
fi
return 0
}
status(){
pid=$(tomcat_pid)
if [ -n "$pid" ]; then echo -e "\e[00;32mTomcat is running with pid: $pid\e[00m"
else echo -e "\e[00;31mTomcat is not running\e[00m"
fi
}
stop() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo -e "\e[00;31mStoping Tomcat\e[00m"
/bin/su -p -s /bin/sh tomcat
sh $CATALINA_HOME/bin/shutdown.sh
let kwait=$SHUTDOWN_WAIT
count=0;
until [ ps -p $pid | grep -c $pid = '0' ] || [ $count -gt $kwait ]
do
echo -n -e "\n\e[00;31mwaiting for processes to exit\e[00m";
sleep 1
let count=$count+1;
done
if [ $count -gt $kwait ]; then
echo -n -e "\n\e[00;31mkilling processes which didn't stop after $SHUTDOWN_WAIT seconds\e[00m"
kill -9 $pid
fi
else
echo -e "\e[00;31mTomcat is not running\e[00m"
fi
return 0
}
user_exists(){
if id -u $1 >/dev/null 2>&1; then
echo "1"
else
echo "0"
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo -e $TOMCAT_USAGE
;;
esac
exit 0
拥有这个文件之后,修改默认的路径,修改后如下:
之后将文件赋予“执行”权限,加入启动项
[root@pinpoint pinpoint]# mv pp-collector.init /etc/init.d/pinpoint-col
[root@pinpoint pinpoint]# chmod 711 /etc/init.d/pinpoint-col
[root@pinpoint pinpoint]# ll /etc/init.d/pinpoint-col
-rwx--x--x 1 root root 3069 11月 3 14:40 /etc/init.d/pinpoint-col
测试
[root@pinpoint pinpoint]# /etc/init.d/pinpoint-col restart
Stoping Tomcat
Using CATALINA_BASE: /data/service/pinpoint-col/
Using CATALINA_HOME: /data/service/pinpoint-col/
Using CATALINA_TMPDIR: /data/service/pinpoint-col//temp
Using JRE_HOME: /usr/java/jdk7/
Using CLASSPATH: /data/service/pinpoint-col//bin/bootstrap.jar:/data/service/pinpoint-col//bin/tomcat-juli.jar
waiting for processes to exitStarting tomcat
Using CATALINA_BASE: /data/service/pinpoint-col/
Using CATALINA_HOME: /data/service/pinpoint-col/
Using CATALINA_TMPDIR: /data/service/pinpoint-col//temp
Using JRE_HOME: /usr/java/jdk7/
Using CLASSPATH: /data/service/pinpoint-col//bin/bootstrap.jar:/data/service/pinpoint-col//bin/tomcat-juli.jar
Tomcat started.
Tomcat is running with pid: 28463
设置成功!!!!
7、安装pinpoint-web
1、部署war包
#解压tomcat,并放置在响应地点
[root@pinpoint pinpoint]# tar xf apache-tomcat-8.0.36.tar.gz
[root@pinpoint pinpoint]# mv apache-tomcat-8.0.36/ /data/service/pinpoint-web
#修改tomcat的配置
#修改端口,避免与后续的pinpoint-col的端口冲突。如果使用云主机,请开启安全组的响应端口,如果使用防火墙,请开启相应端口
[root@pinpoint pinpoint]# cd /data/service/pinpoint-web/conf/
[root@pinpoint conf]# sed -i 's/port="8005"/port="28005"/g' server.xml
[root@pinpoint conf]# sed -i 's/port="8080"/port="28080"/g' server.xml
[root@pinpoint conf]# sed -i 's/port="8443"/port="28443"/g' server.xml
[root@pinpoint conf]# sed -i 's/port="8009"/port="28009"/g' server.xml
[root@pinpoint conf]# sed -i 's/redirectPort="8443"/redirectPort="28443"/g' server.xml
#将tomcat的私有IP开放。
[root@pinpoint conf]# sed -i 's/localhost/47.103.24.126/g' server.xml
#部署pinpoint-web.war包(如果没有unzip命令,使用“yum install unzip -y”下载)
[root@pinpoint conf]# rm -rf /data/service/pinpoint-web/webapps/*
[root@pinpoint conf]# unzip /root/pinpoint/pinpoint-web-1.5.2.war -d /data/service/pinpoint-web/webapps/ROOT
#启动tomcat
[root@pinpoint conf]# cd /data/service/pinpoint-web/bin/
[root@pinpoint bin]# ./startup.sh
Using CATALINA_BASE: /data/service/pinpoint-web
Using CATALINA_HOME: /data/service/pinpoint-web
Using CATALINA_TMPDIR: /data/service/pinpoint-web/temp
Using JRE_HOME: /usr/java/jdk7/
Using CLASSPATH: /data/service/pinpoint-web/bin/bootstrap.jar:/data/service/pinpoint-web/bin/tomcat-juli.jar
Tomcat started.
#查看日志,查看是否启动成功
[root@pinpoint bin]# tail -f ../logs/catalina.out
14:57:00 INFO (m.a.DefaultAnnotationHandlerMapping:314) Mapped URL path [/userGroup/member.*] onto handler 'userGroupController'
14:57:00 INFO (m.a.DefaultAnnotationHandlerMapping:314) Mapped URL path [/userGroup/member/] onto handler 'userGroupController'
14:57:00 INFO (m.a.DefaultAnnotationHandlerMapping:314) Mapped URL path [/userGroup] onto handler 'userGroupController'
14:57:00 INFO (m.a.DefaultAnnotationHandlerMapping:314) Mapped URL path [/userGroup.*] onto handler 'userGroupController'
14:57:00 INFO (m.a.DefaultAnnotationHandlerMapping:314) Mapped URL path [/userGroup/] onto handler 'userGroupController'
14:57:00 INFO (o.s.w.s.DispatcherServlet :504) FrameworkServlet 'pinpoint-web': initialization completed in 908 ms
03-Nov-2021 14:57:00.659 INFO [47.103.24.126-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /data/service/pinpoint-web/webapps/ROOT has finished in 8,734 ms
03-Nov-2021 14:57:00.676 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-28080"]
03-Nov-2021 14:57:00.715 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-28009"]
03-Nov-2021 14:57:00.754 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 8899 ms
此时访问地址http://ip:28080/#/main
出现主界面,成功!!!
2、配置快速启动
pinpoint-web的快速启动配置和pinpoint- collector的配置相同。
pp-web.init的内容如下:
#!/bin/bash
#
# chkconfig: 345 99 28
# description: Starts/Stops Apache Tomcat
#
# Tomcat 7 start/stop/status script
# Forked from: https://gist.github.com/valotas/1000094
# @author: Miglen Evlogiev <bash@miglen.com>
#
# Release updates:
# Updated method for gathering pid of the current proccess
# Added usage of CATALINA_BASE
# Added coloring and additional status
# Added check for existence of the tomcat user
#
#Location of JAVA_HOME (bin files)
export JAVA_HOME=/usr/java/default/
#Add Java binary files to PATH
export PATH=$JAVA_HOME/bin:$PATH
#CATALINA_HOME is the location of the bin files of Tomcat
export CATALINA_HOME=/data/service/pinpoint-web/
#CATALINA_BASE is the location of the configuration files of this instance of Tomcat
export CATALINA_BASE=/data/service/pinpoint-web/
#TOMCAT_USER is the default user of tomcat
export TOMCAT_USER=root
#TOMCAT_USAGE is the message if this script is called without any options
TOMCAT_USAGE="Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}"
#SHUTDOWN_WAIT is wait time in seconds for java proccess to stop
SHUTDOWN_WAIT=3
tomcat_pid() {
echo ps -fe | grep $CATALINA_BASE | grep -v grep | tr -s " "|cut -d" " -f2
}
start() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m"
else
Start tomcat
echo -e "\e[00;32mStarting tomcat\e[00m"
ulimit -n 100000
umask 007
/bin/su -p -s /bin/sh tomcat
if [ user_exists $TOMCAT_USER = "1" ]
then
su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh
else
sh $CATALINA_HOME/bin/startup.sh
fi
status
fi
return 0
}
status(){
pid=$(tomcat_pid)
if [ -n "$pid" ]; then echo -e "\e[00;32mTomcat is running with pid: $pid\e[00m"
else echo -e "\e[00;31mTomcat is not running\e[00m"
fi
}
stop() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo -e "\e[00;31mStoping Tomcat\e[00m"
/bin/su -p -s /bin/sh tomcat
sh $CATALINA_HOME/bin/shutdown.sh
let kwait=$SHUTDOWN_WAIT
count=0;
until [ ps -p $pid | grep -c $pid = '0' ] || [ $count -gt $kwait ]
do
echo -n -e "\n\e[00;31mwaiting for processes to exit\e[00m";
sleep 1
let count=$count+1;
done
if [ $count -gt $kwait ]; then
echo -n -e "\n\e[00;31mkilling processes which didn't stop after $SHUTDOWN_WAIT seconds\e[00m"
kill -9 $pid
fi
else
echo -e "\e[00;31mTomcat is not running\e[00m"
fi
return 0
}
user_exists(){
if id -u $1 >/dev/null 2>&1; then
echo "1"
else
echo "0"
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo -e $TOMCAT_USAGE
;;
esac
exit 0
同样进行修改默认配置,之后加入启动项。
测试:
[root@pinpoint pinpoint]# /etc/init.d/pp-web restart
Stoping Tomcat
Using CATALINA_BASE: /data/service/pinpoint-web/
Using CATALINA_HOME: /data/service/pinpoint-web/
Using CATALINA_TMPDIR: /data/service/pinpoint-web//temp
Using JRE_HOME: /usr/java/jdk7/
Using CLASSPATH: /data/service/pinpoint-web//bin/bootstrap.jar:/data/service/pinpoint-web//bin/tomcat-juli.jar
waiting for processes to exitStarting tomcat
Using CATALINA_BASE: /data/service/pinpoint-web/
Using CATALINA_HOME: /data/service/pinpoint-web/
Using CATALINA_TMPDIR: /data/service/pinpoint-web//temp
Using JRE_HOME: /usr/java/jdk7/
Using CLASSPATH: /data/service/pinpoint-web//bin/bootstrap.jar:/data/service/pinpoint-web//bin/tomcat-juli.jar
Tomcat started.
Tomcat is running with pid: 30554
配置成功!!!
8、部署pinpoint- agent采集监控数据
需要另一台服务器,用来部署pinpoint-agent来采集服务器上的数据,返回给pinpoint,用来分析形成拓扑图。
1、上传安装包以及测试项目
网盘链接:
链接:https://pan.baidu.com/s/1Deu4QYoJwr7t78qs6R5Y9A
提取码:74ep
2、配置模拟环境的tomcat
配置jdk,配置方式与pinpoint方法相同
配置tomcat
[root@tomcat ~]# tar xf apache-tomcat-8.0.36.tar.gz
[root@tomcat ~]# cd apache-tomcat-8.0.36/conf/
[root@tomcat conf]# sed -i "s/localhost/116.63.208.164/g" server.xml
解压测试用的war包
[root@tomcat ~]# rm -rf apache-tomcat-8.0.36/webapps/*
[root@tomcat ~]# unzip test.war -d apache-tomcat-8.0.36/webapps/ROOT
Archive: test.war
inflating: apache-tomcat-8.0.36/webapps/ROOT/index.jsp
creating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/
creating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/lib/
inflating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/lib/commons-beanutils-1.7.0.jar
inflating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/lib/commons-collections-3.1.jar
inflating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/lib/commons-lang-2.5.jar
inflating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/lib/commons-logging.jar
inflating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/lib/ezmorph-1.0.3.jar
inflating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/lib/json-lib-2.1-jdk15.jar
inflating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/web.xml
creating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/classes/
creating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/classes/com/
creating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/classes/com/yy/
creating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/classes/com/yy/test/
inflating: apache-tomcat-8.0.36/webapps/ROOT/WEB-INF/classes/com/yy/test/test.class
3、配置pp-agent采集器
云主机开启pinpoint-collector的端口 9994,9995,9996
#解压pp-agent
[root@tomcat ~]# tar xf pinpoint-agent-1.5.2.tar.gz
[root@tomcat ~]# mkdir -p /data/pp-agent
[root@tomcat ~]# mv pinpoint-agent-1.5.2 /data/pp-agent
#编辑配置文件
[root@tomcat ~]# cd /data/pp-agent/
[root@tomcat pp-agent]# vim pinpoint-agent-1.5.2/pinpoint.config profiler.collector.ip=47.103.24.126 修改它为pinpoint-collector的IP地址
#修改启动文件,增加探针
[root@tomcat ~]# cd apache-tomcat-8.0.36/bin/
[root@tomcat bin]# vim catalina.sh
#在大概20行左右的位置添加如下内容
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/data/pp-agent/pinpoint-agent-1.5.2/pinpoint-bootstrap-1.5.2.jar"添加pinpoint-bootstrap-1.5.2.jar的位置CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=pp123456"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=MyTestPP"
4、监控tomcat
配置完成了,开始监控,启动测试的tomcat服务器。
[root@tomcat ~]# cd apache-tomcat-8.0.36/bin/
[root@tomcat bin]# ./startup.sh
Using CATALINA_BASE: /root/apache-tomcat-8.0.36
Using CATALINA_HOME: /root/apache-tomcat-8.0.36
Using CATALINA_TMPDIR: /root/apache-tomcat-8.0.36/temp
Using JRE_HOME: /usr/java/jdk7
Using CLASSPATH: /root/apache-tomcat-8.0.36/bin/bootstrap.jar:/root/apache-tomcat-8.0.36/bin/tomcat-juli.jar
Tomcat started.
访问:http://ip:8080
访问http://ip:8080/test
此时访问pinpoint-web可以发现
至此,pinpoint全链路监控搭建成功!