Author cherryc
Date 2018/6/18
Desc pinpoint的安装文档
pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测试的Tomcat中加上3句话,打下探针,就可以监控整套程序了。
安装pinpoint需要的组件信息:
组件 | 版本 |
---|---|
Oracle JDK | 1.8 |
HBase(存储使用) | 1.2.4 |
Pinpoint Collector (部署在web容器中) | 1.6.1 |
Pinpoint Web (部署在Web容器中) | 1.6.1 |
Pinpoint Agent (attached上一个应用服务器做性能分析) | 1.6.1 |
Tomcat | 8.5.4 |
下边介绍详细的安装步骤:
如果已经安装好了Oracle JDK,可以跳过这步。
下载Oracle JDK并解压
cd /usr/src
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/jdk-8u112-linux-x64.tar.gz
tar -xzvf jdk-8u112-linux-x64.tar.gz
配置JAVA环境变量
vim /etc/profile
在 /etc/profile 文件末尾追加以下内容:
export JAVA_HOME=/usr/srcjdk1.8.0_112
export JRE_HOME=$JAVA_HOME/jre
export PATH=JAVA_HOME/bin:JRE_HOME/bin:$PATH
使配置生效:
source /etc/profile
验证JAVA是否安装成功: java -version
如果Hbase不是与pp-web, pp-col装在一台机器上,需要安装zookeeper
下载Zookeeper并解压
cd /usr/src/pinpoint_resource
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/zookeeper-3.4.9.tar.gz
tar -xzvf zookeeper-3.4.9.tar.gz
配置Zookeeper
vi /usr/src/pinpoint_resource/zookeeper-3.4.9/conf/zoo_sample.cfg
添加以下内容:
tickTime=20000
initLimit=10
syncLimit=5
dataDir=/u01/hitoa/zookeeper-3.4.9/data
clientPort=2181
MaxSessionTimeout=200000
启动Zookeeper
./zkServer.sh start
如下表示Zookeeper启动成功:
Zookeeper启动成功后,绑定到2181端口提供服务。
pinpoint收集来的测试数据,主要是存在Hbase数据库的。所以它可以收集大量的数据,可以进行更加详细的分析。
下载Hbase并解压
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/hbase-1.2.4-bin.tar.gz
tar -xzvf hbase-1.2.4-bin.tar.gz
在/etc/profile
文件末尾追加以下内容:
vim /etc/profile
export HBASE_HOME=/usr/src/pinpoint_resource/hbase-1.2.4
使配置生效:source /etc/profile
配置HBase配置文件
cd hbase-1.2.4/conf/
vi hbase-site.xml
hbase-site.xml中添加以下内容: 在结尾修改成如下,这里我们指定Hbase本地来存储数据,生产环境将数据建议存入HDFS中。 (修改相应参数)
<configuration>
<property>
<name>hbase.rootdirname>
<value>file:/usr/src/pinpoint_resource/hbase-1.2.4/datavalue>
property>
<property>
<name>hbase.cluster.distributedname>
<value>truevalue>
property>
<property>
<name>hbase.regionserver.handler.countname>
<value>20value>
property>
<property>
<name>hbase.zookeeper.quorumname>
<value>localhostvalue>
property>
<property>
<name>hbase.zookeeper.property.clientPortname>
<value>2181value>
property>
<property>
<name>zookeeper.session.timeoutname>
<value>200000value>
property>
configuration>
HBase支持HDFS存储,但是需要安装Hadoop等组件,这里为了方便,暂时先不使用HDFS。另外,生产环境建议搭HBase集群,这里暂时只搭HBase单节点。
修改hbase-env.sh:vim hbase-env.sh
去掉 export HBASE_MANAGES_ZK=true 前面的 # ,并设置 export HBASE_MANAGES_ZK=false,使得HBase不使用内置Zookeeper,而使用前面安装好的外置Zookeeper。
启动HBase:./start-hbase.sh
HBase日志文件位于 /usr/src/pinpoint_resource/hbase-1.2.4/logs ,可以查看HBase启动日志。
用jps命令查看Hbase是否启动成功,如果启动成功的会看到”HMaster”的进程 。
HBase启动成功以后,可以通过浏览器访问 http://ip:16010 查看HBase有关信息。
1)hbase启动之后使用jps命令查看没有hmaster进程
export HBASE_MANAGES_ZK=false (修改最后一行:集群配置为false,单机为true),修改为true之后就可以了
2)成功启动了HBase,但是却无法在浏览器中访问 http://ip:16010,这是因为CentOS7默认开启了防火墙,可以先将防火墙关掉 systemctl stop firewalld.service,再尝试访问。
Pinpoint采用HBase作为底层存储,需要先在HBase中初始化表结构。
首先确保HBase是正常启动状态,然后:
cd /usr/src/pinpoint_resource/
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-hbase-create.hbase
[root@localhost pinpoint_resource]# curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-hbase-create.hbase
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 17011 100 17011 0 0 71160 0 --:--:-- --:--:-- --:--:-- 212k
[root@localhost pinpoint_resource]# ls
hbase-1.2.4 hbase-1.2.4-bin.tar.gz pinpoint-hbase-create.hbase zookeeper-3.4.9 zookeeper-3.4.9.tar.gz
[root@localhost pinpoint_resource]#
cd hbase-1.2.4/bin
./hbase shell /usr/src/pinpoint_resource/pinpoint-hbase-create.hbase
初始化成功以后,会在HBase中创建16张表。
初始化表结构时,出现了问题,zookeeper未连接:client.ConnectionManager$HConnectionImplementation: Can’t get connection to ZooKeeper: KeeperErrorCode = ConnectionLoss for /hbase
所以需要启动zookeeper,和hbase,然后执行数据初始化命令
./hbase shell /usr/src/pinpoint_resource/pinpoint-hbase-create.hbase
访问页面HbaseWeb:http://ip:16010/master-status 如果成功在页面的tables标签下能看到导入的表。
至此HBase安装成功,且表数据初始化成功!
下载Pinpoint Collector并解压,Pinpoint Collector、Pinpoint Web的部署均需要Tomcat,所以先下载Tomcat。
pinpoint部署路径为/usr/src/pinpoint_resource/pinpoint-collector-1.6.1/webapps
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/apache-tomcat-8.5.14.zip
unzip apache-tomcat-8.5.14.zip
mv apache-tomcat-8.5.14 pinpoint-collector-1.6.1
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-collector-1.6.1.war
[root@localhost pinpoint_resource]# pwd
/usr/src/pinpoint_resource
[root@localhost pinpoint_resource]# cd pinpoint-collector-1.6.1/webapps/
[root@localhost webapps]# ls
docs examples host-manager manager ROOT
[root@localhost webapps]# rm -rf *
[root@localhost webapps]# unzip /usr/src/pinpoint_resource/pinpoint-collector-1.6.1.war -d ROOT
由于我这里pinpoint的全部组件都部署在同一台机器上,为了避免端口冲突,需要对Tomcat的端口做一些设置,可以直接下载已经设置好的配置文件: (设定的端口号是18080)
[root@localhost webapps]# cd ..
[root@localhost pinpoint-collector-1.6.1]# cd conf
[root@localhost conf]# curl http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-collector-server.xml -o server.xml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7516 100 7516 0 0 44558 0 --:--:-- --:--:-- --:--:-- 120k
[root@localhost conf]# ls
catalina.policy context.xml jaspic-providers.xsd server.xml tomcat-users.xsd
catalina.properties jaspic-providers.xml logging.properties tomcat-users.xml web.xml
[root@localhost conf]# cat server.xml
启动Pinpoint Collector
cd ../bin
chmod +x catalina.sh shutdown.sh startup.sh
./startup.sh
启动Pinpoint Collector时请确保HBase、Zookeeper都是正常启动的,否则会报错Connection Refused。
至此,Pinpoint Collector安装成功!
下载Pinpoint Web并解压
同安装Pinpoint Collector一样,Pinpoint Web部署一样需要Tomcat,由于前面已经下载了tomcat,这里不再下载:
unzip apache-tomcat-8.5.14.zip
mv apache-tomcat-8.5.14 pinpoint-web-1.6.1
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-web-1.6.1.war
[root@localhost pinpoint_resource]# pwd
/usr/src/pinpoint_resource
[root@localhost pinpoint_resource]# cd pinpoint-web-1.6.1/webapps/
[root@localhost webapps]# ls
docs examples host-manager manager ROOT
[root@localhost webapps]# rm -rf *
[root@localhost webapps]# unzip /usr/src/pinpoint_resource/pinpoint-web-1.6.1.war -d ROOT
[root@localhost webapps]# ls
ROOT
[root@localhost webapps]# cd ROOT/WEB-INF/classes/
[root@localhost classes]# vim pinpoint-web.properties
由于当前的Pinpoint Web并不是集群部署,所以将 cluster.enable=true 改为 cluster.enable=false。
为了避免端口冲突,修改tomcat的一些设置,可以直接下载已经设置好的配置文件:(设定的端口号是19080)
[root@localhost classes]# cd ../../..
[root@localhost webapps]# cd ../conf
[root@localhost conf]# curl http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-web-server.xml -o server.xml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7516 100 7516 0 0 61290 0 --:--:-- --:--:-- --:--:-- 149k
[root@localhost conf]# cd ../bin
[root@localhost bin]# chmod +x catalina.sh shutdown.sh startup.sh
[root@localhost bin]# ./startup.sh
Using CATALINA_BASE: /usr/src/pinpoint_resource/pinpoint-web-1.6.1
Using CATALINA_HOME: /usr/src/pinpoint_resource/pinpoint-web-1.6.1
Using CATALINA_TMPDIR: /usr/src/pinpoint_resource/pinpoint-web-1.6.1/temp
Using JRE_HOME: /usr/src/java8/jdk1.8.0_121/jre
Using CLASSPATH: /usr/src/pinpoint_resource/pinpoint-web-1.6.1/bin/bootstrap.jar:/usr/src/pinpoint_resource/pinpoint-web-1.6.1/bin/tomcat-juli.jar
Tomcat started.
访问pinpoint界面:http://ip:19080/#/main
Pinpoint采用无侵入式的方式跟踪应用的请求调用链路,需要设置下目标应用的JVM参数即可。
这里以监控hap为例:
下载Pinpoint Agent并解压
cd /data
mkdir pinpoint-agent-1.6.1
cd pinpoint-agent-1.6.1/
curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-agent-1.6.1.tar.gz
tar -xzvf pinpoint-agent-1.6.1.tar.gz
配置Pinpoint Agent,Pinpoint Agent的配置文件是/data/pinpoint-agent-1.6.1/pinpoint.config
,
vim /data/pinpoint-agent-1.6.1/pinpoint.config
Pinpoint Agent默认的配置文件是适用于监控OpenJDK的应用,对于Oracle JDK的应用需要添加:
profiler.jvm.vendor.name=Oracle
另外,默认的采样率(Sampling Rate)是5%,为了使采集数据更完整,暂时设置为100%,修改以下配置:
profiler.sampling.rate=1
profiler.collector.ip=10.132.241.120 #设置为采集器所在服务器的ip
然后修改测试项目下的tomcat启动文件”catalina.sh”,修改这个只要是为了监控测试环境的Tomcat,增加探针
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/data/pinpoint-agent-1.6.1/pinpoint-bootstrap-1.6.1.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=10.132.241.122"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=qf01"
其中,第一个路径指向pinpoint-bootstrap的jar包位置(pinpoint-agent目录下的文件),第二个pinpoint.applicationName表示监控的目标应用的名称,第三 个pinpoint.agentId表示监控目标应用的ID,其中pinpoint.applicationName可以不唯一,pinpoint.agentId要求唯一,如果 pinpoint.applicationName相同但pinpoint.agentId不同,则表示的是同一个应用的集群。
启动 应用tomcat,agent会将追踪的数据发送给collector,collector会将收集的数据存入hbase,访问pinpoint-web即可看到调用链信息。
重启application1的tomcat服务器