pinpoint 部署 包含(tomcat,jboss,spring boot 探针支持)

时间:2022-01-29 23:16:08
安装版本:pinpoint 1.6.2

pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测试的Tomcat中加上3句话,打下探针,就可以监控整套程序了。这篇Blog主要是想记录一下它安装的过程,方便日后查阅。

环境准备:linux服务器3台 作为agent 探针部署地点

ip 容器 agent版本
192.168.70.103 tomcat 1.6.2
192.168.70.104 jboss 1.6.2
192.168.70.123 spring boot 1.6.2

环境准备:linux服务器1台 作为pinpoint-web以及pinpoint-col 部署地点

ip 容器 pinpoint版本
192.168.70.124 tomcat 1.6.2

安装之前请先下载 

1.

1. 环境配置

 

1.1 获取需要的依赖包
进入根目录,创建一个"pp_res"的资源目录,用来存放需要安装的包
pinpoint 部署 包含(tomcat,jboss,spring boot 探针支持)
mkdir pp_res
cd /koolapp/pp_res/
ls
pinpoint 部署 包含(tomcat,jboss,spring boot 探针支持)

使用xshell等类似的工具,将需要的文件上传到Linux虚拟机中,主要要传的文件都在百度网盘

  1. jdk7 --- Java运行环境
  2. hbase-1.0 --- 数据库,用来存储监控信息
  3. tomcat8.0 --- Web服务器
  4. pinpoint-collector.war --- pp的控制器
  5. pinpoint-web.war --- pp展示页面
将这些压缩包上传并解压
将tomcat解压出来,cp出两份 分别起名toomcat-web、tomcat-col

1.2 配置jdk
     。。。
     配置jdk的过程这边就讲解
     配置完成只需要输入 java -version 验证是否成功。
pinpoint 部署 包含(tomcat,jboss,spring boot 探针支持)

2. 安装Hbase

pinpoint收集来的测试数据,主要是存在Hbase数据库的。所以它可以收集大量的数据,可以进行更加详细的分析。
2.1 将Hbase解压,并且放入指定目录
解压完成之后如下图:
pinpoint 部署 包含(tomcat,jboss,spring boot 探针支持)
2.2 修改conf包中的hbase-env.sh的JAVA_HOME环境变量位置
在27行左右的位置,修改如下

export JAVA_HOME=/usr/java/jdk1.7.0_25/

2.3 修改Hbase的配置信息
vi hbase-site.xml
在结尾修改成如下,这里我们指定Hbase本地来存储数据,生产环境将数据建议存入HDFS中。

<configuration>
        <property>
            <name>hbase.rootdir</name>
            <value>file:///koolapp/pp_res/hbase</value>
        </property>
</configuration>
2.4 启动hbase
cd /koolapp/pp_res/hbase/bin
./start-hbase.sh
查看Hbase是否启动成功,如果启动成功的会看到"HMaster"的进程

[koolapp@aop-70-124 conf]$ jps
32009 HMaster
7082 Bootstrap
7170 Bootstrap
12530 Jps
32070 run.jar

2.5 初始化Hbase的pinpoint库

执行pinpoint提供的Hbase初始化语句,这时会初始化一会。

./hbase shell /koolapp/pp_res/hbase-create.hbase

执行完了以后,进入Hbase

./hbase shell

进入后可以看到Hbase的版本,还有一些相关的信息

[koolapp@aop-70-124 bin]$ ./hbase shel
Error: Could not find or load main class shel
[koolapp@aop-70-124 bin]$ ./hbase shell
2017-09-21 14:14:41,274 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>
输入 list 可以查看刚才初始化的表,是否存在,这里一定要注意看表是否存在!!

hbase(main):001:0> list
TABLE
AgentEvent
AgentInfo
AgentLifeCycle
AgentStat
AgentStatV2
ApiMetaData
ApplicationIndex
ApplicationMapStatisticsCallee_Ver2
ApplicationMapStatisticsCaller_Ver2
ApplicationMapStatisticsSelf_Ver2
ApplicationTraceIndex
HostApplicationMap_Ver2
SqlMetaData_Ver2
StringMetaData
TraceV2
Traces
member
17 row(s) in 0.6390 seconds

=> ["AgentEvent", "AgentInfo", "AgentLifeCycle", "AgentStat", "AgentStatV2", "ApiMetaData", "ApplicationIndex", "ApplicationMapStatisticsCallee_Ver2", "ApplicationMapStatisticsCaller_Ver2", "ApplicationMapStatisticsSelf_Ver2", "ApplicationTraceIndex", "HostApplicationMap_Ver2", "SqlMetaData_Ver2", "StringMetaData", "TraceV2", "Traces", "member"]
hbase(main):002:0>
也可以登录web,来查看HBase的数据是否初始化成功
pinpoint 部署 包含(tomcat,jboss,spring boot 探针支持)
附:后续因为系统问题导致重新安装hbase 但是走到初始化hbase这一步的时候 遇到一个问题: 使用list命令显示没有表,但是进行安装的时候却爆出表存在
此问题原因在于 hbase 内置的zookeeper原先的表缓存起来。导致上述问题,此时只需要将zookeeper中的表删除,并重新执行初始化即可

进入zookeeper安装文件夹bin下,运行./zkCli.sh,进入zookeeper客户端 键入ls /看到hbase,在进入hbase/table即可看到缓存的表,只需删除这些表就ok了
[zk: localhost:2181(CONNECTED) 6] ls /hbase/table
[AgentEvent, member, HostApplicationMap_Ver2, AgentStatV2, ApplicationIndex, TraceV2, SqlMetaData_Ver2, AgentInfo, hbase:meta, Traces, hbase:namespace, AgentLifeCycle, ApplicationTraceIndex, ApiMetaData, AgentStat, StringMetaData, ApplicationMapStatisticsSelf_Ver2, ApplicationMapStatisticsCallee_Ver2, ApplicationMapStatisticsCaller_Ver2]
[zk: localhost:2181(CONNECTED) 7]
至此hbase完成!
后续安装pinpoint-web,pinpoint-col 可以参考这篇文档:http://www.cnblogs.com/yyhh/p/6106472.html

后面安装探针的时候 网上例子基本都是tomcat 好不容易找到写外文的论坛找到部署方法
1.pinpoint agent对tomcat 的支持 ----------tomcat部署探针
第一步修改安装的pp_test的pinpoint.config文件

###########################################################
# Collector server                                        #
###########################################################
profiler.collector.ip=192.168.70.124
第二步修改 待打探针的tomcat的bin文件夹下的vi catalina.sh 添加如下几行代码

# -----------------------------------------------------------------------------

# JAVA_OPTS RESET
JAVA_OPTS="$JAVA_OPTS -Xms1303m -Xmx2303m -XX:PermSize=256m -XX:MaxNewSize=512m -XX:MaxPermSize=512m"
JAVA_OPTS="$JAVA_OPTS -javaagent:/koolapp/pp_test/pp-agent/pinpoint-bootstrap-1.6.2.jar"
JAVA_OPTS="$JAVA_OPTS -Dpinpoint.agentId=msc103"
JAVA_OPTS="$JAVA_OPTS -Dpinpoint.applicationName=MSCxx70103"
echo "JAVA OPTS IS $JAVA_OPTS"
到这tomcat探针的过程就ok了。后面只需启动tomcat就可以探测到
2.pinpoint agent对jboss的支持 --------jboss 部署探针
pinpoint已经支持jboss探针部署
[koolapp@aop-70-104 koolapp]$ cd software/jboss/domain/configuration/
[koolapp@aop-70-104 configuration]$ ls
application-roles.properties  default-server-logging.properties  domain.xml       host_old.xml    host.xml            mgmt-users.properties
application-users.properties  domain_old.xml                     host-master.xml  host-slave.xml  logging.properties
[koolapp@aop-70-104 configuration]$
要修改的文件有 software/jboss/domain/configuration/ 下面的host.xml与domain.xml
其中 host需要在末尾的<servers>中加如下代码
 <servers>
        <server name="server-one" group="main-server-group">
            <jvm name="default">
            <jvm-options>
                <option value="-Xbootclasspath/p:/koolapp/software/jboss/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.4.3.Final-redhat-1.jar"/>
                <option value="-javaagent:/koolapp/pp_test/pp-agent/pinpoint-bootstrap-1.6.2.jar"/>
                <option value="-Dpinpoint.applicationName=MSCxx70104"/>
                <option value="-Dpinpoint.agentId=apmp70104"/>
            </jvm-options>
        </jvm>
        </server>
</server>
domain中需要在顶部<system-properties>中添加如下property
 <system-properties>
        <property name="jboss.modules.system.pkgs" value="org.jboss.logmanager,com.navercorp.pinpoint.bootstrap,
com.navercorp.pinpoint.common,com.navercorp.pinpoint.exception" boot-time="true"/>
  ...
</system-properties >
另外一出要修改的地方是koolapp/software/jboss/bin 下面的 vi standalone.conf 需要在其中添加下面几行 其中的jboss路径视安装路径而定
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager,com.navercorp.pinpoint.bootstrap,com.navercorp.pinpoint.common,com.navercorp.pinpoint.exception"
   JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
   JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p: /koolapp/software/jboss/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.4.3.Final-redhat-1.jar"
   JAVA_OPTS="$JAVA_OPTS -javaagent: /koolapp/pp_test/pp-agent/pinpoint-bootstrap-1.6.2.jar"
   JAVA_OPTS="$JAVA_OPTS -Dpinpoint.agentId=apmp70104"
   JAVA_OPTS="$JAVA_OPTS -Dpinpoint.applicationName=MSCxx70104"
3.pinpoint agent对spring boot的支持 --------spring boot 部署探针
spring boot jar 包启动的项目只需要修改启动sh 文件,bootstrap路径视实际安装而定
  nohup java -javaagent: /koolapp/pp_test/pp-agent/pinpoint-bootstrap-1.6.2.jar -Dpinpoint.agentId=notify-104
 -Dpinpoint.applicationName=msc-notify  &