文章目錄
- 一、pinpoint介紹
- 1.pinpoint簡介
- 2.架構組成
- 二、安裝環境準備
- 三、HBase安裝
- 四、pinpoint安裝
- 1.安裝pinpoint-collector
- 2.安裝pinpoint-web
- 3.安裝pinpoint-agent
- 結尾
一、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:資料庫,用于保存監控資料;
架構圖如下:

二、安裝環境準備
- 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:///opt/data/hbase</value>
</property>
<property> #單節點可不用配置
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
<property> #單節點可不用配置
<name>hbase.master</name>
<value>miti-hadoop-slaver01:60000</value>
</property>
<property> #zookeeper地址(本地為hbase自帶的zookeeper,另外部署的需要改成相應的ip地址,并將防火墻開啟2181埠)
<name>hbase.zookeeper.quorum</name>
<value>127.0.0.1</value>
</property>
<property> #2181為zookeeper的clientPort
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/data/zoodata</value>
</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
# 在48行52行56行開啟任意一行,GC日志收集
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
#查看初始化表
status "detailed"
- 方法2:登錄web,查看初始化資料是否成功;
HbaseWeb地址 : http://192.168.197.129:16010/master-status,IP地址為hbase資料庫所在服務器的IP地址

四、pinpoint安裝
1.安裝pinpoint-collector
pinpoint-collector-boot-2.1.0.jar默認埠為8081,可自行修改application.yml的埠地址
nohup java -Dpinpoint.zookeeper.address=localhost -jar /home/pinpoint/pinpoint-collector-boot-2.1.0.jar >/var/logs/pinpoint-collector.log 2>&1 &
2.安裝pinpoint-web
pinpoint-collector-boot-2.1.0.jar默認埠為8080,可自行修改application.yml的埠地址
nohup java -Dpinpoint.zookeeper.address=localhost -jar /home/pinpoint/pinpoint-web-boot-2.1.0.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.config
profiler.collector.ip=192.168.197.131 #hbase服務器地址
profiler.transport.grpc.collector.ip=192.168.0.10 # 即安裝pinpoint-collector的虛擬機IP
profiler.sampling.enable=false #是否開啟采樣,訪問量不大的情況,建議不開啟,即全部采集
2) 增加監控的服務的啟動命令
# 啟動應用A
nohup java -javaagent:/root/pinpoint/pinpoint-agent-2.1.0/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發起呼叫,則可以顯示出呼叫關系,
結尾
- 感謝大家的耐心閱讀,如有建議請私信或評論留言,
- 如有識訓,勞煩支持,關注、點贊、評論、收藏均可,博主會經常更新,與大家共同進步
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/435465.html
標籤:其他
