pinpoint1.8.5安装及使用指南
简介
pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的。
各大APM工具,几乎都是根据google这篇经典的Dapper论文而来,一定要读一读。这里是它的源文地址:https://research.google.com/pubs/pub36356.html,感谢这位同学的翻译:http://bigbully.github.io/Dapper-translation/
pinpoint提供了一些功能:
- 服务映射:通过可视化其组件如何互连来了解任何分布式系统的关联关系。单击节点可显示有关组件的详细信息,例如其当前状态和事务计数。
- 实时的活跃线程数
- 请求/响应散点图
- 调用栈
- 查看有关应用程序的其他详细信息,例如CPU使用率,内存/垃圾收集,TPS和JVM参数

整个pinpoint架构分为3部分:pinpoint-collector、pinpoint-agent、pinpoint-webUI。
pinpoint-agent:用来收集单个应用的信息,并将收集好的应用信息发送到pinpoint-collector中
pinpoint-collector:用来处理pinpoint-agent发送过来的信息,并将信息收集好之后存储到HBase中
pinpoint-webUI:查找出HBase中的数据并展示
所以我这里需要准备两台机器:
10.200.201.xxx:用于安装pinpoint-collector、pinpoint-webUI、HBase
10.200.201.yyy:用于安装pinpoint-agent,负责收集应用的信息
环境安装
安装jdk
我这里用的是rpm包直接安装的:rpm -ivh jdk-8u171-linux-x64.rpm
安装好后配置一下JAVA_HOME:
使用vim配置一下环境变量:
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_45
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
然后加载一些profile文件:
source /etc/profile
安装HBase
这里有个对照图:

由上面我们可以看到HBase我们需要安装1.2.x版本的
下载地址:
http://archive.apache.org/dist/hbase/
我这里下载的是1.2.12版本的。
- 将Hbse放到指定目录
cd /app/install
tar -zxvf hbase-1.2.12-bin.tar.gz
- 修改配置信息
修改hbase-env.sh
vim /app/install/hbase-1.2.12/conf/hbase-env.sh
#加入JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_45
修改hbase-site.xml
vim /app/install/hbase-1.2.12/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///app/data/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/app/data/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>Property from ZooKeeper'sconfig zoo.cfg. The port at which the clients will connect.
</description>
</property>
<!-- false是单机模式,true是分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
</configuration>
- 启动HBase
cd /app/install/hbase-1.2.12/bin
./start-hbase.sh
# 查看Hbase是否启动成功,如果启动成功的会看到"HMaster"的进程
[root@localhost bin]# jps
12075 Jps
11784 HMaster
#进入到hbase的bin目录中
cd /app/install/hbase-1.2.12/bin
#执行脚本
./bin/hbase shell /app/install/pinpoint/hbase/scripts/hbase-create.hbase
# 执行完了以后,进入Hbase
./hbase shell
#进入后可以看到Hbase的版本,还有一些相关的信息
2019-10-12 16:18:28,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
# 输入"status 'detailed'"可以查看刚才初始化的表,是否存在
hbase(main):002:0> status 'detailed'
也可以登录web,来查看HBase的数据是否初始化成功
http://10.200.201.xxx:16010/master-status

安装pinpoint-collector
制作一个tomcat容器,端口号为8081
#将pinpoint-collector的war包丢到Tomcat的webapps目录下
cp pinpoint-collector-1.8.5.war ../apache-tomcat-8081/webapps/
#将war包名字改一下
mv pinpoint-web-1.8.5.war pp-collector.war
#启动tomcat
./bin/startup.sh
# 查看日志,是否成功启动
tail -f ../logs/catalina.out
#如果hbase安装在别的机器下需要修改一下配置
cd /app/install/apache-tomcat-8081
vim webapps/pp-collector/WEB-INF/classes/hbase.properties
#修改hbase的ip和hbase所对应的端口号
hbase.client.host=10.200.201.xxx
hbase.client.port=2181
安装pinpoint-web
解压一个tomcat容器,端口号为8080
#将pinpoint-web放到tomcat的webapps容器中
cp pinpoint-web-1.8.5.war ../apache-tomcat-8080/webapps/
#修改一下war包名
mv pinpoint-web-1.8.5.war pp-web.war
#启动tomcat
./bin/startup.sh
# 查看日志,是否成功启动
tail -f ../logs/catalina.out
#如果hbase安装在别的机器下需要修改一下配置
cd /app/install/apache-tomcat-8080
vim webapps/pp-web/WEB-INF/classes/hbase.properties
#修改hbase的ip和hbase所对应的端口号
hbase.client.host=10.200.201.xxx
hbase.client.port=2181
然后可以在浏览器中:http://10.200.201.xxx:8080/pp-web/

部署pinpoint-agent采集监控数据
- 传入pinpoint-agent包
首先将pinpoint-agent-1.8.5.tar.gz传入到服务器10.200.201.yyy的/app/install/pinpoint-agent/中
然后执行tar -zxvf pinpoint-agent-1.8.5.tar.gz解压
- 配置pp-agent采集器
cd /app/install/pinpoint-agent
vim pinpoint.config
# 主要修改IP,只需要指定到安装pp-col的IP就行了,安装pp-col启动后,自动就开启了9994,9995,9996的端口了。这里就不需要操心了,如果有端口需求,要去pp-col的配置文件("pp-collector/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties")中,修改这些端口
profiler.collector.ip=10.200.201.xxx
- 如果监控的是tomcat
# 修改测试项目下的tomcat启动文件"catalina.sh",修改这个只要是为了监控测试环境的Tomcat,增加探针
vi catalina.sh
# 第一行是pp-agent的jar包位置
# 第二行是agent的ID,这个ID是唯一的,我是用pp + 今天的日期命名的,只要与其他的项目的ID不重复就好了
# 第三行是采集项目的名字,这个名字可以随便取,只要各个项目不重复就好了
CATALINA_OPTS="$CATALINA_OPTS -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=$AGENT_ID"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=$APPLICATION_NAME"
# 配置好了。就可以开始监控了,我们启动测试用的Tomcat的服务器
cd /data/pp-test/bin/
./startup.sh
# 查看启动日志,确实Tomcat启动
tail -f ../logs/catalina.out
- springboot包部署
如果是jar包部署,直接在启动命令加启动参数:
nohup java -javaagent:/app/install/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=$AGENT_ID -Dpinpoint.applicationName=$APPLICATION_NAME
功能设置
设置监控
如果按照上面的方法安装完了之后在进行监控设置的或者用户设置的时候会报错的:

所以需要配置一下mysql:
首先需要跑两个sql脚本:
https://github.com/naver/pinpoint/blob/master/web/src/main/resources/sql/CreateTableStatement-mysql.sql
https://github.com/naver/pinpoint/blob/master/web/src/main/resources/sql/SpringBatchJobRepositorySchema-mysql.sql
然后进入到pinpoint-web的war所在的tomcat的容器中,修改配置文件:WEB-INF/classes/jdbc.properties
并设值mysql的账号密码
jdbc.url=jdbc:mysql://localhost:13306/pinpoint?characterEncoding=UTF-8
jdbc.username=admin
jdbc.password=admin
我们可以在application里面给不同的应用设置不同的提醒规则,具体的提醒规则如下:

SLOW COUNT:发送到应用程序的慢速请求数超过配置的阈值时触发
SLOW RATE
发送到应用程序的慢速请求的百分比(%)超过配置的阈值时触发
ERROR COUNT
发送到应用程序的失败请求数超过配置的阈值时触发。
ERROR RATE
发送到应用程序的失败请求的百分比(%)超过配置的阈值时触发。
TOTAL COUNT
发送到应用程序的所有请求数超过配置的阈值时触发。
SLOW COUNT TO CALLEE
当应用程序发送的慢速请求数超过配置的阈值时触发。 您必须在配置UI的“注释...”框中指定域或地址(IP,端口)
例如)www.naver.com,127.0.0.1:8080
SLOW RATE TO CALLEE
当应用程序发送的慢速请求的百分比(%)超过配置的阈值时触发。 您必须在配置UI的“注释...”框中指定域或地址(IP,端口)
ex) www.naver.com, 127.0.0.1:8080
ERROR COUNT TO CALLEE
当应用程序发送的失败请求数超过配置的阈值时触发。 您必须在配置UI的“注释...”框中指定域或地址(IP,端口)
ex) www.naver.com, 127.0.0.1:8080
ERROR RATE TO CALLEE
当应用程序发送的失败请求的百分比(%)超过配置的阈值时触发。 您必须在配置UI的“注释...”框中指定域或地址(IP,端口)
ex) www.naver.com, 127.0.0.1:8080
TOTAL COUNT TO CALLEE
当应用程序发送的所有请求数超过配置的阈值时触发。 您必须在配置UI的“注释...”框中指定域或地址(IP,端口)
ex) www.naver.com, 127.0.0.1:8080
HEAP USAGE RATE
当应用程序的堆使用率(%)超过配置的阈值时触发。
JVM CPU USAGE RATE
当应用程序的CPU使用率(%)超过配置的阈值时触发。
SYSTEM CPU USAGE RATE
当应用程序的CPU使用率(%)超过配置的阈值时发送警报。
DATASOURCE CONNECTION USAGE RATE
当应用程序的数据源连接使用率(%)超过配置的阈值时触发。
FILE DESCRIPTOR COUNT
当打开的文件描述符的数量超过配置的阈值时,发送警报。
然后需要在webapps/pp-web/WEB-INF/classes/batch.properties里面配置一下邮件服务器的信息:
pinpoint.url= #pinpoint-web server url
alarm.mail.server.url= #smtp server address
alarm.mail.server.port= #smtp server port
alarm.mail.server.username= #username for smtp server authentication
alarm.mail.server.password= #password for smtp server authentication
alarm.mail.sender.address= #sender's email address
#例如
pinpoint.url=http://pinpoint.com
alarm.mail.server.url=stmp.server.com
alarm.mail.server.port=583
alarm.mail.server.username=pinpoint
alarm.mail.server.password=pinpoint
alarm.mail.sender.address=pinpoint_operator@pinpoint.com
pinpoint1.8.5安装及使用指南的更多相关文章
- 在 Windows 上安装Rabbit MQ 指南
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...
- P6 EPPM 安装与配置指南 16 R1 2016.4
关于安装和 配置P6 EPPM 本指南告诉你如何自动 安装和配置您的应用程序. 在您开始之前,阅读 先决条件 P6 EPPM配置 (7页). 安装P6 EPPM 您将使用 安装程序 (窗口) . ...
- P6 EPPM 16.1 安装和配置指南 1
安装和配置指南下一topiccontents这些指南解释如何安装和配置数据库服务器,和P6 EPPM,模块:他们还提供在P6 EPPM能够解决所有模块的概述.标准指南帮助您配置和部署应用程序向导P6 ...
- P6 EPPM R16.1安装与配置指南(三)
P6 EPPM R16.1安装与配置指南(三) 解压:V137390-01.zip 修改 D:\P6_R161\p6suite\database\dbsetup.bat 的行 SET JAR_FI ...
- P6 EPPM R16.1安装与配置指南(二)
P6 EPPM R16.1安装与配置指南(一) http://www.cnblogs.com/endv/p/5634620.html P6 EPPM R16.1安装与配置指南(二) 环境变量配置 新建 ...
- P6 EPPM R16.1安装与配置指南(一)
标题 http://www.cnblogs.com/endv/p/5634620.html 安装与配置指南安装与配置指南(数据库)说明哪些How to set up the P6专业数据库和服务器.a ...
- Cadence仿真利器,Cadence SI / PI Analysis – Sigrity安装及破解指南
Sigrity提供了丰富的千兆比特信号与电源网络分析技术,包括面向系统.印刷电路板(PCB)和IC封装设计的独特的考虑电源影响的信号完整性分析功能. Sigrity分析技术与Cadence Alleg ...
- (转)在 Windows 上安装Rabbit MQ 指南
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...
- Mentor PADS 9.5下载安装及破解指南
Pads,是一款用于设计.模拟电子线路及设计电路板的电脑软件,原由Innoveda公司开发,其后改名为PowerPCB,在2002年4月Innoveda被Mentor Graphics收购,近年再次改 ...
随机推荐
- 字符串的api (基础)
一.基础 1.字符串.charAt(index) 根据下标获取字符串的某一个字符 应用: 判断字符串的首字母是否大写 任意给定的一串字母,统计字符串里面的大写字母和小写字母的个数 2.字符串.inde ...
- 环境变量_JAVA_LAUNCHER_DEBUG,它能给你更多的JVM信息
关于环境: 本文中的实战都是在docker容器中进行的,容器的出处请参照<在docker上编译openjdk8>一文,里面详细的说明了如何构造镜像和启动容器. 在上一篇文章<修改,编 ...
- ssh的秘钥认证
ssh秘钥认证简述 通常我们会使用x-shell.putty.MobaXterm等支持ssh连接的工具去登录服务器进行管理,而执行ssh命令.scp命令等从一台服务器登录另外一台服务器的时候,通常需要 ...
- Toad客户端连接Oracle数据库报错 ORA-12170:TNS:连接超时
Oracle 客户端连接Oracle数据库报错 ORA-12170:TNS:连接超时 排错步骤: 1. 查看网络是否畅通: 打开cmd,ping数据库IP 2. 查看端口是否畅通: 打开cmd ...
- 阿里yum源与华为yum源的配置
如何使用华为云提供的CentOS镜像源(x86_64)? 更新时间: 2019/08/16 11:17 查看PDF 分享 微博 分享文档到微博 微信 扫码分享文档 ...
- 互联网寒冬之泪:Android开发程序员,你够优秀吗?
我想每个开发者在学习成长的过程中,在面临技术难题的时候,都有经历过自我怀疑的过程,但是有时候这并不是你的错,大家都经历过如此的过程.我们作为一个开发者,在成长的过程中,总有一些小的胜利和小的沮丧,学着 ...
- .Net基础篇_学习笔记_第三天_Convert类型转换
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- SqlServer 2014还原数据库时提示:无法在已有的""上还原文件,请重新发出RESTORE语句,用WITH REPLACE来覆盖原先存在的文件
场景 SQL Server 2014在还原数据库时提示: 无法在已有的""上还原文件,请重新发出RESTORE语句,用WITH REPLACE来覆盖原先存在的文件... 实现 在还 ...
- Android入门学习教程PDF免费下载
场景 CSDN: https://blog.csdn.net/badao_liumang_qizhi 博客园: https://www.cnblogs.com/badaoliumangqizhi/ 哔 ...
- Containers vs Serverless:你选择谁,何时选择?
两者都是当今技术时代的热门话题,也都被视为是开发技术的竞争对手. 首先,还有相当多的好奇和担心.此外,两者都是可供工程师使用的.高效的.机器无关的抽象. 但是,在冠军之间,有一个不可逾越的鸿沟.你要么 ...