Pinpoint简介

  Pinpoint是用Java / PHP编写的大规模分布式系统的APM(应用程序性能管理)工具。受Dapper的启发,Pinpoint提供了一种解决方案,可通过跟踪跨分布式应用程序的事务来帮助分析系统的整体结构以及其中的组件如何互连。

  特点:

  • 一目了然地了解您的应用程序拓扑
  • 监控应用程序的实时
  • 获得每笔交易的代码级可见性
  • 安装APM代理而无需更改任何代码
  • 对性能的影响最小(资源使用量增加约3%)

  参考git地址:https://github.com/naver/pinpoint

  pinpoint架构图

    

Pinpoint安装部署

  前期准备

     本例在ContenOS 7.4 下安装,本次需要安装pinpoint和pinpoint-agent和hbase、zookeeper,先在git上将需要用到的安装包都下载好

     hbase下载地址:https://hbase.apache.org/downloads.html,pinpoint下载地址:https://github.com/naver/pinpoint/releases

     安装它用到的2台服务器,一台主要部署pinpoint和pinpoint-agent,一台主要部署hbase、zookeeper

    • jdk8 --- Java运行环境
    • hbase-1.2.7 --- 数据库(单机版自带zookeeper),用来存储监控信息
    • tomcat9.0 --- Web服务器
    • pinpoint-collector-1.8.5.war --- pp的控制器
    • pinpoint-web-1.8.5.war --- pp展示页面
    • pinpoint-agent-1.8.5.tar.gz --- pp探针

  安装hbase

    在第一台服务器192.168.1.5上安装

    1、在hbase官网上下载hbase,本例安装的是hbase-1.2.7版,因为pinpoint和hbase有版本兼容的问题,可能导致pinpoint收集器无法写入数据到hbase

     安装参考:【HBase】HBase 单机版安装及使用

     hbase的hbase-site.xml配置文件如下

 <configuration>
<!-- hbase存放数据目录 -->
<property>
<name>hbase.rootdir</name>
<value>file:///data/soft/hbase-1.2.7/hbase</value>
</property> <!-- ZooKeeper数据文件路径 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data/soft/hbase-1.2.7/zookeeper</value>
</property> <property>
<name>hbase.zookeeper.property.clientPort</name>
<value>12181</value>
</property> <property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
<description>
Controls whether HBase will check for stream capabilities (hflush/hsync). Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
with the 'file://' scheme, but be mindful of the NOTE below. WARNING: Setting this to false blinds you to potential data loss and
inconsistent system state in the event of process and/or node failures. If
HBase is complaining of an inability to use hsync or hflush it's most
likely not a false positive.
</description>
</property> </configuration>

      安装后并启动hbase

     

    2、初始化Hbase的Pinpoint库,在git中下载hase-create.hbase脚本文件,并安装基础表

       下载hase-create.hbase地址:https://github.com/naver/pinpoint/blob/master/hbase/scripts/hbase-create.hbase

      执行脚本命令:$HBASE_HOME/bin/hbase shell hbase-create.hbase

    3、执行完成后可以在Hbase的网页中查看表信息

      

  安装pinpoint-collector

    在第二台服务器192.168.1.6上安装

    1、将下载好的pinpoint-collector-1.8.5.war解压,并移动到tomcat的webapp中。

       解压命令:unzip pinpoint-collector-1.8.5.war -d pinpoint-collector-1.8.5

       移动命令:mv pinpoint-collector-1.8.5 /data/soft/apache-tomcat-8081/webapps/

    2、进入/data/soft/apache-tomcat-8081/webapps/pinpoint-collector-1.8.5/WEB-INF/classes目录,编辑配置文件

      

      注:收集器的端口配置文件pinpoint-collector.properties,里面可以设置接受探针发送过来的数据端口,需要与Agent搭配使用。默认9994、9995、9996。

      修改hbase.properties文件,配置zookeeper地址

      命令:vim hbase.properties

 hbase.client.host=192.168.1.5
hbase.client.port=

      修改pinpoint-collector.properties,配置zookeeper地址

      命令:vim pinpoint-collector.properties

 cluster.enable=true
cluster.zookeeper.address=192.168.1.5:
cluster.zookeeper.sessiontimeout=
cluster.listen.ip=
cluster.listen.port=

    3、在192.168.1.6服务器上配置192.168.1.5服务器的hostname地址

       注:由于pinpoint-collector回到zookeeper中获取hbase的地址,但是hbase在zookeeper中注册的是自己的主机名称,pinpoint-collector拿到的就hbase主机名称,访问的时候需要在hosts文件中配置主机名称对应的IP地址

      命令:vim /etc/hosts

# hbasehostname为192.168.1.5的主机名称
192.168.1.5 hbasehostname

    4、启动tomcat,即将pinpoint的收集器部署好了

  安装pinpoint-agent

    在第二台服务器192.168.1.6上安装

    1、将下载好的pinpoint-agent-1.8.5.tar.gz进行解压

      新建目录:mkdir /data/soft/pinpoint/pinpoint-agent-1.8.5

      解压命令:tar -zxvf pinpoint-agent-1.8.5.tar.gz -C /data/soft/pinpoint/pinpoint-agent-1.8.5

    2、对agent进行配置,编辑/data/soft/pinpoint/pinpoint-agent-1.8.5中的pinpoint.config文件,对pinpoint收集器信息进行配置

 profiler.collector.ip=127.0.0.1                                                                                  

 # placeHolder support "${key}"
profiler.collector.span.ip=${profiler.collector.ip}
profiler.collector.span.port= # placeHolder support "${key}"
profiler.collector.stat.ip=${profiler.collector.ip}
profiler.collector.stat.port= # placeHolder support "${key}"
profiler.collector.tcp.ip=${profiler.collector.ip}
profiler.collector.tcp.port=

    、在应用tomcat的bin/catalina.sh中,加入三句话,就安装好pinpoint的探针了,如下:

 #--
# 在20行增加如下字段
# 第一行是pp-agent的jar包位置
# 第二行是agent的ID,这个ID是唯一的,我是用pp + 今天的日期命名的,只要与其他的项目的ID不重复就好了
# 第三行是采集项目的名字,这个名字可以随便取,只要各个项目不重复就好了
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/data/soft/pinpoint/pinpoint-agent-1.8.5/pinpoint-bootstrap-1.8.5.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=pp20191112"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=Tomcat8080"

    4、重启应用tomcat,即可收集应用数据

  安装pinpoint-web

    在第二台服务器192.168.1.6上安装

    1、将下载好的pinpoint-web-1.8.5.war解压,并移动到tomcat的webapp中。

       解压命令:unzip pinpoint-web-1.8.5.war -d pinpoint

       移动命令:mv pinpoint /data/soft/apache-tomcat-8081/webapps/

    2、进入/data/soft/apache-tomcat-8081/webapps/pinpoint/WEB-INF/classes目录,编辑配置文件

      

      修改hbase.properties文件,配置zookeeper地址

      命令:vim hbase.properties

 hbase.client.host=192.168.1.5
hbase.client.port=

      修改pinpoint-web.properties文件,配置zookeeper地址

      命令:vim pinpoint-web.properties

 cluster.enable=true
cluster.web.tcp.port=
cluster.zookeeper.address=192.168.1.5:
cluster.zookeeper.sessiontimeout=
cluster.zookeeper.retry.interval=
cluster.connect.address=

    3、重启应用tomcat8081,即可收集应用数据,使用地址http://192.168.1.6:8081/pinpiont,即可访问pinpiont的web界面

      

    4、在界面中选择一个应用即可看到应用使用的情况

      

      

【APM】Pinpoint 安装部署(一)的更多相关文章

  1. pinpoint 安装部署

    .markdown-preview:not([data-use-github-style]) { padding: 2em; font-size: 1.2em; color: rgb(171, 178 ...

  2. pinpoint 应用性能管理工具安装部署

    原文:http://www.cnblogs.com/yyhh/p/6106472.html pinpoint 安装部署   阅读目录 1. 环境配置 1.1 获取需要的依赖包 1.2 配置jdk1.7 ...

  3. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  4. KVM安装部署

    KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...

  5. Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考

    操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...

  6. 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

    少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...

  7. C# winform安装部署(转载)

    c# winform 程序打包部署 核心总结: 1.建议在完成的要打包的项目外,另建解决方案建立安装部署项目(而不是在同一个解决方案内新建),在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目 ...

  8. Ubuntu14.04 Django Mysql安装部署全过程

    Ubuntu14.04 Django Mysql安装部署全过程   一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...

  9. 比Ansible更吊的自动化运维工具,自动化统一安装部署_自动化部署udeploy 1.0

    新增功能: 2015-03-11 除pass(备份与更新)与start(启动服务)外,实现一切自动化. 注:pass与start设为业务类,由于各类业务不同,所以无法实现自动化.同类业务除外,如更新的 ...

随机推荐

  1. nginx重试机制proxy_next_upstream

    nginx作为反向代理服务器,后端RS有多台服务器,上层通过一定机制保证容错和负载均衡. nginx的重试机制就是容错的一种 官方链接:http://nginx.org/en/docs/http/ng ...

  2. 使用NB Exploit Kit攻击的APT样本分析——直接看流程图,就是网页挂马,利用java和flash等漏洞来在你主机安装和运行恶意软件

    使用NB Exploit Kit攻击的APT样本分析 from:https://cloud.tencent.com/developer/article/1092136 1.起因 近期,安恒工程师在某网 ...

  3. Linux学习25-Xshell设置页面最大显示行数

    前言 在使用xshell查看日志的时候,有时候日志太多,往上翻的时候,前面的就找不到了. 需要设置xshell的页面显示最大行数,查看更多的日志详情. 设置显示行数 左上角-文件-属性 终端-设置最大 ...

  4. thrift rpc通信

    thrift rpc通信 框架 别人的简历: 负责抓取程序的开发和维护,对抓取内容进行数据提取.整理.1.定向数据抓取程序的维护和开发,了解了Sqlite数据库.Thrift服务和多线程的开发调试.2 ...

  5. springBoot 日志中关于profiles设置的源码解读

    在启动SpringBoot应用是看到到如下日志,于是出于好奇查看了下源代码: 首先,StartpInfoLogger类,采用jcl-over-slf4j[即Apache Common Log]中的Lo ...

  6. JavaScript项目总结一

    1.类选择其下,第一个 $('selector').first()==$('selector:first')==$('selector:eq(0)') 2.如果要选择非第一个 $('selector: ...

  7. iOS 图像渲染原理

    http://chuquan.me/2018/09/25/ios-graphics-render-principle/ 通过 图形渲染原理 一文,大致能够了解图形渲染过程中硬件相关的原理.本文将进一步 ...

  8. 代码的结合性:继承 扩展 组合 变换--swift暗含的四根主线

    类型继承: 类型扩展: 类型组合: 类型变换:

  9. DSL的本质:领域构建的半成品

    DSL的本质是使用通用和专用语言构建领域的半成品: 实际上是构建了一个世界观.小宇宙的半成品: 这个半成品包含领域的基本要素.联系方式和基本运行规律: 开发者使用这个半成品平台进行开发能达到事半功倍. ...

  10. Ferguson游戏&&Ua12293——打表找规律

    题意 有两个盒子分别有m颗糖果和n颗糖果,每次移动是将一个盒子清空而把另一个盒子里得一些糖果拿到被清空的盒子,使得两个盒子至少各有一个.无法移动者输. 分析 设初始状态为(m, n),显然(1, 1) ...