• Pinpoint 分布式请求跟踪系统的搭建


    Pinpoint 是用 Java 编写的大规模分布式系统性能管理工具, 可以跟踪请求, 硬件信息收集, 请求时间统计等等

    项目主页:https://github.com/naver/pinp...

    前提

    • 有分布式部署的项目可供测试
    • 至少一台服务器
    • Java、Hbase、Zookeeper、Tomcat 环境

    说明

    • 个人不喜欢 hbase 自带的 zk ,如无癖好, 可随意
    • 本文不讲解基础环境的搭建, 如不会,请自行搜索或者参考博客的其他文章
    • 为避免部分端口不通等可疑问题, 建议关闭防火墙

    下载

    wget https://github.com/naver/pinpoint/releases/download/1.6.2/pinpoint-agent-1.6.2.tar.gz
    wget https://github.com/naver/pinpoint/releases/download/1.6.2/pinpoint-collector-1.6.2.war
    wget https://github.com/naver/pinpoint/releases/download/1.6.2/pinpoint-web-1.6.2.war
    
    wget https://raw.githubusercontent.com/naver/pinpoint/master/hbase/scripts/hbase-create.hbase

    准备环境

    1. 配置 JDK 环境 (笔者使用 Oracle 1.8, openJdk 可以)
    2. 搭建 Zookeeper 环境 (单机即可)
    3. 搭建 Hbase (单节点即可)
    4. 在 Hbase/bin 下执行 ./hbase shell hbase-create.hbase 创建相关存储结构
    5. 准备 Tomcat 环境

    说明:Zookeeper 是为了给 Pinpoint 集群部署准备的, 如果乐意, 也可和 Hbase 共用

    部署说明

    Pinpoint 分为三个模块 ( agent、collector、web )

    • agent: tar 包, 解压运行, 负载修改项目字节码、采集信息, 部署项目的服务器上都要部署 agent
    • collector:war 包, 负责收集汇总 agent 上传的信息并持久化到 hbase , 只部署单台即可, 可水平拓展
    • web: war 包, 负责数据的可视化形式展示, 只部署单台即可, 可水平拓展

    注意:web 和 collector 可分开部署, 也可部署一块, 本文将会把他们两个部署到同一个 Tomcat 容器中

    修改 Pinpoint

    pinpoint-collector-1.6.2.war

    修改 WEB-INFclasseshbase.properties 文件
    hbase.client.host 设置为 hbase 所用的 zk 地址
    
    修改 WEB-INFclassespinpoint-collector.properties 文件
    cluster.zookeeper.address 修改为给 Pinpoint 准备的 zk 地址

    pinpoint-web-1.6.2.war

    修改 WEB-INFclasseshbase.properties 文件
    hbase.client.host 设置为 hbase 所用的 zk 地址
    
    修改 WEB-INFclasseshbase.propertiespinpoint-web.properties 文件
    cluster.zookeeper.address 修改为给 Pinpoint 准备的 zk 地址

    部署 collector 和 web

    1. 将准备好的 tomcat 中 webapps 目录清空
    2. 将上一步修好的两个 war 包放置到 webapps
    3. 将 pinpoint-web-1.6.2.war 修改为 ROOT.war
    4. 将 pinpoint-collector-1.6.2.war 修改为 collector.war
    5. 启动 Tomcat

    查看 tomcat/logs 下的日志, 注意观察有没有连接不到 2181 端口的日志, 如果有, 可能是 war 中的配置没有修改正确, 建议清空 tomcat 下 work、temp 文件夹后重试

    部署 agent

    1. 将 pinpoint-agent-1.6.2.tar.gz 解压,
    2. 把 pinpoint.config 文件中 profiler.collector.ip 属性值修改为部署 collector 机器的主机名或 IP

    注意: 每个项目所在的服务器都需要部署 agent

    修改自己项目的启动参数

    需要添加三个启动参数

    -javaagent: 指向 agent 目录下的 pinpoint-bootstrap-1.6.2.jar
    -Dpinpoint.agentId:设置全局唯一标示 ID
    -Dpinpoint.applicationName: 设置项目的名称(如果同一项目部署两台实例,这两台的参数应该一致)

    Tomcat 和 Jar 项目有不同的添加方式,可参考如下方式修改

    Tomcat

    找到 bin/catalina.sh 添加下面的代码

    CATALINA_OPTS="$CATALINA_OPTS -javaagent:$AGENT_PATH/pinpoint-bootstrap-1.6.2.jar"
    CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=tomcat1"
    CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=webcontroller"

    SpringBoot

    java -javaagent:/home/junbaor/pinpoint-agent/pinpoint-bootstrap-1.6.2.jar -Dpinpoint.agentId=bbs-web-1 -Dpinpoint.applicationName=bbs-web -jar bbs-web-0.0.1-SNAPSHOT.jar

    在自己的项目添加完毕启动后,即可登录 web 后台查看集群的状态, 跟踪请求

    截图预览

    图片描述

    右上角的绿点表示请求, 用鼠标框选后可以查看详情

    图片描述
    图片描述
    图片描述
    图片描述
    图片描述
    图片描述
    图片描述

  • 相关阅读:
    LeetCode链表解题模板
    c++中的new、operator new、placement new
    树的前序、中序、后续、层次遍历的递归和非递归解法
    c++Volatile关键词
    南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题
    c++右值引用以及使用
    c++选择重载函数
    从4行代码看右值引用
    被遗忘的C结构体打包技术
    南大算法设计与分析课程OJ答案代码(4)--变位词、三数之和
  • 原文地址:https://www.cnblogs.com/hericwan/p/12402637.html
Copyright © 2020-2023  润新知