Pinpoint 分佈式請求跟蹤系統的搭建

Pinpoint 是用 Java 編寫的大規模分佈式系統性能管理工具, 能夠跟蹤請求, 硬件信息收集, 請求時間統計等等
項目主頁:https://github.com/naver/pinp...java

前提

  • 有分佈式部署的項目可供測試
  • 至少一臺服務器
  • 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 共用git

部署說明

Pinpoint 分爲三個模塊 ( agent、collector、web )github

  • agent: tar 包, 解壓運行, 負載修改項目字節碼、採集信息, 部署項目的服務器上都要部署 agent
  • collector:war 包, 負責收集彙總 agent 上傳的信息並持久化到 hbase , 只部署單臺便可, 可水平拓展
  • web: war 包, 負責數據的可視化形式展現, 只部署單臺便可, 可水平拓展

注意:web 和 collector 可分開部署, 也可部署一塊, 本文將會把他們兩個部署到同一個 Tomcat 容器中web

修改 Pinpoint

pinpoint-collector-1.6.2.war

修改 WEB-INF\classes\hbase.properties 文件
hbase.client.host 設置爲 hbase 所用的 zk 地址

修改 WEB-INF\classes\pinpoint-collector.properties 文件
cluster.zookeeper.address 修改成給 Pinpoint 準備的 zk 地址

pinpoint-web-1.6.2.war

修改 WEB-INF\classes\hbase.properties 文件
hbase.client.host 設置爲 hbase 所用的 zk 地址

修改 WEB-INF\classes\hbase.properties\pinpoint-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 文件夾後重試shell

部署 agent

  1. 將 pinpoint-agent-1.6.2.tar.gz 解壓,
  2. 把 pinpoint.config 文件中 profiler.collector.ip 屬性值修改成部署 collector 機器的主機名或 IP

注意: 每一個項目所在的服務器都須要部署 agentbootstrap

修改本身項目的啓動參數

須要添加三個啓動參數tomcat

-javaagent: 指向 agent 目錄下的 pinpoint-bootstrap-1.6.2.jar
-Dpinpoint.agentId:設置全局惟一標示 ID
-Dpinpoint.applicationName: 設置項目的名稱(若是同一項目部署兩臺實例,這兩臺的參數應該一致)

Tomcat 和 Jar 項目有不一樣的添加方式,可參考以下方式修改服務器

Tomcat

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

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 webapp

在本身的項目添加完畢啓動後,便可登陸 web 後臺查看集羣的狀態, 跟蹤請求

截圖預覽

圖片描述

右上角的綠點表示請求, 用鼠標框選後能夠查看詳情

圖片描述
圖片描述
圖片描述
圖片描述
圖片描述
圖片描述
圖片描述

相關文章
相關標籤/搜索