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. php的类使用样例

    这个demo.差不多php的类的主要知识点都用到了. public,private关键字, namespace,use命令空间, require导入, interface复用, abstract抽象类 ...

  2. java获取一个时间段内的时间天数

    package com.hzcominfo.hik.hikbigscreen.core; import java.text.SimpleDateFormat; import java.util.Arr ...

  3. 【转】Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备

    原文:https://www.cnblogs.com/bakari/p/10449664.html -------------------------------------------------- ...

  4. P4281 [AHOI2008]紧急集合 / 聚会[LCA]

    解析 蒟蒻用的办法比较蠢,不如上面的各位大佬,直接化成一个式子了,我还是分类讨论做的. 下面正文. 猜想:最优集合点一定是三点任意两对点对应的路径的交点. 不妨这样想,如果任意两个人经过同一条路径,那 ...

  5. Pychram中使用reduce()函数报错:Unresolved reference 'reduce'

    python3不能直接使用reduce()函数,因为reduce() 函数已经被从全局名字空间里移除了,它现在被放置在fucntools 模块里,所以要使用reduce函数得先饮用fucntools ...

  6. iOS应用代码注入防护

    在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能.代码健壮相关的问题,我们有时还需要考虑到应用安全的问题.那么应用安全的问题涉及到很多方面.比如防止静态分析的,代码混淆.逻辑混淆:防止 ...

  7. Sam小结和模板

    Sam 的一些总结 注意在子串在某个节点的性质,其 father 上也会有相同的性质 1. 统计子串出现的次数 在 \(parent\) 树上做 \(dp\),对于每一个节点,初始化为 \(dp[i] ...

  8. Good Article Good sentence HDU - 4416 (后缀自动机)

    Good Article Good sentence \[ Time Limit: 3000 ms\quad Memory Limit: 32768 kB \] 题意 给出一个 \(S\) 串,在给出 ...

  9. systemd socket activation golang demo

    service define rongapp.service [Unit] Description=rong Hello World HTTP Requires=network.target rong ...

  10. word2vector的tensorflow代码实现

    import collections import math import os import random import zipfile import numpy as np import urll ...