天天看點

開源APM監控Pinpoint的快速部署和使用

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。歡迎通路我的部落格 https://blog.csdn.net/smooth00

       Pinpoint是用于大規模分布式系統的APM工具。它是在Dapper(一個由Google建構的分布式系統跟蹤基礎架構)之後建構的,為開發人員提供有關複雜分布式系統行為的更多資訊。

開源位址:

https://github.com/naver/pinpoint

       Pinpoint作為一款非常優秀的開源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           

啟動完後容器:

開源APM監控Pinpoint的快速部署和使用

用Rancher檢視能比較直覺:

開源APM監控Pinpoint的快速部署和使用

 安裝完後,就可以連接配接http://172.17.2.84:8079檢視,除了一個quickapp應用,什麼也沒有:

開源APM監控Pinpoint的快速部署和使用

三、部署監控代理

為了監控我們的應用(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:

開源APM監控Pinpoint的快速部署和使用

然後修改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了,那麼在界面上就能看到新追加的應用了:

開源APM監控Pinpoint的快速部署和使用

 對于微服務的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 選擇應用

開源APM監控Pinpoint的快速部署和使用

預設兩層展示

開源APM監控Pinpoint的快速部署和使用

調整層級深度:

示例為前端調用4層追溯,後端調用4層追溯(4層為最深層級)

開源APM監控Pinpoint的快速部署和使用

結果展示:

開源APM監控Pinpoint的快速部署和使用

在圖檔内按滑鼠滾輪調整圖檔大小。

連線上數字為調用次數

開源APM監控Pinpoint的快速部署和使用

選擇更多時間範圍(預設最新5分鐘)

開源APM監控Pinpoint的快速部署和使用

2. 檢視調用鍊

滑鼠按住右鍵,選中圖中區域,松開右鍵,則展示選中時間段調用層級

開源APM監控Pinpoint的快速部署和使用

展示結果:

開源APM監控Pinpoint的快速部署和使用

預設按耗時排序

選中某一調用,展示詳細調用鍊及耗時

開源APM監控Pinpoint的快速部署和使用

選中timelinetab可檢視耗時情況:

開源APM監控Pinpoint的快速部署和使用

3. 檢視錯誤資訊

3.1 選擇錯誤應用

機器應用抛出錯誤,機器應用會标紅

開源APM監控Pinpoint的快速部署和使用

3.2 檢視詳細資訊

選中應用,去除成功多選按鈕選中對勾,按住滑鼠右鍵,選中紅點範圍,松開滑鼠右鍵,即可檢視詳細錯誤資訊:

開源APM監控Pinpoint的快速部署和使用

結果為:

開源APM監控Pinpoint的快速部署和使用

選中某次錯誤請求,可在詳細清單内找到詳細錯誤資訊

4. 檢視應用情況

選中某一應用

單擊inspector

開源APM監控Pinpoint的快速部署和使用

選中某一機器id,時間段,可展示jvm詳細資訊

開源APM監控Pinpoint的快速部署和使用

其中内容包含:Jvm記憶體使用情況,Jvm永久帶使用占用空間,Cpu使用情況,每秒處理的消息數(S辨別作業系統,U辨別此應用),Jvm線程情況,單請求平均響應時間等。