PinPoint 全鏈路監控部署


Pinpoint是一個開源的 APM (Application Performance Management/應用性能管理)工具,用於基於java的大規模分布式系統,基於Google Dapper論文。

架構組成
Pinpoint主要由四部分組成:

Pinpoint-Collector:數據收集模塊,接收Agent發送過來的監控數據,並存儲到HBase數據庫

Pinpoint-Agent:用於收集應用端監控數據,無侵入式,只需要在啟動命令中加入部分參數即可

Pinpoint-Web:UI,展示性能數據

HBase Storage:監控展示模塊,展示系統調用關系、調用詳情、應用狀態等,並支持報警等功能

優點:
1、分布式事務跟蹤,跟蹤跨分布式應用的消息
2、自動檢測應用拓撲,幫助你搞清楚應用的架構
3、水平擴展以便支持大規模服務器集群
4、提供代碼級別的可見性以便輕松定位失敗點和瓶頸
5、使用字節碼增強技術,添加新功能而無需修改代碼

功能:
1、故障快速定位
2、各個調用環節的性能分析
3、數據分析等
4、生成服務調用拓撲圖

軟件下載地址:

Pinpoint GitHub 地址:
https://github.com/naver/pinpoint
https://github.com/pinpoint-apm/pinpoint/releases/tag/1.8.5

hbbase下載地址:
http://archive.apache.org/dist/hbase/

初始化pinpoint庫
下載腳本:https://github.com/naver/pinpoint/blob/master/hbase/scripts/hbase-create.hbase

       https://raw.githubusercontent.com/pinpoint-apm/pinpoint/master/hbase/scripts/hbase-create.hbase

部署軟件版本信息:

jdk1.8.0_172
pinpoint-agent-1.8.5
pinpoint-collector-1.8.5
pinpoint-web-1.8.5
hbase-1.2.12

部署主機信息:

ip地址 角色 操作系統 部署服務
10.0.10.201 服務端 CentOS 7.8 jdk collector web hbase tomcat8 
10.0.10.46 agent端 CentOS 7.8 jdk agent spring-cloud service
10.0.10.87 agent端 CentOS 7.8 jdk tomcat java service 

環境安裝:

1、安裝JDK

解壓自行安裝,環境變量配置如下:

# java config
export JAVA_HOME=/usr/local/jdk1.8.0_172
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 2、安裝HBase

  1. 將Hbase放到指定目錄,我這里下載的是1.2.12版本的。
# tar -zxvf hbase-1.2.12-bin.tar.gz -C /usr/local/
# # ln -s hbase-1.2.12 hbase

  2.修改配置信息
   修改hbase-env.sh文件,#加入JAVA_HOME

export JAVA_HOME=/usr/local/jdk1.8.0_172

  注釋掉如下兩行,去除告警信息:

#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"

  3.修改hbase-site.xml文件.

# vi hbase-site.xml
<configuration>
        <property>
            <name>hbase.rootdir</name>
            <value>file:///usr/local/hbase/data</value>
        </property>
        <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>/usr/local/hbase/zookeper</value>
        </property>
        <property>
         <name>hbase.zookeeper.property.clientPort</name>
         <value>2181</value>
        </property>
        <!-- false是單機模式,true是分布式模式  -->
        <property>
         <name>hbase.cluster.distributed</name>
         <value>false</value>
        </property>
</configuration>

  4.啟動HBase,並查看服務及關聯端口

 bin]# ./start-hbase.sh
 # jps 
15482 HMaster

]# netstat -anpt |grep 15482
tcp6       0      0 :::2181                 :::*                    LISTEN      15482/java          
tcp6       0      0 :::16010                :::*                    LISTEN      15482/java          
tcp6       0      0 :::40012                :::*                    LISTEN      15482/java          
tcp6       0      0 10.0.10.201:44621       :::*                    LISTEN      15482/java          
tcp6       0      0 10.0.10.201:43408       :::*                    LISTEN      15482/java          
tcp6       0      0 127.0.0.1:36292         127.0.0.1:2181          ESTABLISHED 15482/java          
tcp6       0      0 ::1:35938               ::1:2181                ESTABLISHED 15482/java          
tcp6       0      0 127.0.0.1:36296         127.0.0.1:2181          ESTABLISHED 15482/java          
tcp6       0      0 10.0.10.201:45708       10.0.10.201:43408       ESTABLISHED 15482/java          
tcp6       0      0 10.0.10.201:43408       10.0.10.201:45706       ESTABLISHED 15482/java          
tcp6       0      0 10.0.10.201:44621       10.0.10.201:41087       ESTABLISHED 15482/java          
tcp6       0      0 10.0.10.201:43408       10.0.10.201:45708       ESTABLISHED 15482/java          
tcp6       0      0 127.0.0.1:2181          127.0.0.1:36292         ESTABLISHED 15482/java          
tcp6       0      0 ::1:2181                ::1:35938               ESTABLISHED 15482/java          
tcp6       0      0 127.0.0.1:2181          127.0.0.1:36300         ESTABLISHED 15482/java          
tcp6       0      0 127.0.0.1:2181          127.0.0.1:36290         ESTABLISHED 15482/java          
tcp6       0      0 ::1:2181                ::1:35934               ESTABLISHED 15482/java          
tcp6       0      0 127.0.0.1:2181          127.0.0.1:36296         ESTABLISHED 15482/java          
tcp6       0      0 10.0.10.201:41087       10.0.10.201:44621       ESTABLISHED 15482/java

  5.初始化pinpoint庫,並導入數據腳本

hbase]#     wget https://raw.githubusercontent.com/pinpoint-apm/pinpoint/master/hbase/scripts/hbase-create.hbase 
#執行數據腳本
hbase]# ./bin/hbase shell hbase-create.hbase 

# 執行完了以后,進入Hbase
./hbase shell

#進入后可以看到Hbase的版本,還有一些相關的信息
[root@hztestdb01 bin]# ./hbase shell
2021-02-26 10:55:55,074 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.12, r91d5ec4c4dcd10ceec984c6e663ea82acf353995, Sat Apr  6 15:27:28 CDT 2019
hbase(main):003:0> list 

 登錄Hbase web,來查看HBase的數據是否初始化成功.

 

 3、部署pinpoint-collector服務

部署war包(將war包放到tomcat webapps目錄),修改server.xml配置.

#替換端口號
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

#啟動tomcat服務,並檢查日志是否正常
# ./startup.sh

4、部署pinpoint-web

部署war包(以webapps目錄部署),修改server.xml配置

部署pinpoint-web
部署war包(以webapps目錄部署),修改server.xml配置

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

啟動tomcat服務,並檢查日志是否正常
# ./startup.sh

然后可以在瀏覽器中:http://10.0.10.201:28080/pp-web/

 

 5、部署pinpoint-agent采集監控數據

首先將pinpoint-agent-1.8.5.tar.gz傳入到客戶端服務器10.0.10.46/87並解壓至/usr/local/pinpoint-agent目錄中
配置pinpoint-agent采集器

pinpoint-agent]# vi pinpoint.config

#主要修改IP,只需要指定到安裝pinpoint-collector的IP就行了,安裝pp-col啟動后,自動就開啟了9994,9995,9996的端口了.
profiler.collector.ip=10.0.10.201

6、tomcat方式部署的java應用的監控,只需要在配置文件添加如下幾行重啟服務即可.

# 修改測試項目下的tomcat啟動文件"catalina.sh",修改這個只要是為了監控測試環境的Tomcat,增加探針
bin]# vim catalina.sh

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=AP-TOMCAT"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=AP-TEST"

# 第一行是pp-agent的jar包位置
# 第二行是agent的ID,這個ID是唯一的,我是用pp + 日期命名的,只要與其他的項目的ID不重復就好了
# 第三行是采集項目的名字,這個名字可以隨便取,只要各個項目不重復就好了

7、springboot 包部署 如果是jar包部署,直接在啟動命令加啟動參數:

nohup $jdk_path/bin/java $jvm -Duser.timezone=GMT+08 \
    -javaagent:/usr/local/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=應用唯一ID \
    -Dpinpoint.applicationName=應用名稱  \
    -jar app-boot.jar > app-boot.log 2>&1 &

在啟動jar服務時,添加如下兩行即可.

 

 刷新頁面並展示信息如下:

微服務展示

 

 tomcat展示:

 

 

調用鏈路展示:

 weblogic 部署的java應用監控:

鏈接文檔:https://github.com/pinpoint-apm/pinpoint/tree/master/plugins/weblogic

SAVE_JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/usr/local/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=weblogic-112 -Dpinpoint.applicationName=test-weblogic"

 

 

參考文檔:

    https://blog.csdn.net/zdshare/article/details/90640676

    https://cloud.tencent.com/developer/article/1521571

    https://www.jb51.net/article/171795.htm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM