简介:
pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测试的Tomcat中加上3句话,打下探针,就可以监控整套程序了。简单来说就是可以分析请求经过那些地方,响应时间,SQL语句等。看下截图很有诱惑力
一. 环境准备
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,不要也可以
1. 创建安装包路径
mkdir /home/pp_res
cd /home/pp_res/
2.java程序 必备jdk
cd /home/pp_res/
tar -zxvf jdk-7u79-linux-x64.tar.gz
mkdir /usr/java
mv jdk1.7.0_79/ /usr/java/jdk17
vim /etc/profile
export JAVA_HOME=/usr/java/jdk17
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
3.关闭防火墙 Selinx
systemctl stop firewalld
setenforce 0
二. 安装hbase
pinpoint收集来的测试数据,主要是存在Hbase数据库的。所以它可以收集大量的数据,可以进行更加详细的分析。
1.解压安装包
cd /home/pp_res/
tar -zxvf hbase-1.0.3-bin.tar.gz
mkdir -p /data/service
mv hbase-1.0.3/ /data/service/hbase
2. 修改hbase-env.sh的JAVA_HOME环境变量位置
cd /data/service/hbase/conf/
vi hbase-env.sh
在27行左右的位置,修改如下
export JAVA_HOME=/usr/java/jdk17
3.修改Hbase的配置信息
在结尾修改成如下,这里我们指定Hbase本地来存储数据,生产环境将数据建议存入HDFS中。
4.启动hbase
cd /data/service/hbase/bin
./start-hbase.sh
查看进程
jps
12075 Jps11784 HMaster
5.执行pinpoint提供的Hbase初始化语句,这时会初始化一会。
./hbase shell /home/pp_res/hbase-create.hbase
执行完了以后,进入Hbase./hbase shell
查看刚才初始化的表
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
也可以登录web,来查看HBase的数据是否初始化成功
ip:16010
三.安装pinpoint-collector
1.解压tomcat包
cd /home/pp_res/
tar -zxvf apache-tomcat-8.0.36.tar.gz
mv apache-tomcat-8.0.36/ /data/service/pp-col
2.修改tomcat端口号
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
sed -i "s/localhost/`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | awk -F: '{print $2}'`/g" server.xml
3.部署pinpoint-collector.war包
cd /home/pp_res/
rm -rf /data/service/pp-col/webapps/*
unzip pinpoint-collector-1.5.2.war -d /data/service/pp-col/webapps/ROOT
4.启动col
cd /data/service/pp-col/bin/
./startup.sh
tail -f ../logs/catalina.out
5.配置快速启动(可省略 )
cd /home/pp_res
sed -i "s/JAVA_HOME=\/usr\/java\/default\//JAVA_HOME=\/usr\/java\/jdk17\//g" pp-collector.init
sed -i "s/CATALINA_HOME=\/data\/service\/pinpoint-collector\//CATALINA_HOME=\/data\/service\/pp-col\//g" pp-collector.init
sed -i "s/CATALINA_BASE=\/data\/service\/pinpoint-collector\//CATALINA_BASE=\/data\/service\/pp-col\//g" pp-collector.init
chmod 711 pp-collector.initmv pp-collector.init /etc/init.d/pp-col
.测试重启
/etc/init.d/pp-col restart
四. 安装pinpoint-web
1.解压tomcat包
cd /home/pp_res/
tar -zxvf apache-tomcat-8.0.36.tar.gz
mv apache-tomcat-8.0.36/ /data/service/pp-web
2.修改端口号,最后是将tomcat私有ip开放0.0.0.0也可以
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
sed -i "s/localhost/`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | awk -F: '{print $2}'`/g" server.xml
3.解压war包
cd /home/pp_res/
rm -rf /data/service/pp-web/webapps/*
unzip pinpoint-web-1.5.2.war -d /data/service/pp-web/webapps/ROOT
ll /data/service/pp-web/webapps/ROOT/WEB-INF/classes/
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 日志相关配置。
4.启动pp-web
cd /data/service/pp-web/bin/
./startup.sh
tail -f ../logs/catalina.out
5.访问web ip:28080
6.配置快速启动(可省略)
cd /home/pp_res
sed -i "s/JAVA_HOME=\/usr\/java\/default\//JAVA_HOME=\/usr\/java\/jdk17\//g" pp-web.init
sed -i "s/CATALINA_HOME=\/data\/service\/pinpoint-web\//CATALINA_HOME=\/data\/service\/pp-web\//g" pp-web.init
sed -i "s/CATALINA_BASE=\/data\/service\/pinpoint-web\//CATALINA_BASE=\/data\/service\/pp-web\//g" pp-web.init
chmod 711 pp-web.init
mv pp-web.init /etc/init.d/pp-web
/etc/init.d/pp-web restart
五.配置采集端
1.测试tomcat部署
mkdir -p /data/pp-test
cd /home/pp_res
tar -zxvf apache-tomcat-8.0.36.tar.gz
mv apache-tomcat-8.0.36/* /data/pp-test
cd /data/pp-test/conf/
sed -i "s/localhost/`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | awk -F: '{print $2}'`/g" server.xml
解压war包
cd /home/pp_test/
rm -rf /data/pp-test/webapps/*
unzip test.war -d /data/pp-test/webapps/ROOT
2.配置采集agent解压
mkdir -p /data/pp-agent
cd /home/pp_res
tar -zxvf pinpoint-agent-1.5.2.tar.gz
mv 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
3.修改测试项目下的tomcat启动文件"catalina.sh",修改这个只要是为了监控测试环境的Tomcat,增加探针
cd /data/pp-test/bin
vi 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=pp2018627"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=MyTestPP
4.启动测试应用
cd /data/pp-test/bin/
./startup.sh
访问 ip:8080/test
5.访问pp-web,可以发现它的下拉框中,多了一个app
ojbk
如果Hbase不是与pp-web, pp-col装在一台机器上,需要安装zookeeper,只要安装就好,确实2181端口启动就好。
如果zookeeper安装在独立机器上,这里需要修改一下pp-colletor 和 pp-web的配置文件pinpoint-collector.properties,pinpoint-web.properties,不然会导致俩个模块启动失败。
发现pinpoint还是有些缺陷,异步的操作监控不到,比如我写了个多线程来发送HttpClient4的请求,但是pinpoint监控不到。但是它介绍又说可以监控到Httpclient4的请求。现在都是分布式系统,异步拿数据再常见不过来,如果监控不到异步的操作,就很鸡肋了。看pp1.6会不会修复这个问题
在pp1.6部署,Hbase中的默认字段有增加,如果没有加上默认字段,取得的数据就会变得相当少了。
https://www.cnblogs.com/yyhh/p/6106472.html