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. 初识Java(Java数字处理类-大数字运算)

    一.大数字运算 在 Java 中提供了大数字的操作类,即 java.math.BigInteger 类与  java.math.BigDecimal 类.这两个类用于高精度计算,体重 BigInteg ...

  2. 牛客NOIP暑期七天营-提高组6C:分班问题 (组合数)

    题意:A班有N个人,B班有M个人,现在要组成一个新的班级C班,为了公平,从AB班各抽相同人数的人. 现在求所有方案中,人数之和是多少. 思路:即求Σ k*C(N,k)*C(M,k);    先忽略这个 ...

  3. 五个wordpress调用随机文章的方法

    分享几个WordPress不用插件调用随机文章的方法,不仅增强用户粘性,而且当蜘蛛来爬你的文章的时候每次都会有变化,搜索引擎很喜欢.主要用到的是orderby rand参数,下面就随ytkah一起来看 ...

  4. file size php

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  5. Servlet 容器

    Servlet容器主要是JavaWeb应用提供运行时环境,所以也可以称之为JavaWeb应用容器,或者Servlet/JSP容器.Servlet容器主要负责管理Servlet.JSP的生命周期以及它们 ...

  6. rune 数据类型

    // rune is an alias for int32 and is equivalent to int32 in all ways. It is // used, by convention, ...

  7. 通过日志解决问题的一个小例子-http换端口

    这个例子是将http服务的监听端口改为8999后重启服务报错: 此时查看日志/var/log/message,显示如下: 如红笔所示轨迹得到设置端口类型的命令:semanage port -a -t ...

  8. 小功能 清单模板导入 根据Excel生成树

    把代码备份一下,免得硬盘又坏了,看来已经造成心理阴影了啊. 方式一: //清单范本 public void test1() { //生成说明 var ds = ExcelHelper.ExcelToD ...

  9. Mac 无法安装安装psutil 报错 error: command '/usr/bin/clang' failed with exit status 1

    psutil是一个特别好用来检查系统资源的一个包, 但是 在Mac安装却总是报错 查看监控系统脚本, 点这里 mac系统版本: Macos Mojave 10.14.3 报错信息如下: WARNING ...

  10. ex2

    #include <stdio.h> int main() { int days; printf("输入一个整数: \n"); scanf("%d" ...