参考资料:

pinpoint安装和部署 - 简书

pinpoint2.1.0版本安装部署_事在人为的技术博客_51CTO博客

首先感谢2篇文章的启发,但是部署中还是遇到了一些问题,单一参考一篇文章并未成功,故此写了此篇文章作为记录。由于本人对hbase不是很熟,hbase1.7.1虽然部署也成功了,但是没有找到ui界面,所以后来改了1.2.6版本。

本文资源上传到百度云:

下载地址: https://pan.baidu.com/s/1oQR-qNppvW1juN6BihjGXA 提取码: c3tm

官方github:

下载地址:https://github.com/naver/pinpoint

hbase地址:

下载地址:Apache HBase – Apache HBase Downloads

1、简介:

Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能。基于GoogleDapper论文进行的实现,与另一款开源的全链路分析工具Zipkin类似,但相比Zipkin提供了无侵入式、代码维度的监控等更多的特性。 Pinpoint支持的功能比较丰富,可以支持如下几种功能:

服务拓扑图:对整个系统中应用的调用关系进行了可视化的展示,单击某个服务节点,可以显示该节点的详细信息,比如当前节点状态、请求数量等

实时活跃线程图:监控应用内活跃线程的执行情况,对应用的线程执行性能可以有比较直观的了解

请求响应散点图:以时间维度进行请求计数和响应时间的展示,拖过拖动图表可以选择对应的请求查看执行的详细情况

请求调用栈查看:对分布式环境中每个请求提供了代码维度的可见性,可以在页面中查看请求针对到代码维度的执行详情,帮助查找请求的瓶颈和故障原因。

应用状态、机器状态检查:通过这个功能可以查看相关应用程序的其他的一些详细信息,比如CPU使用情况,内存状态、垃圾收集状态,TPS和JVM信息等参数。

架构组成

Pinpoint 主要由 3 个组件外加 Hbase 数据库组成,三个组件分别为:Agent、Collector 和 Web UI。

Agent组件:用于收集应用端监控数据,无侵入式,只需要在启动命令中加入部分参数即可

Collector组件:数据收集模块,接收Agent发送过来的监控数据,并存储到HBase

WebUI:监控展示模块,展示系统调用关系、调用详情、应用状态等,并支持报警等功能

1.1、架构图

2、安装环境

1、安装JDK

按照本教程提供的资源,解压缩(自行下载的按照下载资源方式解压):

上传到/usr/local/java/

unzip jdk1.8.0_281.zip

环境变量配置如下:

# java config

vim /etc/profile

最后一行加入下面语句:

export JAVA_HOME=/usr/local/java/jdk1.8.0_281
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

保存并退出

# 让环境变量生效

source /etc/profile

# 测试java的环境变量是否配置好了

java -version

2.安装hbase

2.1、解压hbase压缩包 hbase-1.7.1-bin.tar.gz

tar -zxvf hbase-1.2.6-bin.tar.gz

2.2、编辑hbase-env.sh文件,添加JAVA_HOME配置,在27行左右

vim hbase-1.2.6/conf/hbase-env.sh

export JAVA_HOME=/usr/java/jdk1.8/

export HBASE_MANAGES_ZK=true

注释第47行,48行

export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"

export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"

注:可通过vim方式搜索JAVA_HOME、HBASE_MANAGES_ZK、HBASE_MASTER_OPTS、HBASE_REGIONSERVER_OPTS关键字来快速定位。JAVA_HOME是java环境变量配置,HBASE_MANAGES_ZK是开启hbase自带zookeeper(如果自己搭建或者买的zookeeper可以不开启,但是需要在hbase-site.xml文件中配置)

2.3、编辑hbase-site.xml文件,使用的是自带zookeeper,添加数据存储路径和配置

vim hbase-1.2.6/conf/hbase-site.xml

<configuration>
                <property>
                                <name>hbase.rootdir</name>
                                <value>file:///xxx/hbase/data</value>
                </property>
</configuration>

2.4、启动hbase

cd hbase-1.2.6/bin

./start-hbase.sh

2.5、输入jps查看启动项

2.6、初始化hbase的pinpoint库

Github上提供了pinpoint在Hbase中初始化的脚本

cd hbase-1.2.6/bin

# ./hbase shell是命令,后面是脚本所在文件位置

./hbase shell  /mnt/pinpoint/hbase-create.hbase

问题一:ERROR: Table already exists

使用hbase shell的命令list查看的时候显示为空[],但是在创建表的时候出现

ERROR: Table already exists

1、进入bin目录,通过./hbase zkcli命令进入zookeeper client模式
2、输入ls /hbase/table命令看到zombie table
3、使用rmr /hbase/table/TABLE_NAME命令删除zombie table
4、重启Hbase

注:使用rmr /hbase/table/TABLE_NAME(将TABLE_NAME替换为你需要删除的表名)命令删除除了“hbase:meta”、“hbase:namespace”之外的表即可。

3、部署pinpoint-collector(新版启动方式为jar包启动)

直接启动:

zookeeper默认为本地,可以改为自己的IP地址

java -jar -Dpinpoint.zookeeper.address=127.0.0.1 pinpoint-collector-boot-2.3.3.jar

后台启动并输出日志:

nohup java -jar -Dpinpoint.zookeeper.address=127.0.0.1 pinpoint-collector-boot-2.3.3.jar > console_ppc.log 2>&1 &

此处可以放到sh脚本文件运行
停止文件脚本:

#!/bin/bash
PID=$(ps -ef | grep pinpoint-collector-boot-2.3.3.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo Application is already stopped
else
    echo kill $PID
    kill $PID
fi

4、部署pinpoint-web(新版启动方式为jar包启动)

直接启动:

zookeeper默认为本地,可以改为自己的IP地址

java -jar -Dpinpoint.zookeeper.address=127.0.0.1 pinpoint-web-boot-2.3.3.jar

后台启动并输出日志:

nohup java -jar -Dpinpoint.zookeeper.address=127.0.0.1 pinpoint-web-boot-2.3.3.jar > console_ppc.log 2>&1 &

此处可以放到sh脚本文件运行
停止文件脚本:

#!/bin/bash
PID=$(ps -ef | grep pinpoint-web-boot-2.3.3.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo Application is already stopped
else
    echo kill $PID
    kill $PID
fi

5、上传pinpoint-agent-2.3.0到要监测项目地址

注意事项:部署web和controller的服务器要将防火墙对外的接口开启,9991、9992、9993、8080、8081

5.1配置pinpoint.conf主要项

profiler.transport.grpc.collector.ip=127.0.0.1#改成自己coltroll部署的ip地址

profiler.collector.ip=127.0.0.1#改成自己coltroll部署的ip地址

# 1 out of n transactions will be sampled where n is the rate. (1: 100%, 20: 5%)

profiler.sampling.rate=1#配置检测请求量

###########################################################

# SPRING BOOT #

###########################################################

profiler.springboot.bootstrap.main:在后面加上要监测的项目jar启动main方法

注:profiler.sampling.rate要写1,否则可能收集不到数据

5.2、启动命令:

springboot启动命令添加:

-javaagent:这边是pinpoint-agent所在位置,-Dpinpoint.profiler.profiles.active=local or relese:启动时配置文件(可不写,默认是pinpoint-root.config配置文件里指定的命令)(文件路径/pinpoint-agent/profile/...)

-Dpinpoint.agentId=clueDiscovery-test :agentid,唯一id,不可重复

-Dpinpoint.applicationName=clueDiscovery-test:agentName,项目名称:可重复

nohup java -javaagent:pinpoint-agent-2.3.3/pinpoint-bootstrap.jar -Dpinpoint.agentId=*** -Dpinpoint.applicationName=*** -jar ***.jar --spring.profiles.active=*** >console-***.log 2>&1 &

Tomcat集成示例

在tomcat 启动脚本(catalina.sh)中添加 -javaagent, -Dpinpoint.agentId, -Dpinpoint.applicationName

JAVA_OPTS="$JAVA_OPTS -javaagent:/home/jyapp/pinpoint-agent/pinpoint-bootstrap-1.7.3.jar"

JAVA_OPTS="$JAVA_OPTS -Dpinpoint.agentId=$AGENT_ID"

JAVA_OPTS="$JAVA_OPTS -Dpinpoint.applicationName=$APPLICATION_NAME"

注意:

$AGENT_ID - 需改为应用的唯一标记,如 loan-33,代表loan 33服务器

$APPLICATION_NAME - 需改为应用名,如 loan,代表贷款应用

6、打开网址http://192.168.1.116:8080/

首页

查看具体请求页面

内存消耗页面

参考资料:

pinpoint安装和部署 - 简书

pinpoint2.1.0版本安装部署_事在人为的技术博客_51CTO博客

pinpoint2.3.3安装和部署相关推荐

  1. Qt最新版5.14在Windows环境静态编译安装和部署的完整过程 VS 2019-Qt static link build Windows 32 bit/64 bit

    文章目录 为什么要静态编译(static link) 1.源码下载/source code download 2. 编译工具下载/compiler download 编译环境选择:MinGW/MSVC ...

  2. Qt最新版5.13在Windows环境静态编译安装和部署的完整过程(VS 2017/VS 2019)

    文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...

  3. Qt最新版5.12在Windows环境静态编译安装和部署的完整过程(VS2017)

    文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...

  4. Ansible的安装及部署

    Ansible的安装及部署 1 实验环境 2 Ansible的安装 3 Ansible的基本信息 4 构建Ansible清单 4.1 全局清单 4.2 设定受控主机的组 4.2.1 清单查看 4.2. ...

  5. idea上传项目到码云_mall前端项目的安装与部署

    本文主要讲解mall前端项目mall-admin-web的在Windows和Linux环境下的安装及部署. Windows下的安装及部署 下载nodejs并安装 下载地址:https://nodejs ...

  6. Linux下Redis3.2的安装和部署

    redis简介: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...

  7. vSphere虚拟化之ESXi安装及部署

    vSphere虚拟化之ESXi的安装及部署(上) 一.什么是vSphere? vSphere是VNware公司在2001年基于云计算推出的一套企业级虚拟化解决方案.核心组件为ESXi.如今,经历了5个 ...

  8. 探讨微软团队开发利器VSTS之安装及部署篇

    一.引言Visual Studio 2005 Team System是微软结合MSF成功开发经验的基础上,首次由软件开发领域延伸至整个软件开发生命周期管理的开发工具.Visual Studio 200 ...

  9. (运维)VMware-vCenter-Server-Appliance-5.0安装与部署

    可以下载 VMware vCenter Server Appliance,以作为在 Windows 计算机上安装 vCenter Server 的替代方法.vCenter Server Applian ...

最新文章

  1. 【Netty】NIO 网络通信 SelectionKey 常用 API 简介
  2. 基于 Flink 的严选实时数仓实践
  3. B 站 CEO 的身份证被上传到 GitHub 了?
  4. 一文说通C#中的异步迭代器
  5. 【个推CTO谈数据智能】之本质及技术体系要求
  6. “3D几何与视觉技术”全球在线研讨会第九期~识别3D中的物体和场景
  7. 在Centos环境下搭建Confluence
  8. tcp测试监听工具_高清无码多图详解!性能测试六大核心体系(没人的时候偷偷看)...
  9. 索引大小对语句执行速度的影响
  10. Python基础与大数据应用(三)
  11. antd树形控件拖拽 改变数据位置
  12. 工具方法:java读取Excel合并单元格(简单实例)
  13. 网页的背景颜色变化效果
  14. 空气质量等级c语言编程,编程小白如何快速处理空气质量数据
  15. 、用ecshop整合淘宝客api改造用于淘宝客程序
  16. 电商扣减库存_经验分享:电商库存体系设计笔记
  17. 区块链主流开源技术体系介绍(转)
  18. linux查看jetty安装目录,linux中Jetty的安装和配置方法
  19. 如何利用朋友圈做好微信营销之路
  20. 半年面试,我总结出了java面试笔记

热门文章

  1. Python爬虫-某旅游网
  2. 美度舵手系列多功能计时腕表伴你行走世界
  3. open、write、read函数总结(初学者,请见谅)
  4. phantomjs 配置和使用_安装和使用PhantomJS
  5. 刘汝佳《算法竞赛入门经典(第二版)》习题(三)
  6. LaTex公式、函数、希腊字母、符号、运算符号总结
  7. 配置docker 代理,连接外部网络并下载docker镜像
  8. 达观杯数据竞赛 -- LR+SVM处理词向量特征
  9. python--求圆的面积
  10. matlab程序窗口是乱码,解决matlab中文乱码