美文网首页
pinpoint部署文档

pinpoint部署文档

作者: 小小的小帅 | 来源:发表于2019-08-07 14:58 被阅读0次

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


    image.png

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

    安装步骤

    一.安装 JDK1.8

    二.安装Zookeeper

    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_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中添加以下内容:
    <configuration>
      <property>
        <name>hbase.rootdir</name>
        <value>file:/usr/local/hbase-1.2.4/data</value>
      </property>
      <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
      </property>
      <property>
        <name>hbase.regionserver.handler.count</name>
        <value>20</value>
      </property>
      <property>
        <name>hbase.zookeeper.quorum</name>
        <value>localhost</value>
      </property>
      <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
      </property>
      <property>
        <name>zookeeper.session.timeout</name>
        <value>200000</value>
      </property>
    </configuration>
    

    注意:这里不是直接加在文件末尾处,直接加需要删除本来带的<configuration></configuration>
    注: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/
      image.png

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

    四. 初始化Pinpoint表结构

    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日志,如果输出如下内容,则表明启动成功:


      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日志,如果输出如下内容,则表明启动成功:


      image.png
    • 访问Pinpoint Web
      Pinpoint Web启动成功以后,浏览器访问 http://ip:19080/,即可访问Pinpoint Web界面。
      http://129.211.24.177:19080/
      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,则说明监控成功。
    如下图所示:

    image.png
    鼠标点击右上角箭头位置,鼠标左键按住不动,拉框查看。
    image.png

    相关文章

      网友评论

          本文标题:pinpoint部署文档

          本文链接:https://www.haomeiwen.com/subject/uwpwdctx.html