版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。歡迎通路我的部落格 https://blog.csdn.net/smooth00
Pinpoint是用于大規模分布式系統的APM工具。它是在Dapper(一個由Google建構的分布式系統跟蹤基礎架構)之後建構的,為開發人員提供有關複雜分布式系統行為的更多資訊。
開源位址:
https://github.com/naver/pinpointPinpoint作為一款非常優秀的開源APM監控平台,和其他開源系統一樣,最繁瑣的應該是部署,但是如果你能通過Docker的方式進行部署,我們就可以感受到一鍵部署的便捷:
Docker鏡像位址:
https://hub.docker.com/u/pinpointdocker Docker-compose位址: https://github.com/naver/pinpoint-docker一、部署前準備
在Centos7系統上安裝Docker和docker-compose
yum update -y
yum install docker epel-release python-pip -y
pip install --upgrade pip
pip install docker-compose
對于docker-compose也可以安裝指定版本(比如最新版的,因為不同版本支援不同格式的docker-compose檔案)
yum update -y nss curl libcurl
sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
為了加速docker鏡像pull速度,可以修改daemon.json
# cat /etc/docker/daemon.json
{"registry-mirrors": ["http://579fe187.m.daocloud.io","https://pee6w651.mirror.aliyuncs.com"]}
啟動docker
systemctl enable docker
systemctl start docker
二、安裝Pinpoint
按照官網的docker部署方式:
(部署前把主控端防火牆都關了)
git clone https://github.com/naver/pinpoint-docker.git
cd Pinpoint-Docker
docker-compose pull && docker-compose up -d
直接這樣部署可能會有問題,比如我們隻在一台主控端上部署,我們可以用git指令下載下傳,或是用curl指令先下載下傳zip再解壓:
sudo curl -L https://github.com/naver/pinpoint-docker/archive/master.zip -o /opt/pinpoint-docker.zip
cd /opt
upzip pinpoint-docker.zip -d .
cd /opt/pinpoint-docker-master
編輯docker-compose.yml,将多個節點的zookeeper改成一個節點(注釋掉不需要的):
#zookeepers
zoo1:
image: zookeeper:3.4
restart: always
#hostname: zoo1
hostname: 172.17.2.84
environment:
ZOO_MY_ID: 1
#ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
ZOO_SERVERS: server.1=0.0.0.0:2888:3888
networks:
- pinpoint
#zoo2:
# image: zookeeper:3.4
# restart: always
# hostname: zoo2
# environment:
# ZOO_MY_ID: 2
# ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888
# networks:
# - pinpoint
#zoo3:
# image: zookeeper:3.4
# restart: always
# hostname: zoo3
# environment:
# ZOO_MY_ID: 3
# ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888
# networks:
# - pinpoint
如還有問題,請修改相對路徑為絕對路徑
...
volumes:
- /home/pinpoint/hbase
- /home/pinpoint/zookeeper
...
基本我在根目錄下,運作docker-compose up -d 就能完成docker叢集的部署(在背景進行),如果是想看清部署的整個過程,直接用指令:
docker-compose up
啟動完後容器:
用Rancher檢視能比較直覺:
安裝完後,就可以連接配接http://172.17.2.84:8079檢視,除了一個quickapp應用,什麼也沒有:
三、部署監控代理
為了監控我們的應用(tomcat、Java、weblogic等),就需要部署監控代理,這個非常簡單,首先是去官網下載下傳同版本的agent包:
https://github.com/naver/pinpoint/releases/download/1.8.0/pinpoint-agent-1.8.0.tar.gz将agent包解壓到應用(以tomcat為例)目錄下:
tar zxvf pinpoint-agent-1.8.0.tar.gz -C pinpoint-agent
修改配置檔案pinpoint.config,将collector的ip配置為監控收集服務pinpoint-collector的IP:
然後修改tomcat的啟動檔案catalina.sh,添加javaagent配置參數(這一點和其他商用APM監控工具一樣):
JAVA_OPTS="$JAVA_OPTS -javaagent:/usr/apache-tomcat-7.0.54/pinpoint-agent/pinpoint-bootstrap-1.8.0.jar"
JAVA_OPTS="$JAVA_OPTS -Dpinpoint.agentId=APM-104"
JAVA_OPTS="$JAVA_OPTS -Dpinpoint.applicationName=tomcat7-test"
除了javaagent參數,還有agentId參數(應用的唯一辨別,不允許和其他應用重名),和applicationName(應用名)。
配完後,就可以重新開機tomcat了,那麼在界面上就能看到新追加的應用了:
對于微服務的jar包也能進行監控:
java -javaagent:/mypath/pinpoint-agent/pinpoint-bootstrap-1.8.0.jar -Dpinpoint.agentId=APM-104 -Dpinpoint.applicationName=tomcat7-test -jar myapp.jar
四、使用手冊
1. 檢視調用關系
1.1 通路位址
http://yoururl
1.2 選擇應用
預設兩層展示
調整層級深度:
示例為前端調用4層追溯,後端調用4層追溯(4層為最深層級)
結果展示:
在圖檔内按滑鼠滾輪調整圖檔大小。
連線上數字為調用次數
選擇更多時間範圍(預設最新5分鐘)
2. 檢視調用鍊
滑鼠按住右鍵,選中圖中區域,松開右鍵,則展示選中時間段調用層級
展示結果:
預設按耗時排序
選中某一調用,展示詳細調用鍊及耗時
選中timelinetab可檢視耗時情況:
3. 檢視錯誤資訊
3.1 選擇錯誤應用
機器應用抛出錯誤,機器應用會标紅
3.2 檢視詳細資訊
選中應用,去除成功多選按鈕選中對勾,按住滑鼠右鍵,選中紅點範圍,松開滑鼠右鍵,即可檢視詳細錯誤資訊:
結果為:
選中某次錯誤請求,可在詳細清單内找到詳細錯誤資訊
4. 檢視應用情況
選中某一應用
單擊inspector
選中某一機器id,時間段,可展示jvm詳細資訊
其中内容包含:Jvm記憶體使用情況,Jvm永久帶使用占用空間,Cpu使用情況,每秒處理的消息數(S辨別作業系統,U辨別此應用),Jvm線程情況,單請求平均響應時間等。