1、pinpoint介紹
1.1 pinpoint是什么?
pinpoint是開源在github上的一款APM監控工具,它是由java編寫的,用於大規模分布式系統的監控;它對性能的影響最小(只增加約3%資源利用率),安裝agent是無侵入式的,只需要在被測試的Tomcat中加上3句話,打下探針,就可以監控整套程序了。Pinpoint支持的功能比較豐富,可以支持如下幾種功能:
-
服務拓撲圖:對整個系統中應用的調用關系進行了可視化的展示,單擊某個服務節點,可以顯示該節點的詳細信息,比如當前節點狀態、請求數量等
-
實時活躍線程圖:監控應用內活躍線程的執行情況,對應用的線程執行性能可以有比較直觀的了解
-
請求響應散點圖:以時間維度進行請求計數和響應時間的展示,拖過拖動圖表可以選擇對應的請求查看執行的詳細情況
-
請求調用棧查看:對分布式環境中每個請求提供了代碼維度的可見性,可以在頁面中查看請求針對到代碼維度的執行詳情,幫助查找請求的瓶頸和故障原因。
-
應用狀態、機器狀態檢查:通過這個功能可以查看相關應用程序的其他的一些詳細信息,比如CPU使用情況,內存狀態、垃圾收集狀態,TPS和JVM信息等參數。
1.2 架構組成
pipoint由pinpoint agent、pinpoint collector、pinpoint web、HBase 4部分組成;
-
Pinpoint Agent:用於收集應用端監控數據,無侵入式,只需要在啟動命令中加入部分參數即可;
-
Pinpoint Collector:數據收集模塊,接收Agent發送過來的監控數據,並存儲到HBase;
-
Pinpoint Web:監控展示模塊,展示系統調用關系、調用詳情、應用狀態等,並支持報警等功能;
-
HBase:數據庫,用於保存監控數據;
架構圖如下:
2、pinpoint安裝部署
2.1 環境准備
1)2台centos虛擬機,1台用於部署pinpoint-web、pinpoint-collector以及HBase;1台用於部署應用系統和pinpoint agent;
2)jdk7 --- Java運行環境
3)hbase-1.0.3-bin.tar.gz --- 數據庫,用來存儲監控信息
4)tomcat8.0 --- Web服務器
5)pinpoint-collector-1.5.2.war --- pp的控制器
6)pinpoint-web-1.5.2.war --- pp展示頁面
7)test.war--測試系統
8)pinpoint-agent-1.5.2.tar.gz --- pp探針
安裝包下載地址:
鏈接:https://pan.baidu.com/s/1gpT5IXRvmYWPJmxKzo446Q
2.2 HBase安裝
1)將安裝包hbase-1.0.3-bin.tar.gz上傳到服務器/home/pp_res目錄,並解壓;
tar -xzvf hbase-1.0.3-bin.tar.gz
2)修改HBase配置文件hbase-site.xml
vi /home/pp_res/hbase-1.0.3/conf/hbase-site.xml #在末尾添加configuration內容 <configuration> <property> <name>hbase.rootdir</name> <value>file:///data/hbase</value> </property> </configuration>
3)修改啟動文件hbase-env.sh的JAVA_HOME環境變量位置
vi /home/pp_res/hbase-1.0.3/conf/hbase-env.sh
#修改JAVA_HOME環境變量的值為JDK的安裝路徑; export JAVA_HOME=/usr/local/java/jdk1.8 #注:java_home的地址可通過echo $JAVA_HOME獲取;
4)配置環境變量
#配置環境變量HBASE_HOME vi /etc/profile #在末尾添加: export HBASE_HOME=/home/pp_res/hbase-1.0.3 #讓環境變量生效 source /etc/profile
5)啟動HBase
執行命令:
cd /home/pp_res/hbase-1.0.3/bin ./start-hbase.sh
6)驗證是否啟動成功:
jps
啟動成功會看到HMaster進程;
5)初始化HBase的pinpoint庫
執行pinpoint提供的Hbase初始化語句
執行命令:
cd /home/pp_res/hbase-1.0.3/bin ./hbase shell /home/pp_res/hbase-create.hbase
執行結果:
結果驗證:
方法1:進入數據庫,查看初始化表
#進入數據庫 cd /home/pp_res/hbase-1.0.3/bin ./hbase shell #查看初始化表 status "detailed"
方法2
登錄web,查看初始化數據是否成功;
HbaseWeb地址 : http://192.168.197.129:16010/master-status,IP地址為hbase數據庫所在服務器的IP地址
2.3 安裝pinpoint-collector
1)將tomcat包解壓至/data/service目錄下並重命名為pinpoint-collector
mkdir -pv /data/service cd /data/service tar -zxvf apache-tomcat-8.0.36.tar.gz -C /data/service mv apache-tomcat-8.0.36/ pinpoint-collector
2)修改tomcat端口避免與pinpoint-web沖突
cd /data/service/pinpoint-collector/conf vi server.xml <Server port="18005" shutdown="SHUTDOWN"> #修改端口 <Connector port="18085" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="18443" /> #修改端口 <!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> --> # 注釋該行
3)將pinpoint-collector解壓至pinpoint-collector程序目錄下
rm -rf /data/service/pinpoint-collector/webapps/* unzip /home/pp_res/pinpoint-collector-1.5.2.war -d /data/service/pinpoint-collector/webapps/ROOT
4)配置pinpoint-collector中hbase數據庫的地址
cd /data/service/pinpoint-collector/webapps/ROOT/WEB-INF/classes/vi hbase.properties hbase.client.host=192.168.197.129 # 修改這里讓collector向hbase存儲數據,如果pinpoint-collect和hbase在同一個服務器,可以配置為localhost #啟動hbase數據庫 cd /home/pp_res/hbase-1.0.3/bin ./start-hbase.sh
5)啟動pinpoint-collector
cd /data/service/pinpoint-collector/bin ./startup.sh
6)啟動驗證
tail -f /data/service/pinpoint-collector/logs/catalina.out 輸出日志沒有錯誤信息表示啟動成功;如果出現connect refuse,表示端口被占用,啟動失敗;
啟動成功日志:
2.4 安裝pinpoint-web
1)安裝tomcat
tar -xf /home/pp_res/apache-tomcat-8.0.36.tar.gz -C /data/service mv apache-tomcat-8.0.36/ pinpoint-web
2)配置tomcat
rm -rf /data/service/pinpoint-web/webapps/* vi /data/service/pinpoint-web/conf/server.xml <Server port="18006" shutdown="SHUTDOWN"> #修改端口 <Connector port="18081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="18446" /> #修改端口 <!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> --> # 注釋該行
3)將pinpoint-web解壓到tomcat中
unzip /home/pp_res/pinpoint-web-1.5.2.war -d /data/service/pinpoint-web/webapps/ROOT/
4)啟動pinpoint-web
cd /data/service/pinpoint-web/bin ./start.sh
5)啟動驗證
#查看日志,沒有錯誤日志輸出表示成功啟動 tail -f /data/service/pinpoint-web/logs/catalina.out
成功啟動日志:
查看頁面是否能正常打開(其中端口號為配置端口號時HTTP/1.1對應的端口號)
http://192.168.197.131:18081/(IP地址為pinpoint-web所在服務器的IP)
2.5 安裝pinpoint-agent(部署在被測應用系統)
1)搭建被測系統
將test.war、pinpoint-agent-1.5.2.tar.gz和apache-tomcat-8.0.36.tar.gz上傳到應用服務器並解壓(使用服務的啟動用戶上傳操作)
#將pinpoint-agent-1.5.2.tar.gz上傳到應用程序所在的目錄 cd /data/service tar -xf pinpoint-agent-1.5.2.tar.gz tar -xf apache-tomcat-8.0.36.tar.gz mv apache-tomcat-8.0.36.tar.gz tomcat8 unzip test.war -d /data/service/tomcat8/webapps/ROOT/
2)配置pinpoint-agent數據庫地址
cd /data/service/pinpoint-agent-1.5.2 vi pinpoint.config profiler.collector.ip=192.168.197.131 #hbase服務器地址
3)配置catalina.sh
#配置應用服務器啟動文件
cd /usr/local/apache/Tomcat vi catalina.sh
#在第20行添加探針
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/pinpoint-agent-1.5.2/pinpoint-bootstrap-1.5.2.jar" #pinpoint jar包地址
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=pp20210331" #id不可重復
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=eshop" #項目名稱
4)啟動系統
cd /data/service/tomcat8/bin ./startup.sh
5)啟動驗證
1)查看日志
tail -f /data/service/tomcat8/logs/catalina.out
2)瀏覽器訪問系統
成功啟動頁面:
3、pinpoint監控
1)通過接口多次訪問系統
pinpoint數據采集需要多次調取事務才會觸發,所以需要通過接口多次訪問系統后,才能監控到數據;
2)查看監控
訪問pinpoint-web地址:http://192.168.197.131:18081/
項目1:
項目2: