APM链路监控:pinpoint安装部署实战详细手册

article/2025/8/23 16:20:40

文章目录

  • 一、pinpoint介绍
    • 1.pinpoint简介
    • 2.架构组成
  • 二、安装环境准备
  • 三、HBase单机安装
  • 四、pinpoint安装
    • 1.安装pinpoint-collector
    • 2.安装pinpoint-web
    • 3.安装pinpoint-agent
  • 五、pinpoint优化
    • 1.collector日志输出级别优化
    • 2.Hbase GC优化(jdk1.8)
  • 结尾


一、pinpoint介绍

1.pinpoint简介

pinpoint是开源在github上的一款APM监控工具,它是由java编写的,用于大规模分布式系统的监控;它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测试的Tomcat中加上3句话,打下探针,就可以监控整套程序了。Pinpoint支持的功能比较丰富,可以支持如下几种功能:

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

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

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

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

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

2.架构组成

pipoint由pinpoint agent、pinpoint collector、pinpoint web、HBase 4部分组成;

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

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

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

  • HBase:数据库,用于保存监控数据;

架构图如下:
在这里插入图片描述


二、安装环境准备

  • jdk1.8(下面的hbase GC调优主要针对jdk1.8,其他版本会有所不同)
  • pinpoint-web-boot-2.3.3.jar(下载地址:https://github.com/naver/pinpoint)
  • pinpoint-collector-boot-2.3.3.jar(下载地址:https://github.com/naver/pinpoint)
  • pinpoint-agent-2.3.3.tar.gz(下载地址:https://github.com/naver/pinpoint)
  • hbase-1.4.9-bin.tar.gz(下载地址:http://archive.apache.org/dist/hbase/1.4.9/)
  • hbase-create.hbase(下载地址:https://github.com/pinpoint-apm/pinpoint/tree/master/hbase/scripts)

三、HBase单机安装

1)将安装包hbase-1.4.9-bin.tar.gz上传到服务器/home目录,并解压;

tar -xzvf hbase-1.4.9-bin.tar.gz

2)修改HBase配置文件hbase-site.xml
注:HBase支持HDFS存储,但是需要安装Hadoop等组件,这里为了方便,暂时先不使用HDFS。另外,生产环境建议搭HBase集群,这里暂时只搭HBase单节点。

<configuration><property><name>hbase.rootdir</name><value>file:///app/application/data/hbase</value></property><property><name>hbase.zookeeper.property.dataDir</name><value>/app/application/data/zookeeper</value></property><property><name>zookeeper.session.timeout</name><value>300000</value><description>加大zookeeper会话超时时间</description></property><property><name>hbase.regionserver.restart.on.zk.expire</name><value>true</value><description>设置 regionserver 起死回生</description></property><property><name>hbase.regionserver.handler.count</name><value>50</value><description>regionserver处理IO请求的线程数</description></property><property><name>hbase.zookeeper.property.tickTime</name><value>60000</value><description>Client端与zk发送心跳的时间间隔</description></property><property><name>zookeeper.session.timeout.localHBaseCluster</name><value>300000</value><description>本地模式HMasterCommandLine类中的startMaster方法会将zookeeper.session.timeout.localHBaseCluster设置给zookeeper.session.timeout,本地模式默认10000ms</description></property><property><name>hbase.localcluster.assign.random.ports</name><value>false</value><description>本地模式端口号是随机分配,取消随机端口才能变成默认端口</description></property>
</configuration>

3)修改启动文件hbase-env.sh的JAVA_HOME环境变量位置

vi /home/hbase-1.4.9/conf/hbase-env.sh# 在27行左右的位置,修改如下
export JAVA_HOME=/opt/jdk1.8.0/# 在124行开启自带zookeeper
export HBASE_MANAGES_ZK=true

4)配置环境变量

#配置环境变量HBASE_HOME
vi /etc/profile#在末尾添加:
export HBASE_HOME=/home/hbase-1.4.9#让环境变量生效
source /etc/profile

5)启动HBase

cd /home/hbase-1.4.9/bin
./start-hbase.sh

6)验证是否启动成功:

jps

启动成功会看到HMaster进程
在这里插入图片描述

7)初始化HBase的pinpoint库
执行pinpoint提供的Hbase初始化语句

cd /home/hbase-1.4.9/bin
./hbase shell /home/hbase-create.hbase 

执行成功:
在这里插入图片描述

8)结果验证

  • 方法1:进入数据库,查看初始化表
#进入数据库
cd /home/hbase-1.4.9/bin
./hbase shell
#查看初始化表
list
  • 方法2:登录web,查看初始化数据是否成功;
    HbaseWeb地址 : http://192.168.197.129:16010/master-status,IP地址为hbase数据库所在服务器的IP地址

在这里插入图片描述
9)命令
进入自带zookeeper模式命令

./hbase zkcli

进入hbase命令

./hbase shell

四、pinpoint安装

1.安装pinpoint-collector

pinpoint-collector-boot-2.3.3.jar默认端口为8081,可自行修改application.yml的端口地址

nohup java -Dpinpoint.zookeeper.address=localhost -jar /home/pinpoint/pinpoint-collector-boot-2.3.3.jar >/var/logs/pinpoint-collector.log 2>&1 &

2.安装pinpoint-web

pinpoint-collector-boot-2.3.3.jar默认端口为8080,可自行修改application.yml的端口地址

nohup java -Dpinpoint.zookeeper.address=localhost -jar /home/pinpoint/pinpoint-web-boot-2.3.3.jar >/var/logs/pinpoint-web.log 2>&1 &

浏览器上输入:http://ip:8080,可以进入到PinPoint主界面。由于此时还没有在被测服务上运行agent,因此页面上没有应用可以显示。

3.安装pinpoint-agent

注:PinPoint-Agent需要与被测应用安装在一起

1) 修改agent配置文件

vim /home/pinpoint-agent-2.3.3/profiles/release/pinpoint.configprofiler.collector.ip=192.168.197.131   #hbase服务器地址
profiler.transport.grpc.collector.ip=192.168.0.10    # 即安装pinpoint-collector的虚拟机IP
profiler.sampling.counting.sampling-rate=1 #采样率配置,访问量不大的情况,建议全部采集

2) 增加监控的服务的启动命令

# 启动应用A
nohup java -javaagent:/root/pinpoint/pinpoint-agent-2.3.3/pinpoint-bootstrap-2.3.3.jar -Dpinpoint.agentId=demoA -Dpinpoint.applicationName=demoA -jar demoA.jar > nohup.out 2>&1 &
  • -javaagent:/root/pinpoint/pinpoint-agent-2.1.0/pinpoint-bootstrap-2.3.3.jar:agent所在位置

  • -Dpinpoint.agentId:这个参数只能唯一

  • -Dpinpoint.applicationName:可以重复,但为了更好地查看应用间的调用关系,这里按照应用名取值

刷新PinPoint页面,即可看到应用,使用JMeter客户端工具对demoA发起调用,则可以显示出调用关系。


五、pinpoint优化

1.collector日志输出级别优化

collector默认输出级别为info,当服务多,访问高时,日志量比较大,可以设置为warn
文件路径:pinpoint-collector-boot-2.3.3.jar\BOOT-INF\classes\profiles\release\log4j2.xml
在这里插入图片描述

2.Hbase GC优化(jdk1.8)

修改hbase/conf/hbase-env.sh配置文件
修改/新增配置如下:
注意修改GC日志路径/app/application/linux/hbase-1.4.9为实际部署路径

export HBASE_HEAPSIZE=4G
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xms4g -Xmx4g"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xloggc:/app/application/linux/hbase-1.4.9/logs/hbase.gc.log -XX:ErrorFile=/app/application/linux/hbase-1.4.9/logs/hs_err_pid.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=70 -Xmx4g -Xms4g"

结尾

  • 感谢大家的耐心阅读,如有建议请私信或评论留言。
  • 如有收获,劳烦支持,关注、点赞、评论、收藏均可,博主会经常更新,与大家共同进步

http://chatgpt.dhexx.cn/article/e7anKSgZ.shtml

相关文章

pinpoint使用详解(图文版)

pinpoint使用详解 用了一段时间的pinpoint发现确实挺好用的&#xff0c;就是功能超级多&#xff0c;大概整理了一下各功能的使用用法 1.首页 2.查看应用详细信息 2.1点击查看单个信息 2.2查看应用更详细信息 3.查看详细数据 错误的信息会用红色显示&#xff0c;可以查看错误…

synology 群晖 syslog

群晖真是太强大了&#xff0c;居然还有syslog功能。而且配置非常简单。在日志中心-》接收日志中就可以非常容易的配置。 以后在不方便调试的场合&#xff0c;就可以直接把调试信息发送到我的群晖服务器&#xff0c;打开看看就知道问题所在了 syslog

linux syslog原理,Linux日志管理之詳解 syslog/vsyslog

1、syslog簡介 syslog 是一種工業標准的協議,可用來記錄設備的日志。在UNIX系統,路由器、交換機等網絡設備中,系統日志(System Log)記錄系統中任何時間發生的大小事件。管理者可以通過查看系統記錄,隨時掌握系統狀況。UNIX的系統日志是通過syslogd這個進程記錄系統有關事件…

syslog RFC5424协议详解

官方说明 一个很不错的rfc文档下载网址。 Document Retrieval RFC Editor RFC 5424: The Syslog Protocol 6. Syslog Message FormatThe syslog message has the following ABNF [RFC5234] definition:SYSLOG-MSG HEADER SP STRUCTURED-DATA [SP MSG]HEADER …

kiwi syslog mysql_KIWI Syslog配置

默认地,kiwi使用UDP 514端口接收日志数据,安装成功后即可接收日志 使用命令netstat –ano查看服务器监听状态,如果服务没起来,则重新启动服务Kiwi Syslog Daemon 任务:把当天的日志保存在G:\event,历史日志保存在G:\eventold,自动删除1一个月前的日志记录 第一步:新建规…

oracle 发syslog,Syslog转发管理

Syslog转发管理 网络设备会生成各种事件,这些事件在本地记录,管理员可以在其中查看和分析事件。但是,如果您的网络托管大量设备,则从这些设备中的每一个收集事件日志将既耗时又不切实际。 Syslog或系统日志记录协议是一种标准协议,可通过将系统日志或事件消息发送到中央sy…

syslog watcher syslog4j

1.下载syslog watcher SyslogWatcherSetup-5.2.3.msihttps://www.aliyundrive.com/s/8C6Cw7RuyUV2.设置编码 3.java&#xff1a; <dependency><groupId>org.syslog4j</groupId><artifactId>syslog4j</artifactId><version>0.9.46</ve…

python syslog

最近在写一些命令行守护程序&#xff0c;类似于 Linux 下的一些常运行的程序&#xff0c;除了用到一些常见的IO 以及进程间通信的内容之外&#xff0c;还尝试了一下 Unix 系列的 syslog&#xff0c;在尝试过程中&#xff0c;发现 Python 已经在 logging 模块中很方便得集成了 s…

linux syslog

linux syslog 1. syslog 定义1.1 RFC3195 2. syslog 组成3. syslog配置3.1 3CD 配置syslog 日志服务器 4. syslog api4.1. c api 代码示例&#xff1a;4.2 syslog 例子2&#xff1a; 1. syslog 定义 在Unix类操作系统上&#xff0c;syslog广泛应用于系统日志。syslog日志消息既…

Syslog 教程:工作原理、示例、最佳实践等

Syslog 是用于从各种网络设备以特定格式发送和接收通知消息的标准。这些消息包括时间戳、事件消息、严重性、主机 IP 地址、诊断等。就其内置的严重性级别而言&#xff0c;它可以传达 0 级、紧急、5 级、警告、系统不稳定、严重和 6 级和 7 级&#xff08;信息和调试&#xff0…

关于fidder

fidder教程 https://www.cnblogs.com/R-bear/p/7508133.html fidder抓包工具总结 https://www.cnblogs.com/yyhh/p/5140852.html 从别人那里截了几张图。觉得写的挺好的&#xff0c;保存下来&#xff0c;日后复看。

Python fidder的简单实用

Fidder 对中间数据进行拷贝 然后再发送给服务器 Winconfig->勾选IE->浏览IE->一点一拖看数据(选项卡定位到composer)

Fidder下载安装

一、登录Fidder官网&#xff1a;https://www.telerik.com/fiddler 二、在Fidder官网页点击下载 三、输入信息&#xff0c;点击下载windows版 四、对于弹出的Fidder可执行文件&#xff0c;点击“保存文件”进行下载 五、执行下载好的Fidder可执行程序&#xff0c;在弹出的条款…

Fidder显示抓取IP地址

1.打开fiddler, 快捷键CtrlR 或者 菜单->Rules->Customize Rules…&#xff0c;然后在CustomRules.js文件里CtrlF查找字符串&#xff1a;static function Main()&#xff0c;然后添加一行代码即可显示IP&#xff0c;代码如下&#xff1a; FiddlerObject.UI.lvSessions.…

学习Fidder和willow

自学fidder和willow Fidder是什么 一种Web调试工具可以记录所有客户端和服务器的http和https请求允许监视、设置断点、修改输入输出数据其包含了一个强大的基于事件脚本的子系统&#xff0c;并且能使用.net语言进行扩展 Fidder的工作原理 Fiddler是以代理web服务器的形式工…

fidder classic 界面介绍

界面划分 开始抓包 &#xff08;1&#xff09;默认情况下都是开启的&#xff0c;点击下图可以关闭或开启抓包。 &#xff08;2&#xff09;点击“file”----“capture traffic”也可以开始抓包 菜单栏 重要的菜单栏 reset script 重置你修改的脚本&#xff1b;在rules里&…

Fidder下抓取https

1、首先需要手机连接上Fiddler代理&#xff0c;而Fiddler默认是不允许其他设备进行连接的&#xff0c;点击 Tools > Options...&#xff0c;在 Connections 面板选中 Allow remote computers to connect 允许其他设备连接 点击 Tools > Options...&#xff0c;在 HTTPS 面…

fidder使用

前言 本文会对Fidder这款工具的一些重要功能&#xff0c;进行详细讲解&#xff0c;带大家进入Fidder的世界&#xff0c;本文会让你明白&#xff0c;Fidder不仅是一个抓包分析工具&#xff0c;也是一个请求发送工具&#xff0c;更加可以当作为Mock Server使用&#xff0c;而且可…

Fidder应用(一)

Fiddler调式使用(一)深入研究 阅读目录 Fiddler的基本概念如何安装Fiddler了解下Fiddler用户界面理解不同图标和颜色的含义web session的常用的快捷键了解web Session上下文菜单Fiddler如何捕获firefox中的会话Fiddler如何捕获Https会话Fiddler的HTTP统计视图移动开发如何使用…

Fidder教程

一.Fiddler的基本介绍 Fiddler的官方网站:http://www.telerik.com/fiddler Fiddler官方网站提供了大量的帮助文档和视频教程,学习Fiddler的最好资料 Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出…