pinpoint安装与配置

三丰 soft张三丰

Pinpoint是什么?

Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能。基于GoogleDapper论文进行的实现,与另一款开源的全链路分析工具Zipkin类似,但相比Zipkin提供了无侵入式、代码维度的监控等更多的特性。Pinpoint支持的功能比较丰富,可以支持如下几种功能:

•服务拓扑图:对整个系统中应用的调用关系进行了可视化的展示,单击某个服务节点,可以显示该节点的详细信息,比如当前节点状态、请求数量等
•实时活跃线程图:监控应用内活跃线程的执行情况,对应用的线程执行性能可以有比较直观的了解
•请求响应散点图:以时间维度进行请求计数和响应时间的展示,拖过拖动图表可以选择对应的请求查看执行的详细情况
•请求调用栈查看:对分布式环境中每个请求提供了代码维度的可见性,可以在页面中查看请求针对到代码维度的执行详情,帮助查找请求的瓶颈和故障原因。
•应用状态、机器状态检查:通过这个功能可以查看相关应用程序的其他的一些详细信息,比如CPU使用情况,内存状态、垃圾收集状态,TPS和JVM信息等参数。

架构组成

Pinpoint 主要由 3 个组件外加 Hbase 数据库组成,三个组件分别为:Agent、Collector 和 Web UI。

•Agent组件:用于收集应用端监控数据,无侵入式,只需要在启动命令中加入部分参数即可
•Collector组件:数据收集模块,接收Agent发送过来的监控数据,并存储到HBase
•WebUI:监控展示模块,展示系统调用关系、调用详情、应用状态等,并支持报警等功能
下面是官方的一些截图,很帅,很直观




安装与配置

我安装它用到的2台 CentOS6.8 虚拟机,一台主要部署pinpoint的主程序,一台模拟测试环境。配置如下:


java 1.7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

pinpoint https://github.com/naver/pinpoint

我将需要的资源都整合起来了,上传至百度网盘

百度网盘: < 链接:https://pan.baidu.com/s/1WC3VhyhgicqMMmTgbxMziA 密码:vdp6

安装依赖包

进入home目录,创建一个"pp_res"的资源目录,用来存放需要安装的包

mkdir /home/pp_rescd /home/pp_res/

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

•jdk7 --- Java运行环境
•hbase-1.0 --- 数据库,用来存储监控信息
•tomcat8.0 --- Web服务器
•pinpoint-collector.war --- pp的控制器
•pinpoint-web.war --- pp展示页面
•pp-collector.init --- 用来快速启动pp-col,不要也可以
•pp-web.init --- 用来快速启动pp-web,不要也可以

配置JDK,安装hbase

修改Hbase的配置信息

vi hbase-site.xml    hbase.rootdir    file:///data/hbase

启动hbase

cd /data/service/hbase/bin./start-hbase.sh# 查看Hbase是否启动成功,如果启动成功的会看到"HMaster"的进程[root@localhost bin]# jps12075 Jps11784 HMaster

初始化Hbase的pinpoint库

# 执行pinpoint提供的Hbase初始化语句,这时会初始化一会。./hbase shell /home/pp_res/hbase-create.hbase# 执行完了以后,进入Hbase./hbase shell# 进入后可以看到Hbase的版本,还有一些相关的信息2016-11-15 01:55:44,861 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableHBase Shell; enter 'help' for list of supported commands.Type "exit" to leave the HBase ShellVersion 1.0.3, rf1e1312f9790a7c40f6a4b5a1bab2ea1dd559890, Tue Jan 19 19:26:53 PST 2016hbase(main):001:0># 输入"status 'detailed'"可以查看刚才初始化的表,是否存在hbase(main):001:0> status 'detailed'version 1.0.30 regionsInTransitionmaster coprocessors: []1 live servers    localhost:50887 1478538574709        requestsPerSecond=0.0, numberOfOnlineRegions=498, usedHeapMB=24, maxHeapMB=237, numberOfStores=626, numberOfStorefiles=0, storefileUncompressedSizeMB=0, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0, readRequestsCount=7714, writeRequestsCount=996, rootIndexSizeKB=0, totalStaticIndexSizeKB=0, totalStaticBloomSizeKB=0, totalCompactingKVs=0, currentCompactedKVs=0, compactionProgressPct=NaN, coprocessors=[MultiRowMutationEndpoint]        "AgentEvent,,1478539104778.aa1b3b14d0b48d83cbf4705b75cb35b7."            numberOfStores=1, numberOfStorefiles=0, storefileUncompressedSizeMB=0, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0,readRequestsCount=0, writeRequestsCount=0, rootIndexSizeKB=0, totalStaticIndexSizeKB=0, totalStaticBloomSizeKB=0, totalCompactingKVs=0, currentCompactedKVs=0, compactionProgressPct=NaN, completeSequenceId=-1, dataLocality=0.0...

也可以登录web,来查看HBase的数据是否初始化成功

HbaseWeb : http://192.168.245.134:16010/master-status

安装pinpoint-collector

部署war包,然后配置快速启动

# 配置快速启动需要修改pp-collector.init的路径( pp-collector在网盘里面有 ),可以"vi"进去,大概在18,24,27行处,修改相关的路径。我这边为了方便,直接就用替换的shell做了,如果路径与我的不一致,需要将路径修改成自己的路径。cd /home/pp_ressed -i "s/JAVA_HOME=\/usr\/java\/default\//JAVA_HOME=\/usr\/java\/jdk17\//g" pp-collector.initsed -i "s/CATALINA_HOME=\/data\/service\/pinpoint-collector\//CATALINA_HOME=\/data\/service\/pp-col\//g" pp-collector.initsed -i "s/CATALINA_BASE=\/data\/service\/pinpoint-collector\//CATALINA_BASE=\/data\/service\/pp-col\//g" pp-collector.init# 将文件赋予"执行"的权限,把它放到"init.d"中去。以后就可以restart快速重启了。chmod 711 pp-collector.initmv pp-collector.init /etc/init.d/pp-col# 测试一下restart[root@localhost pp_res]# /etc/init.d/pp-col restartStoping TomcatUsing CATALINA_BASE:   /data/service/pp-col/Using CATALINA_HOME:   /data/service/pp-col/Using CATALINA_TMPDIR: /data/service/pp-col//tempUsing JRE_HOME:        /usr/java/jdk17/Using CLASSPATH:       /data/service/pp-col//bin/bootstrap.jar:/data/service/pp-col//bin/tomcat-juli.jarwaiting for processes to exitStarting tomcatUsing CATALINA_BASE:   /data/service/pp-col/Using CATALINA_HOME:   /data/service/pp-col/Using CATALINA_TMPDIR: /data/service/pp-col//tempUsing JRE_HOME:        /usr/java/jdk17/Using CLASSPATH:       /data/service/pp-col//bin/bootstrap.jar:/data/service/pp-col//bin/tomcat-juli.jarTomcat started.Tomcat is running with pid: 22824

安装pinpoint-web

部署war包 配置快速启动

# 需要修改"pp-web.init",与上面的步骤一致cd /home/pp_ressed -i "s/JAVA_HOME=\/usr\/java\/default\//JAVA_HOME=\/usr\/java\/jdk17\//g" pp-web.initsed -i "s/CATALINA_HOME=\/data\/service\/pinpoint-web\//CATALINA_HOME=\/data\/service\/pp-web\//g" pp-web.initsed -i "s/CATALINA_BASE=\/data\/service\/pinpoint-web\//CATALINA_BASE=\/data\/service\/pp-web\//g" pp-web.init# 将文件赋予"执行"的权限,把让放到"init.d"中去。以后就可以restart快速重启了。chmod 711 pp-web.initmv pp-web.init /etc/init.d/pp-web# 测试一下restart[root@localhost pp_res]# /etc/init.d/pp-web restartStoping TomcatUsing CATALINA_BASE:   /data/service/pp-web/Using CATALINA_HOME:   /data/service/pp-web/Using CATALINA_TMPDIR: /data/service/pp-web//tempUsing JRE_HOME:        /usr/java/jdk17/Using CLASSPATH:       /data/service/pp-web//bin/bootstrap.jar:/data/service/pp-web//bin/tomcat-juli.jarwaiting for processes to exitStarting tomcatUsing CATALINA_BASE:   /data/service/pp-web/Using CATALINA_HOME:   /data/service/pp-web/Using CATALINA_TMPDIR: /data/service/pp-web//tempUsing JRE_HOME:        /usr/java/jdk17/Using CLASSPATH:       /data/service/pp-web//bin/bootstrap.jar:/data/service/pp-web//bin/tomcat-juli.jarTomcat started.Tomcat is running with pid: 22703

部署pp-agent采集监控数据

在测试系统中,部署pp-agent采集监控数据

部署采集器就很简单了,只需要加3句话就好了。我这边做一个测试的Tomcat,来模拟部署。

首先,先建立一个文件夹,放测试需要的包

mkdir /home/pp_testcd /home/test

将测试需要的pp-agent拉到服务器上 配置模拟的Tomcat测试环境 配置pp-agent采集器

# 解压pp-agentcd /home/pp_testtar -zxvf pinpoint-agent-1.5.2.tar.gzmv pinpoint-agent-1.5.2 /data/pp-agent# 编辑配置文件cd /data/pp-agent/vi pinpoint.config# 主要修改IP,只需要指定到安装pp-col的IP就行了,安装pp-col启动后,自动就开启了9994,9995,9996的端口了。这里就不需要操心了,如果有端口需求,要去pp-col的配置文件("pp-col/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties")中,修改这些端口profiler.collector.ip=192.168.245.136# 修改测试项目下的tomcat启动文件"catalina.sh",修改这个只要是为了监控测试环境的Tomcat,增加探针cd /data/pp-test/binvi catalina.sh# 在20行增加如下字段# 第一行是pp-agent的jar包位置# 第二行是agent的ID,这个ID是唯一的,我是用pp + 今天的日期命名的,只要与其他的项目的ID不重复就好了# 第三行是采集项目的名字,这个名字可以随便取,只要各个项目不重复就好了CATALINA_OPTS="$CATALINA_OPTS -javaagent:/data/pp-agent/pinpoint-bootstrap-1.5.2.jar"CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=pp20161122"CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=MyTestPP

启动了,我们就可以访问测试环境了

©著作权归作者所有:来自51CTO博客作者mb5fe32930661bd的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 分环境配置
  2. No.11 使用firewall配置的防火墙策略的生效模式
  3. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  4. Android配置心得
  5. Android开发 ADB配置调试命令图解
  6. Android项目使用私有maven仓库配置
  7. Android(安卓)NDK开发两部曲(一)之初识篇(JNI通识与NDK配置)
  8. Android(安卓)TextWatcher监控EditText中的输入内容并限制其输入
  9. 配置android时出现path问题,因为路径有中文,完美解决方法

随机推荐

  1. shell和Python生娃了!太牛了!
  2. IDEA中的Git操作,看这一篇就够了!
  3. 这么牛X的功能你可能还不知道
  4. 前后端分离项目,如何解决跨域问题
  5. Spring Cloud Ribbon:负载均衡的服务调用
  6. Java 8都出那么久了,Stream API了解下?
  7. Android(安卓)Framework层看硬件加速
  8. Spring Cloud Hystrix:服务容错保护
  9. 如何回答亲戚问一个月赚多少钱?
  10. 人体运维:人和机器没什么区别