iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >PinPoint分布式全链路监控
  • 484
分享到

PinPoint分布式全链路监控

2024-04-02 19:04:59 484人浏览 安东尼
摘要

PinPoint分布式全链路监控安装需要的所有包下载路径:链接: https://pan.baidu.com/s/1sl9dP9r 密码: jsux介绍:   PinPoint是一个开源

PinPoint分布式全链路监控

安装需要的所有包下载路径:

链接: https://pan.baidu.com/s/1sl9dP9r 密码: jsux

介绍:

   PinPoint是一个开源的APM((Application PerfORMance Management/应用性能管理)工具,基于JAVA的大规模分布式系统

   仿照GoOLE DAPPER,PinPoint通过跟踪分布式应用之间的调用来提供解决方案,以帮助分析系统的总体结构和内部模块之间如何相互联系


    服务器地图(ServerMap):

       通过可视化分布式系统的模块和他们之间的相互联系来理解系统拓扑。点击某个节点会展示这个模块的详情,比如它当前的状态和请求数量。

    实时活动线程图表(Realtime Active Thread Chart)

实时监控应用内部的活动线程。

请求/应答分布图表(Request/Response Scatter Chart)

长期可视化请求数量和应答模式来定位潜在问题。通过在图表上拉拽可以选择请求查看更多的详细信息

调用栈(CallStack)

在分布式环境中为每个调用生成代码级别的可视图,在单个视图中定位瓶颈和失败点

巡查(Inspector)

查看应用上的其他详细信息,比如CPU使用率,内存/垃圾回收,TPS,和JVM参数 

分布式系统调用链监控特点:

    1、应用架构由集中式向分布式演进后,整个调用关系变得复杂

2、分布式架构由复杂且较大规模集群构成,哥哥应用之间相当独立,可能由不同团队、不同语言实现

3、系统一个完整的调用过程可能横跨多个服务及数据中心

4、复杂的调用导致系统出问题后难以定位问题

5、无法准确知道整体系统性能及运行情况

Pinpoint中的数据结构

Pinpoint中,核心数据结构由Span, Trace, 和 TraceId组成

   1、Span: rpc (远程过程调用/remote procedure call)跟踪的基本单元; 当一个RPC调用到达时指示工作已经处理完成并包含跟踪数据。

   为了确保代码级别的可见性,Span拥有带SpanEvent标签的子结构作为数据结构。每个Span包含一个TraceId

2、Trace: 多个Span的集合; 由关联的RPC (Spans)组成. 在同一个trace中的span共享相同的TransactionId。Trace通过SpanId和ParentSpanId整理为继承树结构.

   3、TraceId: 由 TransactionId, SpanId, 和 ParentSpanId 组成的key的集合. TransactionId 指明消息ID,而SpanId 和 ParentSpanId 表示RPC的父-子关系。

TransactionId (TxId): 在分布式系统间单个事务发送/接收的消息的ID; 必须跨整个服务器集群做到全局唯一.

SpanId: 当收到RPC消息时处理的工作的ID; 在RPC请求到达节点时生成。

ParentSpanId (pSpanId): 发起RPC调用的父span的SpanId. 如果节点是事务的起点,这里将没有父span - 对于这种情况, 使用值-1来表示这个span是事务的根span。

Google Dapper 和 NAVER Pinpoint在术语上的不同

全链路性能监控

    一个请求完整的调用链可能如下图,经过多个系统服务,调用关系:

       PinPoint分布式全链路监控

关注各个调用的各项性能指标,比如吞吐量(TPS),响应时间及错误记录等

吞吐量:根据拓扑可相应计算组件、平台、物理设备的实际吞吐量

响应时间:包括整体调用的响应时间和各个服务的相应时间等

错误记录:根据服务返回统计单位时间异常次数

全链路性能监控从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,

并且方便找到故障产生的源头,生产上可极大缩短故障排除时间。


环境准备:

系统环境:Centos 6.X以上,不要太低

jdk最好是7或8

部署HBase(分布式用ZooKeeper可以使用内置的,单点就不需要)

搭建过程:

Pinpoint由4部分组成

1.Pinpoint Agent, 2. Pinpoint Collector, 3. HBase, 4.Pinpoint WEB UI

    1、部署JDK

具体过程略:

a、配置环境变量vim /etc/profile

export JAVA_HOME=/usr/local/jdk

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${jre_home}/lib

export PATH=${JAVA_HOME}/bin:$PATH

##配置环境变量执行:source /etc/profile

b、检查配置是否成功

[root@Mysql-jiachi local]# java -version

java version "1.8.0_112"

Java(TM) SE Runtime Environment (build 1.8.0_112-b15)

Java HotSpot(TM) Server VM (build 25.112-b15, mixed mode)

2、安装并启动hbase

解压hbase-1.1.11-bin.tar.gz

1、tar -zxvf /root/pp/hbase-1.1.11-bin.tar.gz  -C /usr/local/   ##建议重命名为hbase ===>/usr/local/hbase

2、cd /usr/local/hbase/conf

vim hbase-env.sh

27  export JAVA_HOME=/usr/local/jdk    # 指到自己对应的JAVA_HOME,默认使用java6

vim hbase-site.xml

<configuration>

 <property>

<name>hbase.rootdir</name>

<value>file:///data/hbase</value>        # 这里我们指定Hbase本地来存储数据,生产环境将数据建议存入hdfs中。

 </property>

</configuration>

3、启动服务

/usr/local/hbase/bin/start-hbase.sh

        注意: 这里说明一下,我们是最简方式启动的Hbase,

没有单独部署Hbase集群管理的zookeeper,而是直接使用Hbase自带的zk模块。另外,Hbase强烈建议将数据存入HDFS里面,目前我们是存在Hbase本地的

4、验证HBASE是否启动成功

jps

8114 Jps

7820 HMaster

5、HBASE初始化表语句

/usr/local/hbase/bin/hbase shell  /usr/local/hbase-create.hbase   ##建表数据自己指定位置

最后输出几个表名字,没有异常说明成功了,自己看日志.....

3、安装 Pinpoint-collector,它的服务是基于Tomcat的服务,所以在部署前需要解压tomcat包

1、tar -zxvf apache-tomcat-8.0.36.tar.gz   -C /usr/local/   ##建议重命名为pinpoint-collector ===>/usr/local/pinpoint-collector

2、修改pinpoint-collector的Tomcat的配置,主要修改端口,避免与pp-web的Tomcat的端口冲突(若有多台机器部署TOMCAT,就不需要修改端口)

3、cd /usr/local/pinpoint-collector/conf

sed -i 's/port="8005"/port="18005"/g' server.xml

sed -i 's/port="8080"/port="18080"/g' server.xml

sed -i 's/port="8443"/port="18443"/g' server.xml

sed -i 's/port="8009"/port="18009"/g' server.xml

sed -i 's/redirectPort="8443"/redirectPort="18443"/g' server.xml

sed -i "s/localhost/`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | awk -F: '{print $2}'`/g" server.xml

4、rm -rf /usr/local/pinpoint-collector/webapps/* 

5、把包pinpoint-collector-1.5.2.war解压

#mkdir /usr/local/pinpoint-collector/webapps/ROOT

#unzip pinpoint-collector-1.5.2.war -d  /usr/local/pinpoint-collector/webapps/ROOT

6、启动tomcat

#/usr/local/pinpoint-collector/bin/startup.sh

4、安装pinpoint-web,具体过程和Pinpoint-collector完全相同,在解压一个tomcat的包。

1、tar -zxvf apache-tomcat-8.0.36.tar.gz   -C /usr/local/   ##建议重命名为pinpoint-web ===>/usr/local/pinpoint-web

2、修改pinpoint-web的Tomcat的配置,主要修改端口,避免与pinpoint-collector的Tomcat的端口冲突(若有多台机器部署TOMCAT,就不需要修改端口)

3、cd /usr/local/pinpoint-web/conf

sed -i 's/port="8005"/port="28005"/g' server.xml

sed -i 's/port="8080"/port="28080"/g' server.xml

sed -i 's/port="8443"/port="28443"/g' server.xml

sed -i 's/port="8009"/port="28009"/g' server.xml

sed -i 's/redirectPort="8443"/redirectPort="28443"/g' server.xml

sed -i "s/localhost/`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | awk -F: '{print $2}'`/g" server.xml

4、rm -rf /usr/local/pinpoint-web/webapps/* 

5、把包pinpoint-web-1.5.2.war解压

#mkdir /usr/local/pinpoint-web/webapps/ROOT

#unzip pinpoint-web-1.5.2.war -d  /usr/local/pinpoint-web/webapps/ROOT

####这里说明一下:

hbase.properties 配置我们pp-web从哪个数据源获取采集数据,这里我们只指定Hbase的zookeeper地址。

jdbc.properties pp-web连接自身mysql数据库的连接认证配置。

sql目录 pp-web本身有些数据需要存放在MySQL数据库中,这里需要初始化一下表结构。

pinpoint-web.properties 这里pp-web集群的配置文件,如果你需要pp-web集群的话。

applicationContext-* .xml 这些文件在后续的调优工作中会用到。

log4j.xml 日志相关配置

6、启动tomcat

#/usr/local/pinpoint-web/bin/startup.sh

5、部署pinpoint-agent采集监控数据

1、解压包tar -zxvf pinpoint-agent-1.5.2.tar.gz

2、mv pinpoint-agent-1.5.2 /data/pp-agent

3、编辑配置文件vim pinpoint.config  #测试环境都在一台机器上不做修改,走默认

主要修改IP,只需要指定到安装Pinpoint-collector的IP就行了,安装Pinpoint-collector启动后,自动就开启了9994,9995,9996的端口了。

这里就不需要操心了,如果有端口需求,要去Pinpoint-collector的配置文件("Pinpoint-collector/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties")中,修改这些端口

profiler.collector.ip=192.168.245.136(这里需要确定)

5、增加探针,在服务的用户的访问的入口处添加文件,一般在启动目录下添加文件名为" vim  catalina.sh"

  ######部署采集器就很简单了,只需要加3句话就好了。我这边做一个测试的Tomcat,来模拟部署 把catalina.sh 文件存放在tomcat 下的bin目录下

  #pinpoint agent路径

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/pinpoint-agent-1.5.1/pinpoint-bootstrap-1.5.1.jar"

#被监控工程使用agent的标识号

CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=0000002"

#被监控工程名字

CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=172.16.10.43_3306_自定义"

#####

第一行是pp-agent的jar包位置

第二行是agent的ID,这个ID是唯一的,我是用pp + 今天的日期命名的,只要与其他的项目的ID不重复就好了

第三行是采集项目的名字,这个名字可以随便取,只要各个项目不重复就好了

配置完catalina.sh这个文件启动tomcat文件

6、访问pinpoint-web服务

PinPoint分布式全链路监控

其他细节可以更多的研究......

到这里,整个部署过程就完了。值得要注意的地方:

如果Hbase不是与pinpoint-web, Pinpoint-collector装在一台机器上,需要安装zookeeper,只要安装就好,确实2181端口启动就好。

如果zookeeper安装在独立机器上,这里需要修改一下Pinpoint-collector 和 pinpoint-web的配置文件pinpoint-collector.properties,pinpoint-web.properties,不然会导致俩个模块启动失败。

如果有最新版本建议使用新的版本,老版本存在一些问题。


您可能感兴趣的文档:

--结束END--

本文标题: PinPoint分布式全链路监控

本文链接: https://www.lsjlt.com/news/39628.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 全链路监控平台Pinpoint SkyWalking Zipkin选型对比
    目录前言1、目标要求2、功能模块3、GoogleDapper3.1、Span3.2、Trace3.3、Annotation3.4、调用示例3.4.1、请求调用示例3.4.2、调用过程...
    99+
    2024-04-02
  • 如何在Centos7系统安装部署Pinpoint分布式监控
    这篇文章主要讲解了“如何在Centos7系统安装部署Pinpoint分布式监控”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在Centos7系统安装部署Pinpoint分布式监控”吧!概...
    99+
    2023-06-17
  • 基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题
    目录1.全链路监控的概念2.pinpoint链路监控组件的介绍3.使用docker部署pinpoint监控组件4.在微服务中集成pinpoint-agent4.1.pinpoint-...
    99+
    2024-04-02
  • skywalking分布式服务调用链路追踪APM应用监控
    目录前言skywalking是什么,有什么用?skywalaking总体架构分为三部分如何快速开始?第一步:进入官方release地址第二步:配置需要监控的应用的agent探针系统使...
    99+
    2024-04-02
  • Prometheus分布式监控
    prometheus安装在阿里云上面,监控节点在公司内部机房,2个网络直接是不互通的。环境说明阿里云服务器:操作系统:centos 7.6数量:1台 公司内部服务器操作系统:centos 7.6数量:1台 拓扑图&nbs...
    99+
    2023-01-31
    分布式 Prometheus
  • 如何解决基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题
    这篇文章主要为大家展示了“如何解决基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决基于Pinpoint对Sprin...
    99+
    2023-06-29
  • skywalking分布式服务调用链路追踪APM应用监控的示例分析
    这篇文章给大家分享的是有关skywalking分布式服务调用链路追踪APM应用监控的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言当企业应用进入分布式微服务时代,应用服务依赖会越来越多,skywalk...
    99+
    2023-06-29
  • Nagios是否支持分布式监控
    是的,Nagios支持分布式监控。Nagios可以通过在不同服务器上安装多个Nagios实例来实现分布式监控,这些实例可以相互通信并...
    99+
    2024-03-12
    Nagios
  • Zabbix如何支持分布式监控
    Zabbix支持分布式监控的方式有以下几种: Proxy服务器:Zabbix Proxy是一个中间服务器,可以代理监控数据收集和...
    99+
    2024-04-02
  • 如何使用分布式链路追踪
    这篇文章主要介绍“如何使用分布式链路追踪”,在日常操作中,相信很多人在如何使用分布式链路追踪问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用分布式链路追踪”的疑惑有所帮...
    99+
    2024-04-02
  • 基于docker部署skywalking实现全链路监控功能
    目录一、概述简介功能架构图二、快速部署环境说明下载镜像安装elasticsearch修改系统参数启动elasticsearch安装oap安装ui三、spring-boot实例部署项目...
    99+
    2024-04-02
  • Dubbo实现分布式日志链路追踪
    技术场景 在日常的开发、测试或运维的过程中,经常存在这样的场景,开发人员在代码中使用日志工具(log4j、slf4j)记录日志,比如请求ID、IP等,方便在线上快速、精准的定位问题,...
    99+
    2024-04-02
  • docker中怎么部署skywalking实现全链路监控功能
    本篇内容主要讲解“docker中怎么部署skywalking实现全链路监控功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker中怎么部署skywalking实现全链路监控功能”吧!一、...
    99+
    2023-06-29
  • spring cloud分布式整合zipkin的链路跟踪
    深圳中公教育:服务之间的调用,假设现在有十几台服务,那么在查找日志的时候比较繁琐、复杂,而且在查看调用的时候也会像蜘蛛网一样,量太大。这时候zipkin可以把链路调用整个过程给升级起来,只需要到一个地方去查找,就可以知道哪一步出错。zipk...
    99+
    2023-06-03
  • Go 分布式链路追踪实现原理解析
    目录为什么需要分布式链路追踪系统微服务架构给运维、排障带来新挑战分布式链路追踪系统如何帮助我们分布式链路追踪系统架构概览核心概念一般架构协议标准和开源实现应用侧调用链跟踪实现方案概览...
    99+
    2024-04-02
  • ASP.Net Core中的日志与分布式链路追踪
    目录.NET Core 中的日志控制台输出非侵入式日志Microsoft.Extensions.LoggingILoggerFactoryILoggerProviderILogger...
    99+
    2024-04-02
  • 分布式监控系统之如何理解Zabbix主动、被动及web监控
    本篇内容主要讲解“分布式监控系统之如何理解Zabbix主动、被动及web监控”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分布式监控系统之如何理解Zabbix主...
    99+
    2024-04-02
  • springCloud分布式微服务云架构 第十二篇: 断路器聚合监控
    上一篇文章讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command。当我们有很多个服务的时候,这就需要聚合所以服务的Hystrix Dashboard的数据了。这就需要用到Spring Cloud的另一个...
    99+
    2023-06-05
  • CAT分布式实时监控系统如何使用
    这篇文章主要讲解了“CAT分布式实时监控系统如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CAT分布式实时监控系统如何使用”吧!CAT相比于其他组件的优势:CAT分布式实时监控系统是...
    99+
    2023-07-05
  • CAT分布式实时监控系统使用详解
    目录CAT相比于其他组件的优势:CAT的应用场景:CAT的使用方法:部署流程:在springboot中使用案例:1. 引入依赖:2. 配置客户端:3. 初始化客户端:4. 添加埋点:...
    99+
    2023-03-03
    CAT分布式实时监控系统 CAT分布式监控
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作