简介

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版本的。

  1. 将Hbse放到指定目录
cd /app/install
tar -zxvf hbase-1.2.12-bin.tar.gz
  1. 修改配置信息

    修改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>
  1. 启动HBase
cd /app/install/hbase-1.2.12/bin
./start-hbase.sh # 查看Hbase是否启动成功,如果启动成功的会看到"HMaster"的进程
[root@localhost bin]# jps
12075 Jps
11784 HMaster
  1. 初始化pinpoint库

    下载脚本:https://github.com/naver/pinpoint/blob/master/hbase/scripts/hbase-create.hbase
#进入到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采集监控数据

  1. 传入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解压

  1. 配置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
  1. 如果监控的是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
  1. 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安装及使用指南的更多相关文章

  1. 在 Windows 上安装Rabbit MQ 指南

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...

  2. P6 EPPM 安装与配置指南 16 R1 2016.4

       关于安装和 配置P6 EPPM 本指南告诉你如何自动 安装和配置您的应用程序. 在您开始之前,阅读 先决条件 P6 EPPM配置 (7页). 安装P6 EPPM 您将使用 安装程序 (窗口) . ...

  3. P6 EPPM 16.1 安装和配置指南 1

    安装和配置指南下一topiccontents这些指南解释如何安装和配置数据库服务器,和P6 EPPM,模块:他们还提供在P6 EPPM能够解决所有模块的概述.标准指南帮助您配置和部署应用程序向导P6 ...

  4. P6 EPPM R16.1安装与配置指南(三)

    P6 EPPM R16.1安装与配置指南(三) 解压:V137390-01.zip 修改 D:\P6_R161\p6suite\database\dbsetup.bat   的行 SET JAR_FI ...

  5. P6 EPPM R16.1安装与配置指南(二)

    P6 EPPM R16.1安装与配置指南(一) http://www.cnblogs.com/endv/p/5634620.html P6 EPPM R16.1安装与配置指南(二) 环境变量配置 新建 ...

  6. P6 EPPM R16.1安装与配置指南(一)

    标题 http://www.cnblogs.com/endv/p/5634620.html 安装与配置指南安装与配置指南(数据库)说明哪些How to set up the P6专业数据库和服务器.a ...

  7. Cadence仿真利器,Cadence SI / PI Analysis – Sigrity安装及破解指南

    Sigrity提供了丰富的千兆比特信号与电源网络分析技术,包括面向系统.印刷电路板(PCB)和IC封装设计的独特的考虑电源影响的信号完整性分析功能. Sigrity分析技术与Cadence Alleg ...

  8. (转)在 Windows 上安装Rabbit MQ 指南

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...

  9. Mentor PADS 9.5下载安装及破解指南

    Pads,是一款用于设计.模拟电子线路及设计电路板的电脑软件,原由Innoveda公司开发,其后改名为PowerPCB,在2002年4月Innoveda被Mentor Graphics收购,近年再次改 ...

随机推荐

  1. Prim && Kruskal

    Electrification Plan Prim #include<iostream> #include<cstring> using namespace std; cons ...

  2. 最短路问题---Dijkstra算法学习

    Dijkstra又称单源最短路算法,就从一个节点到其他各点的最短路,解决的是有向图的最短路问题 此算法的特点是:从起始点为中心点向外层层扩展,直到扩展到中终点为止. 该算法的条件是所给图的所有边的权值 ...

  3. 【Offer】[18-2] 【删除链表中重复的节点】

    题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3- ...

  4. java课堂测试样卷-----简易学籍管理系统

    程序设计思路:分别建立两个类:ScoreInformation类(用来定义学生的基本信息以及设置set和get函数)ScoreManagement类(用来定义实现学生考试成绩录入,考试成绩修改,绩点计 ...

  5. 对JDBC的使用理解

    JDBC,即Java连接数据库,是java针对数据库操作的一套API,使用JDBC对数据库进行操作时分为以下几步: 1.加载数据库驱动类 Class.forName("com.mysql.j ...

  6. oracle用imp导入dmp文件

    oracle命令行登录 sqlplus 用户名/密码 创建用户 create user 用户 identified by 密码 ; 创建表空间 create tablespace 表空间名 dataf ...

  7. day02小结

    数据类型的转换 1,自动类型转换 byte,short,char-->int-->long-->float-->double (1)byte与byte,short与short, ...

  8. Java单元测试之JUnit 5快速上手

    前言 单元测试是软件开发中必不可少的一环,但是在平常开发中往往因为项目周期紧,工作量大而被选择忽略,这样往往导致软件问题层出不穷.线上出现的不少问题其实在有单元测试的情况下就可以及时发现和处理,因此培 ...

  9. 来几道水题 d050: 妳那裡現在幾點了?

    减去15即可(注意这个数小于15的情况) 题目:珊珊到了美国犹他州的杨百翰大学之后,文文禁不住对她的思念,常常想打电话给她,却又担心在美国的她是不是在睡觉.好不容易鼓起勇气打通了电话,第一句就先问:「 ...

  10. Git客户端下载

    链接:http://pan.baidu.com/s/1eRXsITO 密码:4i6e