安装版本:pinpoint 1.6.2 下载地址: https://github.com/naver/pinpoint/releases/tag/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"的资源目录,用来存放需要安装的包
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"的进程
[[email protected] 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的版本,还有一些相关的信息
[[email protected] bin]$ ./hbase shel Error: Could not find or load main class shel [[email protected] 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探针部署 [[email protected] koolapp]$ cd software/jboss/domain/configuration/ [[email protected] 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 [[email protected] 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 &