文章目录
一、pinpoint简介
pinpoint是一个分析大型分布式系统的平台,提供解决方案来处理海量跟踪数据,主要面向基于tomcat的Java 应用。
存在理由:
和如今相比, 过去的因特网的用户数量相对较小,而因特网服务的架构也没那么复杂。web服务通常使用两层(web服务器和数据库)或三层(web服务器,应用服务器和数据库)架构。
然而在如今,随着互联网的成长,需要支持大量的并发连接,并且需要将功能和服务有机结合,导致更加复杂的软件栈组合。更确切地说,比三层层次更多的n层架构变得更加普遍。系统的复杂度因此提升。
系统越复杂,越难解决问题,例如系统失败或者性能问题。在三层架构中找到解决方案还不是太难,仅仅需要分析3个组件比如web服务器,应用服务器和数据库,而服务器数量也不多。
但是,如果问题发生在n层架构中,就需要调查大量的组件和服务器。另一个问题是仅仅分析单个组件很难看到大局;当发生一个低可见度的问题时,系统复杂度越高,就需要更长的时间来查找原因。最糟糕的是,某些情况下我们甚至可能无法查找出来。
为了解决复杂架构下的拓扑解析与性能分析,pinpoint应运而生。
二、功能、优势与架构
功能:
-
分布式事务跟踪,跟踪跨分布式应用的消息
-
自动检测应用拓扑,帮助你搞清楚应用的架构
-
水平扩展以便支持大规模服务器集群
-
提供代码级别的可见性以便轻松定位失败点和瓶颈
-
使用字节码增强技术,添加新功能而无需修改代码
优势:
-
非入侵式:不需要修改应用的代码,即可完成agent的部署。
-
资源消耗:总体资源消耗只提高了3%左右。
架构:
-
HBase (用于存储数据)
-
Pinpoint Collector (信息的收集者,部署在tomcat中)
-
Pinpoint Web (提供WEB_UI界面,部署在tomcat中)
-
Pinpoint Agent (附加到 java 应用来做采样)
Web 页面效果:
三、部署
目标:
在pp_colle主机上部署 HBase 、Pinpoint Collector、PinpointWeb(依赖JDK和Tomcat),收集各个部署Pinpoint Agent主机上的基于tomcat的Java 应用
在pp_agent主机上部署 Pinpoint Agent 和 Tomcat ,Agent收集Tomcat的数据信息,传输给Collector
IP | 操作系统 | 主机名 | 安装项 | 说明 |
---|---|---|---|---|
192.168.1.21 | CentOS 7.6 | pp_colle | Collector,HBase,Web UI,JDK,Tomcat | Pinpoint Collector、Pinpoint Web的部署均需要Tomcat |
192.168.1.22 | CentOS 7.6 | pp_agent | agent,Tomcat,JDK | 采集Tomcat数据信息 |
软件信息:
软件名 | 版本 |
---|---|
HBase | hbase-1.0.3-bin.tar.gz |
Pinpoint Collector | pinpoint-collector-1.5.2.war |
Pinpoint Web | pinpoint-web-1.5.2.war |
Pinpoint Agent | pinpoint-agent-1.5.2.tar.gz |
Tomcat | apache-tomcat-8.0.36.tar.gz |
JDK | jdk-8u112-linux-x64.rpm |
hbase-create.hbase | HBase数据库初始化脚本 |
test.war | 测试网页脚本 |
pp_colle主机配置步骤
关闭防火墙和selinux
[root@pp_colle opt]# systemctl stop firewalld
[root@pp_colle opt]# setenforce 0
上传文件
[root@pp_colle ~]# cd /opt
[root@pp_colle opt]# ls
apache-tomcat-8.0.36.tar.gz hbase-create.hbase pinpoint-collector-1.5.2.war
hbase-1.0.3-bin.tar.gz jdk-8u112-linux-x64.rpm pinpoint-