pinpoint部署文档

Pinpoint是一个开源的 APM (Application Performance Management/应用性能管理)工具,用于基于java的大规模分布式系统。 仿照Google Dapper,Pinpoint通过跟踪分布式应用之间的调用来提供解决方案,以帮助分析系统的总体结构和内部模块之间如何相互联系。


pinpoint部署文档_第1张图片
image.png

Pinpoint-Collector:收集各种性能数据
Pinpoint-Agent:和自己运行的应用关联起来的探针
Pinpoint-Web:将收集到的数据显示成WEB网页形式
HBase Storage:收集到的数据存到HBase中

安装步骤

一.安装 JDK1.8

二.安装Zookeeper

  • 下载Zookeeper并解压
    cd /usr/local/src
    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
    mv zookeeper-3.4.9 /usr/local/
  • 配置Zookeeper
    cd /usr/local/zookeeper-3.4.9/conf
    cp zoo_sample.cfg zoo.cfg
    vim zoo.cfg
    添加以下内容:
tickTime=20000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.9/data
clientPort=2181
MaxSessionTimeout=200000

注解 生产环境中建议搭Zookeeper集群,这里暂时只搭单节点。

  • 启动Zookeeper
    cd /usr/local/zookeeper-3.4.9/bin
    ./zkServer.sh start
    输出以下内容表示Zookeeper启动成功:
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

ps -ef|grep zookeeper
Zookeeper启动成功后,绑定到2181端口提供服务。

三.安装HBase

  • 下载Hbase并解压
    cd /usr/local/
    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
  • 配置HBase环境变量
    vim /etc/profile
    /etc/profile文件末尾追加以下内容:
#HBASE_HOME
export HBASE_HOME=/usr/local/hbase-1.2.4

使配置生效:
source /etc/profile

  • 配置HBase配置文件
    cd /usr/local/hbase-1.2.4/conf
    vim hbase-site.xml
    hbase-site.xml中添加以下内容:

  
    hbase.rootdir
    file:/usr/local/hbase-1.2.4/data
  
  
    hbase.cluster.distributed
    true
  
  
    hbase.regionserver.handler.count
    20
  
  
    hbase.zookeeper.quorum
    localhost
  
  
    hbase.zookeeper.property.clientPort
    2181
  
  
    zookeeper.session.timeout
    200000
  

注意:这里不是直接加在文件末尾处,直接加需要删除本来带的
注:HBase支持HDFS存储,但是需要安装Hadoop等组件,这里为了方便,暂时先不使用HDFS。另外,生产环境建议搭HBase集群,这里暂时只搭HBase单节点。

  • 修改hbase-env.sh:
    vim hbase-env.sh
    添加配置行:
export HBASE_MANAGES_ZK=false

使得HBase不使用内置Zookeeper,而使用前面安装好的外置Zookeeper。

  • 启动HBase (jdk 1.7+安装略)
    cd /usr/local/hbase-1.2.4/bin
    ./start-hbase.sh
    HBase日志文件位于 /usr/local/hbase-1.2.4/logs ,可以查看HBase启动日志。
    tail -f /usr/local/hbase-1.2.4/logs/hbase-root-1-regionserver-VM_0_12_centos.out
    cat /usr/local/hbase-1.2.4/logs/hbase-root-1-regionserver-VM_0_12_centos.log
  • 查看HBase状态
    HBase启动成功以后,可以通过浏览器访问 http://ip:16010 查看HBase有关信息,我这里是访问
    http://129.211.24.177:16010/
    pinpoint部署文档_第2张图片
    image.png

注解
如果发现成功启动了HBase,但是却无法在浏览器中访问 http://ip:16010,这是因为CentOS7默认开启了防火墙,可以先将防火墙关掉 systemctl stop firewalld.service,再尝试访问。

四. 初始化Pinpoint表结构

  • Pinpoint采用HBase作为底层存储,需要先在HBase中初始化表结构。
    首先确保HBase是正常启动状态,然后:
    cd /usr/local
    curl -OL http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-hbase-create.hbase
    ./hbase-1.2.4/bin/hbase shell ./pinpoint-hbase-create.hbase
    初始化成功以后,会在HBase中创建16张表。
TABLE                                                                                                                                                                                                            
AgentEvent                                                                                                                                                                                                       
AgentInfo                                                                                                                                                                                                        
AgentLifeCycle                                                                                                                                                                                                   
AgentStat                                                                                                                                                                                                        
AgentStatV2                                                                                                                                                                                                      
ApiMetaData                                                                                                                                                                                                      
ApplicationIndex                                                                                                                                                                                                 
ApplicationMapStatisticsCallee_Ver2                                                                                                                                                                              
ApplicationMapStatisticsCaller_Ver2                                                                                                                                                                              
ApplicationMapStatisticsSelf_Ver2                                                                                                                                                                                
ApplicationTraceIndex                                                                                                                                                                                            
HostApplicationMap_Ver2                                                                                                                                                                                          
SqlMetaData_Ver2                                                                                                                                                                                                 
StringMetaData                                                                                                                                                                                                   
TraceV2                                                                                                                                                                                                          
Traces                                                                                                                                                                                                           
16 row(s) in 0.0430 seconds

五.安装Pinpoint Collector

  • 下载Pinpoint Collector并解压
    Pinpoint Collector、Pinpoint Web的部署均需要Tomcat,所以先下载Tomcat。
cd /usr/local
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
cd /usr/local/pinpoint-collector-1.6.1/webapps
rm -rf *
unzip /usr/local/pinpoint-collector-1.6.1.war -d ROOT
  • 修改配置文件
    由于我这里HITOA的全部组件都部署在同一台机器上,为了避免端口冲突,需要对Tomcat的端口做一些设置,可以直接下载已经设置好的配置文件:
cd /usr/local/pinpoint-collector-1.6.1/conf
curl http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-collector-server.xml -o server.xml
  • 启动Pinpoint Collector
    cd /usr/local/pinpoint-collector-1.6.1/bin
    chmod +x catalina.sh shutdown.sh startup.sh
    ./startup.sh
    注解
    启动Pinpoint Collector时请确保HBase、Zookeeper都是正常启动的,否则会报错Connection Refused。
  • 查看Pinpoint Collector日志
    cd /usr/local/pinpoint-collector-1.6.1/logs
    tail -f catalina.out
    catalina.out 中有详细的Pinpoint Collector日志,如果输出如下内容,则表明启动成功:


    pinpoint部署文档_第3张图片
    image.png

    另外,可以随时通过查看Pinpoint Collector日志来了解Pinpoint Collector运行情况 。

六.安装Pinpoint Web

  • 下载Pinpoint Web并解压
    同安装Pinpoint Collector一样,Pinpoint Web部署一样需要Tomcat,由于前面已经下载了tomcat,这里不再下载:
cd /usr/local
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
cd /usr/local/pinpoint-web-1.6.1/webapps
rm -rf *
unzip  /usr/local/pinpoint-web-1.6.1.war -d ROOT
  • 修改配置文件
    cd /usr/local/pinpoint-web-1.6.1/webapps/ROOT/WEB-INF/classes
    vim pinpoint-web.properties
    由于当前的Pinpoint Web并不是集群部署,所以将
    cluster.enable=true
    改为
    cluster.enable=false
    为了避免端口冲突,修改tomcat的一些设置,可以直接下载已经设置好的配置文件:
    cd /usr/local/pinpoint-web-1.6.1/conf
    curl http://files.saas.hand-china.com/hitoa/1.0.0/pinpoint-web-server.xml -o server.xml
  • 启动Pinpoint Web
    cd /usr/local/pinpoint-web-1.6.1/bin
    chmod +x catalina.sh shutdown.sh startup.sh
    ./startup.sh
  • 查看Pinpoint Web日志
    cd /usr/local/pinpoint-web-1.6.1/logs
    tail -f catalina.out
    catalina.out 中有详细的Pinpoint Web日志,如果输出如下内容,则表明启动成功:


    pinpoint部署文档_第4张图片
    image.png
  • 访问Pinpoint Web
    Pinpoint Web启动成功以后,浏览器访问 http://ip:19080/,即可访问Pinpoint Web界面。
    http://129.211.24.177:19080/
    pinpoint部署文档_第5张图片
    image.png

    注解
    Pinpoint Web原来的默认端口并不是19080,为了避免冲突,在 pinpoint-web-server.xml 文件中做了修改。
    Pinpoint Web内置了告警功能,需要安装MySQL,本快速安装文档暂时不提供此部分内容,后续手册中详细讲解Pinpoint Web告警功能的配置、开发及使用。
    至此,“调用链路分析平台”的服务端基本搭建完成,后面需要在监控的目标应用上安装Pinpoint Agent,自动采集调用链路数据发送至Pinpoint Collector,并在Pinpoint Web中展现。

七. 安装Pinpoint Agent

Pinpoint采用无侵入式的方式跟踪应用的请求调用链路,需要设置下目标应用的JVM参数即可。
这里以监控core为例:

  • 下载Pinpoint Agent并解压
cd /usr/local
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的配置文件是/usr/local/pinpoint-agent-1.6.1/pinpoint.config,修改:
    vim /usr/local/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
    配置collector ip:
    profiler.collector.ip=129.211.24.177
    //如果collector装在本机则不需要修改这个ip地址
  • 配置JVM参数 Pinpoint Web和Agent关联
    因为我打算监控Pinpoint Web本身,而Pinpoint Web是部署在tomcat中,所以修改Pinpoint Web的JVM参数只需要修改 bin/catalina.sh 即可。
    注意:监控哪个tomcat就修改哪个tomcat的catalina.sh
    vim /usr/local/pinpoint-web-1.6.1/bin/catalina.sh
    或者自己所要监控的tomcat应用:
    vim /usr/local/apache-tomcat-8.5.14/bin/catalina.sh
    在 catalina.sh 头部添加以下内容:
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/pinpoint-agent-1.6.1/pinpoint-bootstrap-1.6.1.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=core"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=core01"

其中,第一个路径指向pinpoint-bootstrap的jar包位置,第二个pinpoint.applicationName表示监控的目标应用的名称,第三 个pinpoint.agentId表示监控目标应用的ID,其中pinpoint.applicationName可以不唯一,pinpoint.agentId要求唯一,如果 pinpoint.applicationName相同但pinpoint.agentId不同,则表示的是同一个应用的集群。

  • Spring boot应用的部署:
nohup java -javaagent: /usr/localpinpoint-agent-1.6.1/pinpoint-bootstrap-1.6.1.jar-Dpinpoint.applicationName=hap -Dpinpoint.agentId=hap01 –jar myapp.jar > log.log &

八.启动目标应用

配置完JVM参数以后,要启动下目标应用以使得生效。
由于我这里监控的是Pinpoint Web本身,前面已经启动过,这里先停止,再重启:
cd /usr/local/pinpoint-web-1.6.1/bin
./shutdown.sh
./startup.sh
重启成功以后,访问Pinpoint Web:http://ip:19080 ,如果能在应用列表中看到 hap,则说明监控成功。
如下图所示:

pinpoint部署文档_第6张图片
image.png

鼠标点击右上角箭头位置,鼠标左键按住不动,拉框查看。
pinpoint部署文档_第7张图片
image.png

你可能感兴趣的:(pinpoint部署文档)