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

# startWeblogic.sh
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

 

posted @ 2021-02-26 10:29  梦徒  阅读(6570)  评论(1编辑  收藏  举报