pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测试的Tomcat中加上3句话,打下探针,就可以监控整套程序了。

 

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

IP

操作系统

安装项

描述

私有2

CentOS7.4

pinpoint

pinpointweb展示端,逻辑控制机,以及Hbase存储

私有1

CentOS7.4

pinpoint-agent

主要用来采集数据,发送给pinpoint处理

下面是官方架构图

1、测试资源准备

hbase-2.1.0-bin.tar.gz(http://hbase.apache.org/)
hbase-create.hbase(https://github.com/naver/pinpoint/tree/master/hbase/scripts)
pinpoint-collector-1.7.2.war(https://github.com/naver/pinpoint/releases/tag/1.7.3)
pinpoint-web-1.7.2.war(https://github.com/naver/pinpoint/releases/tag/1.7.3)
pinpoint-agent-1.7.2.tar.gz(https://github.com/naver/pinpoint/releases/tag/1.7.3)
jdk1.8(http://blog.51cto.com/xqtesting/2055831)

2、部署过程(将以上安装包上传至服务器) 

  2.1、部署jdk

     APM系统主要是用jdk1.8来进行部署的,首先要配置jdk的环境变量;

  解压jdk文件

mkdir /usr/java
tar -zxvf jdk-7u79-linux-x64.tar.gz –C /usr/java

  配置java环境变量

vi /etc/profile,跳转到文件最后添加:
export JAVA_HOME= /usr/java/jdk1.8.0_11
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 使环境变量生效 

Source /etc/profile

 验证jdk是否安装成功

Javac
Java -version

  2.2、安装Hbase

      pinpoint收集来的测试数据,主要是存在Hbase数据库的。所以它可以收集大量的数据,可以进行更加详细的分析。

    2.2.1 将Hbase解压,并且放入指定目录

mkdir -p /data/service
tar -zxvf hbase-1.0.3-bin.tar.gz -C /data/service/

    2.2.2修改hbase-env.sh的JAVA_HOME环境变量位置

cd /data/service/hbase/conf/
vi hbase-env.sh,在27~28行左右的位置,修改如下

  2.2.3修改Hbase的配置信息

vi hbase-site.xml,在结尾修改成如下,这里我们指定Hbase本地来存储数据,生产环境将数据建议存入HDFS中
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///data/service/hbase-2.1.0/data</value>
 </property>
</configuration>

   2.2.4 启动hbase 

cd /data/service/hbase-1.0.3/bin/
./start-hbase.sh

  2.2.5查看Hbase是否启动成功

Jps

   存在Hmaster进程说明启动成功

 2.2.6初始化Hbase的pinpoint库

  注意:执行pinpoint提供的Hbase初始化语句,这时会初始化一会

./hbase shell /home/pp_res/hbase-create.hbase

  2.2.7初始化完成进入Hbase

./hbase shell

 2.2.8查看当前初始化表是否存在 

status 'detailed'

  也可以登录web,来查看HBase的数据是否初始化成功:HbaseWeb : http://x.x.x.x:16010/master-status

2.3 Pinpoint Collector 收集端

     部署在独立的Tomcat容器中,如 tomcat-pinpoint-collector

  2.3.1创建目录pinpoint-collector,解压tomcat至该目录下

mkdir /data/service/tomcat-pinpoint-collector
tar -zxvf apache-tomcat-8.0.35.tar.gz -C /data/service/tomcat-pinpoint-collector
mv /data/service/tomcat-pinpoint-collector/apache-tomcat-8.0.35/* /data/service/tomcat-pinpoint-collector/

  2.3.2 pinpoint-collector、pinpoint-web安装在同一台机器上,需要确保端口不会冲突,修改tomcat server.xml文件

在所有默认的端口前都加了1
<Server port="18005" shutdown="SHUTDOWN">(22行位置左右)

 <Connector port="18080" protocol="HTTP/1.1"(69行位置左右)
               connectionTimeout="20000"
               redirectPort="18443" />

<Connector port="18009" protocol="AJP/1.3" redirectPort="18443" />(91行位置左右)

  2.3.3部署pinpoint-collector-1.7.3.war到tomcat并命名为ROOT

rm -rf /data/service/tomcat-pinpoint-collector/webapps/*
unzip pinpoint-collector-1.7.3.war -d /data/service/tomcat-pinpoint-collector/webapps/ROOT

  2.3.4修改hbase.properties(/data/service/tomcat-pinpoint-collector/webapps/ROOT/WEB-INF/classes/ hbase.properties)

# 修改hbase地址,本机默认即可
hbase.client.host=localhost
hbase.client.port=2181

  2.3.5修改pinpoint-collector.properties

pinpoint-collector.properties: 包含colletor的配置,在配置pinpoint agent时需要与之对应:
collector.receiver.base.port(agent中是 profiler.collector.tcp.port - 默认: 9994)
collector.receiver.stat.udp.port(agent中是 profiler.collector.stat.port - 默认: 9995)
collector.receiver.span.udp.port(agent中是 profiler.collector.span.port - 默认: 9996)

2.4 Pinpoint Web

         部署在独立的Tomcat容器中,如 tomcat-pinpoint-web

  2.4.1创建目录pinpoint-web,解压tomcat至该目录下

 

mkdir /data/service/tomcat-pinpoint-web
tar -zxvf apache-tomcat-8.0.35.tar.gz -d /data/service/tomcat-pinpoint-web
mv /data/service/tomcat-pinpoint-web/apache-tomcat-8.0.35/* /data/service/tomcat-pinpoint-web/

  2.4.2修改tomcat server.xml文件

在所有默认的端口前都加了2
<Server port="28005" shutdown="SHUTDOWN">(22行位置左右)

 <Connector port="28080" protocol="HTTP/1.1"(69行位置左右)
               connectionTimeout="20000"
               redirectPort="28443" />

<Connector port="28009" protocol="AJP/1.3" redirectPort="28443" />(91行位置左右)

  2.4.3部署pinpoint-web-1.7.3.war到tomcat并命名为ROOT

  

rm -rf /data/service/tomcat-pinpoint-web/webapps/*
unzip pinpoint-web-1.7.3.war -d /data/service/tomcat-pinpoint-web/webapps/ROOT

  2.4.4修改hbase.properties(/data/service/tomcat-pinpoint-web/webapps/ROOT/WEB-INF/classes/ hbase.properties)

# 修改hbase地址,本机默认即可
hbase.client.host=localhost
hbase.client.port=2181

  2.4.5启动tomcat-pinpoint-collector、tomcat-pinpoint-web服务

sh /data/service/tomcat-pinpoint-collector/bin/startup.sh
sh /data/service/tomcat-pinpoint-web/bin/startup.sh

  2.4.6查看日志查看是否启动成功

tail -200f /data/service/tomcat-pinpoint-collector/logs/catalina.out
tail -200f /data/service/tomcat-pinpoint-web/logs/catalina.out

  2.4.7通过浏览器访问服务是否启动成功

       浏览器访问:http://X.X.X.X:28080 说明服务启动成功

  

 2.5Pinpoint Agent安装

  2.5.1创建目录pinpoint-agent,将pinpoint-agent解压至该目录

mkdir /data/service/pinpoint-agent
tar -zxvf pinpoint-agent-1.7.3.tar.gz -C /data/service/pinpoint-agent/

  2.5.2修改配置文件pinpoint.config

Vi /data/service/pinpoint-agent/pinpoint.config

# 修改为pinpoint-collector地址,本机可不配置
profiler.collector.ip= 47.92.66.102

  2.5.3添加探针有两种方式

    2.5.3.1 tomcat探针

     修改部署项目的tomcat启动文件catalina.sh,增加探针,重启tomcat

# 设置pinpoint-agent jar包位置
JAVA_OPTS="$JAVA_OPTS -javaagent:/data/service/pinpoint-agent/pinpoint-bootstrap-1.7.3.jar"
# 设置agent的ID
JAVA_OPTS="$JAVA_OPTS -Dpinpoint.agentId=jenkins20180808"
# 设置采集项目的名称,不能与其它项目重复
JAVA_OPTS="$JAVA_OPTS -Dpinpoint.applicationName=demo_jenkins"

    2.5.3.2Spring Boot探针

java -javaagent:/opt/apps/pinpoint/pinpoint-agent/pinpoint-bootstrap-1.7.2.jar -Dpinpoint.agentId=pp-springboot -Dpinpoint.applicationName=springboot-app -jar spring-boot-demo-0.0.1-SNAPSHOT.jar

2.6注意事项

 pinpoint-webpinpoint-collector在同一台服务器时,要开放9994/9995/9996/9997端口,其中9994pinpoint-collectortcp端口,9995/9996pinpoint-collectorudp端口;9997web采集数据的tcp端口

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐