Pinpoint是一个开源的 APM (Application Performance Management/应用性能管理)工具,用于基于java的大规模分布式系统;
仿照 Google Dapper , Pinpoint 通过跟踪分布式应用之间的调用来提供解决方案,以帮助分析系统的总体结构和内部模块之间如何相互联系.
二:Pinpoint组成介绍
(1):Pinpoint Agent ----主要用来采集数据,发送给pinpoint处理
(2):Pinpoint Collector ----pinpoint逻辑控制机
(3):HBase ----HBase数据存储
(4):Pinpoint Web UI ----pinpoint的web展示端
三:架构视图
四:Pinpoint部署安装
4.1:环境准备
1. jdk7 --- Java运行环境
2. hbase-1.0 --- 数据库,用来存储监控信息
3. tomcat8.0 --- Web服务器
4. pinpoint-collector.war --- pp的控制器
5. pinpoint-web.war --- pp展示页面
6. pinpoint-agent ---用来采集监控数据
Tip:这个是我自己在网上找到资料,里面有上面的这些需要的工具以及测试包
百度网盘: <链接: http://pan.baidu.com/s/1eRU5RW2 密码: u89p>
资料:
测试:
因为我个人是将pinpoint这个组件都部署在一个linux服务上,没有分开部署,按道理其实是要分开部署的,一台作为主机,一台作为监控机;下面我都是按照部署在同一台来说明的
4.2:配置jdk1.7
这套APM系统主要是用jdk1.7来进行部署的,首先要配置jdk的环境变量
1: mkdir pp_res :创建放置pinpoint软件包的一个文件夹
2:然后将apache-tomcat-8.0.36.tar.gz hbase-1.0.3-bin.tar.gz jdk-7u79-linux-x64.tar.gz pinpoint-collector-1.5.2.war pinpoint-web-1.5.2.war 上传至pp_res 文件夹中
3:解压jdk-7u79-linux-x64.tar.gz;并创建usr/java/文件目录;将解压好的jdk1.7放到usr/java/目录下
Linux命令:
tar -zxvf jdk-7u79-linux-x64.tar.gz
mkdir /usr/java
mv jdk1.7.0_79/ /usr/java/jdk17
配置java环境变量(我配置的是用户的环境变量)
vi .bash_profile
JAVA_HOME=/data/pinpoint/pp_res/usr/java/jdk17
export JAVA_HOME
JRE_HOME=$JAVA_HOME/jre
export JRE_HOME
CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export CLASSPATH
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export PATH
配置好java环境变量 用此命令:source /etc/profile 使配置好的环境变量生效
测试java的环境变量是否配置好了?
java -version
出现如下java版本信息就代表配置好了:
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
4.3:安装Hbase
pinpoint收集来的测试数据,主要是存在Hbase数据库的。所以它可以收集大量的数据,可以进行更加详细的分析
1:解压hbase-1.0.3-bin.tar.gz;创建data/service文件目录;并将解压好的hbase-1.0.3 放到 data/service目录下
Linux命令:
tar -zxvf hbase-1.0.3-bin.tar.gz
mkdir -p /data/service
mv hbase-1.0.3/ /data/service/hbase
2:进入data/service/hbase-1.0.3/conf目录下,修改hbase-env.sh文件以及hbase-site.xml
Linux命令:
Vi hbase-env.sh
配置JAVA_HOME环境变量
这里我部署的是单机hbase 用的是hbase自带的zookeeper,所以需要添加这样一句
Vi hbase-site.xml
第一个property配置代表的是hbase本地数据的存储位置
第二个property配置代表的是zookeeper日志存放的位置
3:启动hbase
Linux命令:
启动hbase:
./start-hbase.sh
输入“jps”命令 查看hbase进程,如果成功就会看到HMaster进程
4:初始化hbase的pinpoint库
cd 到data/service/hbase-1.0.3/bin目录下输入如下命令初始化hbase的pinpoint库
./hbase shell /data/pinpoint/pp_res/hbase-create.hbase
(红色标记的路径是hbase-create.hbase这个文件路径)
执行后完,输入./hbase shell进入hbase 可以看到如下hbase的版本信息
输入"status 'detailed' "可以查看刚才初始化的表,是否存在,部分截图如下
也可以登录web,来查看HBase的数据是否初始化成功
HbaseWeb : http://192.168.1.132:16010/master-status
4.4:安装pinpoint-collector
1:解压apache-tomcat-8.0.36.tar.gz包;并创建目录data/service/pp-col;将解压好的apache-tomcat-8.0.36放到该目录下,并重命名为tomcat-col
Linux命令:
tar -zxvf apache-tomcat-8.0.36.tar.gz
mv apache-tomcat-8.0.36/ /data/service/pp-col/tomcat-col
2:修改tomcat配置
修改tomcat-col的Tomcat的配置,主要修改端口,避免与pp-web的Tomcat的端口冲突。我在原本默认的端口前都加了1,下面是替换的shell命令。
cd /data/service/pp-col/conf/
sed -i 's/port="8005"/port="18005"/g' server.xml
sed -i 's/port="8080"/port="18080"/g' server.xml
sed -i 's/port="8443"/port="18443"/g' server.xml
sed -i 's/port="8009"/port="18009"/g' server.xml
sed -i 's/redirectPort="8443"/redirectPort="18443"/g' server.xml
3:部署pinpoint-collector.war包
将pinpoint-collector-1.5.2.war部署到tomcat-col的webapps/ROOT目录下
Linux命令:
rm -rf /data/service/pp-col/webapps/*
unzip pinpoint-collector-1.5.2.war -d /data/service/pp-col/tomcat-col/webapps/ROOT
4:启动tomcat-col
Linux命令:
cd /data/service/pp-col/tomcat-col/bin/
./startup.sh
查看启动日志:
tail -f ../logs/catalina.out
4.5:安装pinpoint-web
1: 解压Tomcat,将Tomcat重命名移动到指定位置
Linux命令:
tar -zxvf apache-tomcat-8.0.36.tar.gz
mv apache-tomcat-8.0.36/ /data/service/pp-web/tomcat-web
将tomcat解压到/data/service/pp-web/目录下 并重命名为tomcat-web
2:修改tomcat配置
修改pp-web的Tomcat的配置,主要修改端口,避免与pp-col的Tomcat的端口冲突。我在原本默认的端口前都加了2,下面是替换的shell命令
cd /data/service/pp-web/conf/
sed -i 's/port="8005"/port="28005"/g' server.xml
sed -i 's/port="8080"/port="28080"/g' server.xml
sed -i 's/port="8443"/port="28443"/g' server.xml
sed -i 's/port="8009"/port="28009"/g' server.xml
sed -i 's/redirectPort="8443"/redirectPort="28443"/g' server.xml
3:部署pinpoint-web-1.5.2.war
Linux命令:
rm -rf /data/service/pp-web/tomcat-web/webapps/*
unzip pinpoint-web-1.5.2.war -d /data/service/pp-web/tomcat-web/webapps/ROOT
将pinpoint-web-1.5.2.war解压部署到/data/service/pp-web/tomcat-web/webapps/ROOT目录下
Tip:
这里说明一下:
hbase.properties 配置我们pp-web从哪个数据源获取采集数据,这里我们只指定Hbase 的zookeeper地址。
jdbc.properties pp-web连接自身Mysql数据库的连接认证配置。
sql目录 pp-web本身有些数据需要存放在MySQL数据库中,这里需要初始化一下表结构。
pinpoint-web.properties 这里pp-web集群的配置文件,如果你需要pp-web集群的话。
applicationContext-* .xml 这些文件在后续的调优工作中会用到。
log4j.xml 日志相关配置。
sql文件夹中是一些表的创建语句,只要粘贴复制到mysql中就行啦
4:启动Tomcat
cd /data/service/pp-web/tomcat-web/bin/
./startup.sh
查看日志,Tocmat是否启动成功
tail -f ../logs/catalina.out
这时候我们可以访问一下这个地址,在浏览器中输入"http://192.168.1.132:28080",就会出现主页面了
如果访问不了的话,关闭防火墙
4.6:部署pp-agent采集监控数据
1:在/data/pinpoint目录下创建pp_test文件夹,将apache-tomcat-8.0.36.tar.gz pinpoint-agent-1.5.2.tar.gz test.war 上传至pp_test中
2:部署tomcat
tar -zxvf apache-tomcat-8.0.36.tar.gz
mv apache-tomcat-8.0.36/ /data/pinpoint/pp_test/tomcat-test
将tomcat解压到/data/pinpoint/pp_test/tomcat-test/目录下 并重命名为tomcat-pp
3:修改tomcat配置
cd /data/pinpoint/pp_test/tomcat-test/tomcat-pp/conf/
sed -i 's/port="8005"/port="38005"/g' server.xml
sed -i 's/port="8080"/port="38080"/g' server.xml
sed -i 's/port="8443"/port="38443"/g' server.xml
sed -i 's/port="8009"/port="38009"/g' server.xml
sed -i 's/redirectPort="8443"/redirectPort="38443"/g' server.xml
4:解压测试包
cd /home/pp_test/
rm -rf /data/pinpoint/pp_test/tomcat-test/tomcat-pp/webapps/*
unzip test.war -d /data/pinpoint/pp_test/tomcat-test/tomcat-pp/webapps/ROOT
将测试包解压到tomcat-pp的/webapps/ROOT目录下
5:配置pp-agent采集器
tar -zxvf pinpoint-agent-1.5.2.tar.gz
mv pinpoint-agent-1.5.2 /data/pinpoint/pp_test/pp-agent
解压pinpoint-agent-1.5.2.tar.gz到/data/pinpoint/pp_test目录下并重命名为pp-agent
6:修改 pinpoint.config文件
cd /data/pinpoint/pp_test/pp-agent/
vi pinpoint.config
主要修改IP,只需要指定到安装pp-col的IP就行了
profiler.collector.ip=192.168.245.136
7:修改测试项目下的tomcat启动文件"catalina.sh",修改这个只要是为了监控测试环境的Tomcat,增加探针
cd /data/pinpoint/pp_test/tomcat-test/tomcat-pp/bin
vi catalina.sh
在20行增加如下字段
第一行是pp-agent的jar包位置
第二行是agent的ID,这个ID是唯一的,我是用pp + 今天的日期命名的,只要与其他的项目的ID不重复就好了
第三行是采集项目的名字,这个名字可以随便取,只要各个项目不重复就好了
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/data/pinpoint/pp_test/pp-agent/pinpoint-bootstrap-1.5.2.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=pp20170414"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=MyTestZY"
4.7:测试
配置好了。就可以开始监控了,我们启动测试用的Tomcat的服务器
cd /data/pinpoint/pp_test/tomcat-test/tomcat-pp/bin/
./startup.sh
查看启动日志,确实Tomcat启动
tail -f ../logs/catalina.out
启动了,我们就可以访问测试环境了
http://192.168.1.132:38086/test
这时候我们在访问pp-web,可以发现它的下拉框中,多了一个app
点击MyTestZY
【注意】鼠标点击右上角箭头位置,鼠标左键按住不动,拉框查看
此时会弹出如下一个列表界面