安装版本: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 |
安装之前请先下载
mkdir pp_res
cd /koolapp/pp_res/
ls
使用xshell等类似的工具,将需要的文件上传到Linux虚拟机中,主要要传的文件都在百度网盘中
- jdk7 --- Java运行环境
- hbase-1.0 --- 数据库,用来存储监控信息
- tomcat8.0 --- Web服务器
- pinpoint-collector.war --- pp的控制器
- pinpoint-web.war --- pp展示页面
将这些压缩包上传并解压
将tomcat解压出来,cp出两份 分别起名toomcat-web、tomcat-col
1.2 配置jdk
。。。
配置jdk的过程这边就讲解
配置完成只需要输入
java -version 验证是否成功。
2. 安装Hbase
pinpoint收集来的测试数据,主要是存在Hbase数据库的。所以它可以收集大量的数据,可以进行更加详细的分析。
2.1 将Hbase解压,并且放入指定目录
解压完成之后如下图:
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的数据是否初始化成功
HbaseWeb : http://192.168.70.124:16010/master-status
附:后续因为系统问题导致重新安装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 &