-
详解Node.js项目APM监控之New Relic
2021-01-02 01:15:53现在上一个项目,如果没有APM监控服务或应用的运行性能参数,等于是一架没有盲降系统的飞机正在盲降,结果会很悲催。出现了访问失效等问题时,都很难判定是性能瓶颈还是一个藏的深的bug,汇报的时候一顿眼晕,这样的... -
APM监控工具Pinpoint搭建
2019-09-18 05:35:14Pinpoint是什么Pinpoint是开源在github上的一款使用JAVA语言编写的APM监控工具,用于大规模分布式系统监控。它对性能的影响较小,只增加约3%的资源利用率,且agent安装是无侵入式的(只需在agent端tomcat中增加三行...一:Pinpoint简介与架构图示
- Pinpoint是什么
Pinpoint是开源在github上的一款使用JAVA语言编写的APM监控工具,用于大规模分布式系统监控。它对性能的影响较小,只增加约3%的资源利用率,且agent安装是无侵入式的(只需在agent端tomcat中增加三行配置,打下探针便可实现监控)。 - 官方架构图示
二:环境与软件准备
- 操作系统:CentOS 7.5
- 软件安装目录:/data/software/
- 软件包准备
jdk-8u211-linux-x64.tar.gz ——Java运行环境
apache-tomcat-8.5.40.tar.gz ——Web服务器
pinpoint-collector-1.8.3.war ——Pinpoint控制器
pinpoint-web-1.8.3.war ——Pinpoint展示页面
hbase-1.2.12-bin.tar.gz ——数据库
hbase-create.hbase ——hbase数据库初始化脚本
pinpoint-agent-1.8.3.tar.gz
注意:
(1) 软件版本需正确安装,兼容性关系参考如下链接:
https://github.com/naver/pinpoint
三:软件安装
-
JDK安装
cd /usr/local/
tar -xzvf jdk-8u211-linux-x64.tar.gz
ln -s jdk1.8.0_211/ jdk
vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATHsource /etc/profile
java –version
- Hbase数据库安装
2.1 解压Hbase并放入指定目录
cd /data/software/
tar -xzvf hbase-1.2.12-bin.tar.gz
2.2 修改Hbase配置文件
(1) 修改环境配置文件vim /data/software/hbase/conf/hbase-env.sh
export JAVA_HOME=/usr/local/jdk/
(2) 修改主配置文件,添加如下内容vim /data/software/hbase/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///data/hbase</value>
</property>
</configuration>
2.3 启动Hbasecd /data/software/hbase/bin/
./start-hbase.sh
[root@bx021015037097 bin]# jps ——验证启动状态
4516 HMaster2.4 初始化Hbase的Pinpoint库
cd /data/software/hbase/bin/
./hbase shell /data/software/hbase/hbase-create.hbase
2.5 验证Hbase数据库初始化是否成功
登陆WEB页面localhost:16010/master-status- Pinpoint-collector安装
3.1 Tomcat安装与配置
安装Tomcatcd /data/software/
tar -xzvf apache-tomcat-8.5.40.tar.gz
mv apache-tomcat-8.5.40 pp-collector
修改配置文件,指定端口号
cd /data/software/pp-collector/conf/
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
sed -i 's/redirectPort="8443"/redirectPort="18443"/g' server.xml
#sed -i "s/localhost/
ifconfig | grep -w "inet" | grep -v "127.0.0.1"| awk '{print $2}'
/g" server.xml
3.2 部署Pinpoint-collector.war
rm -rf /data/software/pp-collector/webapps/*
cd /data/software/pp-collector/webapps/
unzip pinpoint-collector-1.8.3.war -d ROOT/
3.3 启动Tomcat
cd /data/software/pp-collector/bin/
./startup.sh
查看端口是否启动即可
- Pinpoint-web安装
4.1 Tomcat安装与配置
安装Tomcatcd /data/software/
tar -xzvf apache-tomcat-8.5.40.tar.gz
mv apache-tomcat-8.5.40 pp-web
修改配置文件,指定端口号
sed -i 's/port="8005"/port="28005"/g' server.xml
sed -i 's/port="8080"/port="80"/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
#sed -i "s/localhost/
ifconfig | grep -w "inet" | grep -v "127.0.0.1"| awk '{print $2}'
/g" server.xml
4.2 部署Pinpoint-web.war
rm -rf /data/software/pp-web/webapps/*
cd /data/software/pp-web/webapps/
unzip pinpoint-web-1.8.3.war -d ROOT/
4.3 启动Tomcat
cd /data/software/pp-web/bin/
./startup.sh
4.4 访问Piinpoint 主界面
http://21.15.37.97:80- Pinpoint-agent安装与配置
5.1 pinpoint-agent安装cd /data/software/
tar -xzvf pinpoint-agent-1.8.3.tar.gz
修改agent配置文件,指定collector地址
mv pinpoint-agent-1.8.3 pp-agent
vim /data/software/pp-agent/pinpoint.config
profiler.collector.ip=collector的地址
5.2 配置需监测的Tomcat
(1)修改Tomcat启动脚本,并在第20行添加如下内容vim catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/data/software/pp-agent/pinpoint-bootstrap-1.8.3.jar" //指定pinpoint-agent的jar包地址
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=pp10471111" //指定agnet编号,此编号唯一,命名标准:pp+服务器IP
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName= MyTestPP " //采集项目名称,名称唯一, 命名规范:子系统英文名称
(2)重启被监测的Tomcat5.3 查看Pinpoint主页,发现该项目已经添加
- Pinpoint是什么
-
APM监控-Centos7安装pinpoint1.8.4监控
2020-02-28 18:30:03pinpoint是用JAVA编写开源在GitHub上的一款APM监控工具,用于大规模分布式系统 对系统的影响小(只增加%3的资源利用率) agent端探针是无侵入式的,只需要在被检测的项目上打下探针,就可以监控整套Java程序了 通过...文章目录
1.简介
pinpoint是用JAVA编写开源在GitHub上的一款APM监控工具,用于大规模分布式系统 对系统的影响小(只增加%3的资源利用率) agent端探针是无侵入式的,只需要在被检测的项目上打下探针,就可以监控整套Java程序了 通过在分布式应用程序中跟踪事务来帮助分析系统的整体结构以及它们中的组件之间的相互关系 原理图:
Pinpoint-Collector:收集各种性能数据,并且发送数据存储到HBASE中
Pinpoint-Agent:和应用一起启动和应用共享JVM,发送数据给
Pinpoint-Web:从HBASE中读取数据,展示给用户。
HBase Storage:收集到的数据存到HBase中架构中各组件的角色:
pinpoint web UI显示的内容来自于后端的pinpoint web服务,
pinpoint web服务会去hbase中取数,
collector会把来自于agent的数据采集上来,由collector存入hbase(本案例采用hbase集群模式,不是单机HBASE)。
Demo展示时,可以把pp collector服务和pp web服务部署在同一个主机上,方便collector接收agent发来的数据后发给web服务,web服务再对hbase读/写;agent服务部署在应用端,方便将数据发送给collector。2.安装
用的2台Centos7的服务器
下载链接:https://github.com/naver/pinpoint/releases/tag/1.8.42.1获取需要的依赖包
进入/usr/local 创建一个pp_file的目录,用来存放依赖包
cd /usr/local/ mkdir pp_file
上传所需的依赖文件
Jdk8- Java运行环境 –
hbase-1.0 — 数据库,用来存储监控信息
tomcat8.0 — Web服务器
pinpoint-collector.war — pp的控制器
pinpoint-web.war — pp展示页面
使用进去该目录,使用 ls –l查看当前是否上传成功2.2配置JDK
这套APM系统主要是用JDK1.8来进行部署的,首先需要部署java环境
cd /usr/local/pp_file tar –zxvf jdk-8u45-linux-x64.tar.gz ls –l mv jdk1.8.0_45 /usr/local/
2.3配置java环境变量
vi /etc/profile
#在最后的一列添加以下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_45 export PATH=$PATH:$JAVA_HOME/bin
#测试是否安装成功
[root@ecs-69c7 local]# java -version java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
2.4安装HBASE
Pinpoint收集来的测试数据,主要是存在HBASE数据库中的,它可以收集量的数据,可以进行更加详细的分析
将HBASE解压,放入指定目录cd /usr/local/pp_file tar –zxvf hbase-1.0.3-bin.tar.gz mv hbase-1.0.3 /usr/local/hbase cd .. cd hbase vi hbase –env.sh
#在27行左右添加如下
export JAVA_HOME=/usr/local/jdk1.8.0_45
修改HBASE的配置信息
vi hbase-site.xml
#在结尾修改成如下,这里我们指定Hbase本地来存储数据,生产环境将数据建议存入HDFS中。
hbase.rootdir file:///data/hbase
初始化HBASE的pinpoint库
#执行pinpoint提供的Hbase初始化语句./hbase shell /usr/local/pp_file/hbase-create.hbase
#执行完了以后,进入Hbase./hbase shell
#进入后可以看到Hbase的版本,还有一些相关的信息[root@ecs-69c7 bin]# ./hbase shell
2019-04-23 16:51:37,387 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicableHBase Shell; enter ‘help’ for list of supported commands.Type “exit” to leave the HBase ShellVersion 1.0.3, rf1e1312f9790a7c40f6a4b5a1bab2ea1dd559890, Tue Jan 19 19:26:53 PST 2016
#输入"status ‘detailed’"可以查看刚才初始化的表,是否存在hbase(main):001:0> status 'detailed'
version 1.0.30 regionsInTransitionmaster coprocessors: []1 live servers localhost:50887 1478538574709 requestsPerSecond=0.0, numberOfOnlineRegions=498, usedHeapMB=24, maxHeapMB=237, numberOfStores=626, numberOfStorefiles=0, storefileUncompressedSizeMB=0, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0, readRequestsCount=7714, writeRequestsCount=996, rootIndexSizeKB=0, totalStaticIndexSizeKB=0, totalStaticBloomSizeKB=0, totalCompactingKVs=0, currentCompactedKVs=0, compactionProgressPct=NaN, coprocessors=[MultiRowMutationEndpoint] “AgentEvent,1478539104778.aa1b3b14d0b48d83cbf4705b75cb35b7.”
可以登录Web界面来查看HBASE的数据是否初始化成功(差不多是16张表)
HbaseWeb:http://[server IP]:16010/master-status
3.安装Pinpoint –collector
3.1部署war包
#解压Tomcat,将Tomcat重命名移动到指定位置
cd /usr/local/pp_file tar -zxvf apache-tomcat-8.0.36.tar.gz mv apache-tomcat-8.0.36 /usr/local/pp_col
#修改pp-col的Tomcat的配置,主要修改端口,避免与pp-web的Tomcat的端口冲突。我在原本默认的端口前都加了1,下面是替换的shell命令。#【注意】最后一条是将tomcat的私有ip开放,需要将localhost替换成本机的ip,我本机的网卡是默认的,如果你本机的网卡不是eth0,需要进行相关的修改。或者直接用"vi"进去,修改localhost
cd /usr/local /pp-col/conf/ 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 sed -i 's/redirectPort="8443"/redirectPort="18443"/g' server.xml sed -i "s/localhost/`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | awk -F: '{print $2}'`/g" server.xml
#部署pinpoint-collector.war包
#【注意:如果没有unzip命令,可以 “yum install unzip” 】cd /usr/local/pp_file rm -rf /usr/local/pp-col/webapps/* unzip pinpoint-collector-1.8.4.war -d /usr/local/pp-col/webapps/ROOT #启动Tomcatcd /usr/local/pp-col/bin/ ./startup.sh
#查看日志,是否成功启动
tail -f ../logs/catalina.out
4.安装部署pinpoint-web
4.1部署war包
#解压Tomcat,将Tomcat重命名移动到指定位置
cd /usr/local/pp_file tar -zxvf apache-tomcat-8.0.36.tar.gz mv apache-tomcat-8.0.36 /usr/local/pp_web
#修改pp-web的Tomcat的配置,主要修改端口,避免与pp-col的Tomcat的端口冲突。我在原本默认的端口前都加了2,下面是替换的shell命令#【注意】最后一条是将tomcat的私有ip开放,需要将localhost替换成本机的ip,我本机的网卡是默认的,如果你本机的网卡不是eth0,需要进行相关的修改。或者直接用"vi"进去,修改localhost
cd /usr/local/pp_web/conf/ 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 sed -i "s/localhost/`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | awk -F: '{print $2}'`/g" server.xml #部署pinpoint-collector.war包
#【注意:如果没有unzip命令,可以 “yum install unzip” 】
cd /usr/local/pp_file rm -rf /usr/local/pp_web/webapps/* unzip pinpoint-web-1.8.4.war -d /usr/local/pp_web/webapps/ROOT
#查看war包是否解压成功
[root@localhost conf]# ll /usr/local/pp_web/webapps/ROOT/WEB-INF/classes/ total 88 -rw-rw-r--. 1 root root 2164 Apr 7 2016 applicationContext-cache.xml # 这些 *.xml 文件在后续的调优工作中会用到。 -rw-rw-r--. 1 root root 3649 Apr 7 2016 applicationContext-dao-config.xml -rw-rw-r--. 1 root root 1490 Apr 7 2016 applicationContext-datasource.xml -rw-rw-r--. 1 root root 6680 Apr 7 2016 applicationContext-hbase.xml -rw-rw-r--. 1 root root 1610 Apr 7 2016 applicationContext-websocket.xml -rw-rw-r--. 1 root root 6576 Apr 7 2016 applicationContext-web.xmld rwxrwxr-x. 2 root root 4096 Apr 7 2016 batch -rw-rw-r--. 1 root root 106 Apr 7 2016 batch.propertiesd rwxrwxr-x. 3 root root 4096 Apr 7 2016 com -rw-rw-r--. 1 root root 682 Apr 7 2016 ehcache.xml -rw-rw-r--. 1 root root 1001 Apr 7 2016 hbase.properties #配置我们pp-web从哪个数据源获取采集数据,这里我们只指定Hbase的zookeeper地址。 -rw-rw-r--. 1 root root 153 Apr 7 2016 jdbc.properties #连接自身Mysql数据库的连接认证配置。 -rw-rw-r--. 1 root root 3338 Apr 7 2016 log4j.xmld rwxrwxr-x. 2 root root 4096 Apr 7 2016 mapper -rw-rw-r--. 1 root root 1420 Apr 7 2016 mybatis-config.xmld rwxrwxr-x. 3 root root 4096 Apr 7 2016 org -rw-rw-r--. 1 root root 630 Apr 7 2016 pinpoint-web.properties #这里pp-web集群的配置文件,如果你需要pp-web集群的话。 -rw-rw-r--. 1 root root 141 Apr 7 2016 project.properties -rw-rw-r--. 1 root root 3872 Apr 7 2016 servlet-context.xmld rwxrwxr-x. 2 root root 4096 Apr 7 2016 sql # sql目录 pp-web本身有些数据需要存放在MySQL数据库中,这里需要初始化一下表结构。
#启动Tomcat
cd /usr/local/pp_web/bin/ ./startup.sh
#查看日志,Tocmat是否启动成功
tail -f ../logs/catalina.out
#日志中出现下面这句话,说明已经启动成功了
org.apache.catalina.startup.Catalina.start Server startup in 79531 ms
#这时候我们可以访问一下这个地址,在浏览器中输入
http://[server IP]:28080"
就会出现主页面了
#如果访问不了的话,关闭防火墙[root@localhost conf]#/etc/init.d/iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ]
5.部署pp-agent采集监控数据
5.1 springboot包部署(jar包)
cd /usr/local/pp_file tar -zxvf pinpoint-agent-1.8.4.tar.gz mv pinpoint-agent-1.8.4 /usr/local/pp_agent cd pp_agent/conf vim pinpoint.config
主要修改IP,只需要指定到安装pp-col的IP就行了,安装pp-col启动后,自动就开启了9994,9995,9996的端口了。这里就不需要操心了,如果有端口需求,要去pp-col的配置文件(“pp-col/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties”)中,修改这些端口
profiler.collector.ip=127.0.0.1
开启TCP 端口:9994 9995 9996
UDP端口:9995 9996
然后测试agent端跟server端的连通性,会出现三个successful本人项目用的是jar包所以只需要在java项目的启动配置文件添加如下即可
-javaagent:/usr/local/pp-agent/pinpoint-bootstrap-1.8.4.jar -Dpinpoint.agentId=eureka1 -Dpinpoint.applicationName=eureka
第一个参数:pinpoint-bootstrap-1.8.4.jar的位置
第二个参数:这里的agentId必须唯一,标志一个jvm。
第三个参数:applicationName表示同一种应用:同一个应用的不同实例应该使用不同的agentId,相同的applicationName。我们在访问pp-web,可以发现它的下拉框中,多了一个app,然后点击就会显示如下
6.pinpoint删除应用程序名称和/或代理ID
一旦注册了应用程序名称和代理ID,它们就会保留在HBase中,直到它们的TTL过期(默认为1年)。但是,一旦不再使用它们,您可以使用管理API主动删除它们。
删除应用名称- http://192.168.1.xx:8080/admin/removeApplicationName.pinpoint?applicationName=KaTeX parse error: Expected 'EOF', got '&' at position 17: …PPLICATION_NAME&̲password=PASSWORD
删除代理程序ID- http://192.168.1…xx:8080/admin/removeAgentId.pinpoint?applicationName=KaTeX parse error: Expected 'EOF', got '&' at position 17: …PPLICATION_NAME&̲agentId=AGENT_ID&password=$PASSWORD
(password参数的值是您admin.password在pinpoint-web.properties中定义的属性。保留此空白将使您无需密码参数即可调用管理API)默认密码admin< /string>< /string>
-
Pinpoint- APM监控平台搭建
2018-08-07 16:14:24pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测试的Tomcat中加上3句话,打下探针,...pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测试的Tomcat中加上3句话,打下探针,就可以监控整套程序了。
我安装它用到的2台 CentOS7.4 虚拟机,一台主要部署pinpoint的主程序,一台模拟测试环境。配置如下:
IP
操作系统
安装项
描述
私有2
CentOS7.4
pinpoint
pinpoint的web展示端,逻辑控制机,以及Hbase存储
私有1
CentOS7.4
pinpoint-agent
主要用来采集数据,发送给pinpoint处理
下面是官方架构图
1、测试资源准备
hbase-2.1.0-bin.tar.gz(http://hbase.apache.org/) hbase-create.hbase(https://github.com/naver/pinpoint/tree/master/hbase/scripts) pinpoint-collector-1.7.2.war(https://github.com/naver/pinpoint/releases/tag/1.7.3) pinpoint-web-1.7.2.war(https://github.com/naver/pinpoint/releases/tag/1.7.3) pinpoint-agent-1.7.2.tar.gz(https://github.com/naver/pinpoint/releases/tag/1.7.3) jdk1.8(http://blog.51cto.com/xqtesting/2055831)
2、部署过程(将以上安装包上传至服务器)
2.1、部署jdk
APM系统主要是用jdk1.8来进行部署的,首先要配置jdk的环境变量;
解压jdk文件
mkdir /usr/java tar -zxvf jdk-7u79-linux-x64.tar.gz –C /usr/java
配置java环境变量
vi /etc/profile,跳转到文件最后添加: export JAVA_HOME= /usr/java/jdk1.8.0_11 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使环境变量生效
Source /etc/profile
验证jdk是否安装成功
Javac Java -version
2.2、安装Hbase
pinpoint收集来的测试数据,主要是存在Hbase数据库的。所以它可以收集大量的数据,可以进行更加详细的分析。
2.2.1 将Hbase解压,并且放入指定目录
mkdir -p /data/service tar -zxvf hbase-1.0.3-bin.tar.gz -C /data/service/
2.2.2修改hbase-env.sh的JAVA_HOME环境变量位置
cd /data/service/hbase/conf/ vi hbase-env.sh,在27~28行左右的位置,修改如下
2.2.3修改Hbase的配置信息
vi hbase-site.xml,在结尾修改成如下,这里我们指定Hbase本地来存储数据,生产环境将数据建议存入HDFS中 <configuration> <property> <name>hbase.rootdir</name> <value>file:///data/service/hbase-2.1.0/data</value> </property> </configuration>
2.2.4 启动hbase
cd /data/service/hbase-1.0.3/bin/ ./start-hbase.sh
2.2.5查看Hbase是否启动成功
Jps
存在Hmaster进程说明启动成功
2.2.6初始化Hbase的pinpoint库
注意:执行pinpoint提供的Hbase初始化语句,这时会初始化一会
./hbase shell /home/pp_res/hbase-create.hbase
2.2.7初始化完成进入Hbase
./hbase shell
2.2.8查看当前初始化表是否存在
status 'detailed'
也可以登录web,来查看HBase的数据是否初始化成功:HbaseWeb : http://x.x.x.x:16010/master-status
2.3 Pinpoint Collector 收集端
部署在独立的Tomcat容器中,如 tomcat-pinpoint-collector
2.3.1创建目录pinpoint-collector,解压tomcat至该目录下
mkdir /data/service/tomcat-pinpoint-collector tar -zxvf apache-tomcat-8.0.35.tar.gz -C /data/service/tomcat-pinpoint-collector mv /data/service/tomcat-pinpoint-collector/apache-tomcat-8.0.35/* /data/service/tomcat-pinpoint-collector/
2.3.2 pinpoint-collector、pinpoint-web安装在同一台机器上,需要确保端口不会冲突,修改tomcat server.xml文件
在所有默认的端口前都加了1 <Server port="18005" shutdown="SHUTDOWN">(22行位置左右) <Connector port="18080" protocol="HTTP/1.1"(69行位置左右) connectionTimeout="20000" redirectPort="18443" /> <Connector port="18009" protocol="AJP/1.3" redirectPort="18443" />(91行位置左右)
2.3.3部署pinpoint-collector-1.7.3.war到tomcat并命名为ROOT
rm -rf /data/service/tomcat-pinpoint-collector/webapps/* unzip pinpoint-collector-1.7.3.war -d /data/service/tomcat-pinpoint-collector/webapps/ROOT
2.3.4修改hbase.properties(/data/service/tomcat-pinpoint-collector/webapps/ROOT/WEB-INF/classes/ hbase.properties)
# 修改hbase地址,本机默认即可 hbase.client.host=localhost hbase.client.port=2181
2.3.5修改pinpoint-collector.properties
pinpoint-collector.properties: 包含colletor的配置,在配置pinpoint agent时需要与之对应: collector.receiver.base.port(agent中是 profiler.collector.tcp.port - 默认: 9994) collector.receiver.stat.udp.port(agent中是 profiler.collector.stat.port - 默认: 9995) collector.receiver.span.udp.port(agent中是 profiler.collector.span.port - 默认: 9996)
2.4 Pinpoint Web
部署在独立的Tomcat容器中,如 tomcat-pinpoint-web
2.4.1创建目录pinpoint-web,解压tomcat至该目录下
mkdir /data/service/tomcat-pinpoint-web tar -zxvf apache-tomcat-8.0.35.tar.gz -d /data/service/tomcat-pinpoint-web mv /data/service/tomcat-pinpoint-web/apache-tomcat-8.0.35/* /data/service/tomcat-pinpoint-web/
2.4.2修改tomcat server.xml文件
在所有默认的端口前都加了2 <Server port="28005" shutdown="SHUTDOWN">(22行位置左右) <Connector port="28080" protocol="HTTP/1.1"(69行位置左右) connectionTimeout="20000" redirectPort="28443" /> <Connector port="28009" protocol="AJP/1.3" redirectPort="28443" />(91行位置左右)
2.4.3部署pinpoint-web-1.7.3.war到tomcat并命名为ROOT
rm -rf /data/service/tomcat-pinpoint-web/webapps/* unzip pinpoint-web-1.7.3.war -d /data/service/tomcat-pinpoint-web/webapps/ROOT
2.4.4修改hbase.properties(/data/service/tomcat-pinpoint-web/webapps/ROOT/WEB-INF/classes/ hbase.properties)
# 修改hbase地址,本机默认即可 hbase.client.host=localhost hbase.client.port=2181
2.4.5启动tomcat-pinpoint-collector、tomcat-pinpoint-web服务
sh /data/service/tomcat-pinpoint-collector/bin/startup.sh sh /data/service/tomcat-pinpoint-web/bin/startup.sh
2.4.6查看日志查看是否启动成功
tail -200f /data/service/tomcat-pinpoint-collector/logs/catalina.out tail -200f /data/service/tomcat-pinpoint-web/logs/catalina.out
2.4.7通过浏览器访问服务是否启动成功
浏览器访问:http://X.X.X.X:28080 说明服务启动成功
2.5Pinpoint Agent安装
2.5.1创建目录pinpoint-agent,将pinpoint-agent解压至该目录
mkdir /data/service/pinpoint-agent tar -zxvf pinpoint-agent-1.7.3.tar.gz -C /data/service/pinpoint-agent/
2.5.2修改配置文件pinpoint.config
Vi /data/service/pinpoint-agent/pinpoint.config # 修改为pinpoint-collector地址,本机可不配置 profiler.collector.ip= 47.92.66.102
2.5.3添加探针有两种方式
2.5.3.1 tomcat探针
修改部署项目的tomcat启动文件catalina.sh,增加探针,重启tomcat
# 设置pinpoint-agent jar包位置 JAVA_OPTS="$JAVA_OPTS -javaagent:/data/service/pinpoint-agent/pinpoint-bootstrap-1.7.3.jar" # 设置agent的ID JAVA_OPTS="$JAVA_OPTS -Dpinpoint.agentId=jenkins20180808" # 设置采集项目的名称,不能与其它项目重复 JAVA_OPTS="$JAVA_OPTS -Dpinpoint.applicationName=demo_jenkins"
2.5.3.2Spring Boot探针
java -javaagent:/opt/apps/pinpoint/pinpoint-agent/pinpoint-bootstrap-1.7.2.jar -Dpinpoint.agentId=pp-springboot -Dpinpoint.applicationName=springboot-app -jar spring-boot-demo-0.0.1-SNAPSHOT.jar
2.6注意事项
pinpoint-web、pinpoint-collector在同一台服务器时,要开放9994/9995/9996/9997端口,其中9994是pinpoint-collector的tcp端口,9995/9996是pinpoint-collector的udp端口;9997是web采集数据的tcp端口
-
开源APM监控Pinpoint的快速部署和使用
2018-12-20 15:21:36Pinpoint是用于大规模分布式系统的APM工具。它是在Dapper(一个由Google构建的分布式系统跟踪基础架构)... Pinpoint作为一款非常优秀的开源APM监控平台,和其他开源系统一样,最繁琐的应该是部署,但是如果你能通...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部署方式:https://github.com/naver/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线程情况,单请求平均响应时间等。
-
APM监控--(五)pinpoint使用手册
2018-04-09 14:51:42最近在使用pinpoint进行应用...0. 前提条件• 请参考接入《APM监控--(二)Pinpoint部署手册》pinpoint1. 查看调用关系1.1 访问地址http://yoururl1.2 选择应用默认两层展示调整层级深度:示例为前端调用4层追溯... -
APM监控Pinpoint( 以集成springboot项目为例 )-搭建hadoop单机版+hbase单机版+pinpoint整合springboot-...
2021-03-02 15:08:03APM监控Pinpoint( 以集成springboot项目为例 )-搭建hadoop单机版+hbase单机版+pinpoint整合springboot-附件资源 -
pinpoint接入mysql_APM监控之Pinpoint使用心得
2021-01-26 05:41:04“某服务挂了,报错信息看不出个所以然来,坐等大佬救场”“某个请求响应速度很慢,要查到是哪里卡壳了需要一层层往下查”“只懂得监控服务器的资源指标,遇到...那么,接下来给大家介绍分布式服务的APM监控工具,... -
new relic java_[Java教程]Node.js项目APM监控之New Relic
2021-02-26 19:22:49[Java教程]Node.js项目APM监控之New Relic02017-05-12 00:03:27现在上一个项目,如果没有APM监控服务或应用的运行性能参数,等于是一架没有盲降系统的飞机正在盲降,结果会很悲催。出现了访问失效等问题时,都很难... -
Node.js项目APM监控之New Relic
2017-05-11 16:36:00现在上一个项目,如果没有APM监控服务或应用的运行性能参数,等于是一架没有盲降系统的飞机正在盲降,结果会很悲催。出现了访问失效等问题时,都很难判定是性能瓶颈还是一个藏的深的bug,汇报的时候一顿眼晕,这样的... -
APM监控--(六)Dapper,大规模分布式系统的跟踪系统
2018-04-09 15:00:07目前apm监控一般都遵循Google公司发布的Dapper规范,特转载一篇,供广大网友交流概述当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能... -
iOS APM监控总览
2020-06-29 10:35:08APP APM考察指标主要包含卡顿、网络、crash、耗电量、CPU使用率、内存消耗等几个方面 -
Dockerfile配置APM监控实现Java容器的性能监控
2018-07-02 09:39:03通过Dockerfile可以用来构建容器镜像,我们一般也是通过这种方式来构建一个Tomcat应用服务容器,如果要实现对容器中的Tomcat服务(或是其他Java应用)进行APM(应用性能管理)监控,就需要我们在容器中放置javaagent... -
pinpoint 监控mysql_APM监控之Pinpoint使用心得
2021-01-19 14:37:51”“运维只有监控服务器的资源指标,单从服务器资源看不出为什么慢”“系统总是时不时抽风下,还能再抢救一下吗?。。。”“服务出错了,需要翻看下系统日志文件”特别是分布式服务系统中,如果出现性能问题,面对N... -
APM 监控方法拦截器
2017-01-19 09:37:53基础方法拦截APM内置的方法拦截器是com.navercorp.apm .bootstrap.interceptor.BasicMethodInterceptor这个拦截器不能在RPC边界的方法中使用,例如http client, http server。 这个拦截器的作用是在已有的Span中...