pinpoint安装流程
# 1,介绍。
pinpoint 是开源在 github 上的一款 APM 监控工具,它是用 Java 编写的,用于大规模分布式系统监控。它对性能的影响最小(只增加约 3%资源利用率),安装 agent 是无侵入式的,只需要在被测试的 Tomcat 中加上 3 句话,打下探针,就可以监控整套程序了。这篇 Blog 主要是想记录一下它安装的过程,方便日后查阅。
# 2,开源 APM 架构对比。
# 3,pinpoint 架构。
# 4,相关软件下载
# 1,hbase
下载地址:http://archive.apache.org/dist/hbase/1.1.5/
# 2,pinpoint 相关包
下载地址:https://github.com/naver/pinpoint/releases/
# 3,汇总进百度云
因为 pinpoint 是在 GitHub 上,下载相当慢,因此这里整理到百度云方便下载。
其中提取码可通过如下方式进行获取:
百度云链接提取码:228k
# 5,部署 hbase。
环境依赖:jdk。需要在以下操作之前解决好此依赖问题。
pinpoint 收集来的测试数据,主要是存在 Hbase 数据库的。所以它可以收集大量的数据,可以进行更加详细的分析。
# 1,解压部署
tar xf hbase-1.1.5-bin.tar.gz
mkdir /usr/local/ishangjie/pinpoint
mv hbase-1.1.5 ../ishangjie/pinpoint/
2
3
# 2,修改 hbase 配置
1,配置 java 环境信息。
vim hbase-1.1.5/conf/hbase-env.sh
在文件尾部加入下边配置
export JAVA_HOME=/usr/local/jdk1.8.0_144
2
3
4
2,配置数据存储路径。
这步不建议操作,很奇怪我做了之后反而不能用了!
vim hbase-1.1.5/conf/hbase-site.xml
修改尾部文件内容如下:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///usr/local/ishangjie/pinpoint/hbase-1.1.5/hbase</value>
</property>
</configuration>
2
3
4
5
6
7
8
9
10
11
# 3,启动 hbase
./hbase-1.1.5/bin/start-hbase.sh
查看 Hbase 是否启动成功,如果启动成功的会看到”HMaster” 的进程
[root@ald-19-server bin]$jps
5108 Jps
22775 Bootstrap
23448 Bootstrap
4686 HMaster
2
3
4
5
6
也可以通过访问其服务来确认是否成功。
192.168.10.19:16010 (opens new window)
# 4,默认数据初始化。
./hbase-1.1.5/bin/hbase shell /opt/hbase-create.hbase
初始数据脚本
:
脚本已放置在个人 Github 中,点击可跳转查看。
稍等一分钟,会有一个初始的过程。完成之后可以进入看一下数据是否成功导入。
./hbase-1.1.5/bin/hbase shell
输入”status 'detailed'
“可以查看刚才初始化的表,是否存在.
或者通过 web 查看是否成功。
http://192.168.10.19:16010/master-status
# 6,部署 pinpoint 管理端。
# 1,部署。
mv pinpoint-collector-1.8.0-RC1.war /usr/local/ishangjie/pinpoint/tomcat-collector/webapps/ROOT.war
# 2,启动。
/usr/local/ishangjie/pinpoint/tomcat-collector/bin/startup.sh
通过日志查看启动是否正常。
# 7,部署 pinpoint 的 web 端
# 1,部署。
mv pinpoint-web-1.8.0-RC1.war /usr/local/ishangjie/pinpoint/tomcat-web/webapps/ROOT.war
# 2,启动。
/usr/local/ishangjie/pinpoint/tomcat-web/bin/startup.sh
# 3,一些说明
[root@ald-19-server logs]$ll /usr/local/ishangjie/pinpoint/tomcat-web/webapps/ROOT/WEB-INF/classes/
total 84
-rw-r--r-- 1 root root 889 Aug 13 15:33 applicationContext-cache.xml
-rw-r--r-- 1 root root 3684 Aug 13 15:33 applicationContext-dao-config.xml
-rw-r--r-- 1 root root 2762 Aug 13 15:33 applicationContext-datasource.xml
-rw-r--r-- 1 root root 8679 Aug 13 15:33 applicationContext-hbase.xml
-rw-r--r-- 1 root root 487 Aug 13 15:33 applicationContext-web-namespace.xml
-rw-r--r-- 1 root root 942 Aug 13 15:33 applicationContext-websocket.xml
-rw-r--r-- 1 root root 10507 Aug 13 15:33 applicationContext-web.xml
drwxr-xr-x 2 root root 4096 Aug 15 09:17 batch
-rw-r--r-- 1 root root 149 Aug 13 15:33 batch.properties
drwxr-xr-x 3 root root 22 Aug 15 09:17 com
-rw-r--r-- 1 root root 682 Aug 13 15:33 ehcache.xml
-rw-r--r-- 1 root root 1125 Aug 13 15:33 hbase.properties
-rw-r--r-- 1 root root 154 Aug 13 15:33 jdbc.properties
-rw-r--r-- 1 root root 3189 Aug 13 15:33 log4j.xml
drwxr-xr-x 2 root root 104 Aug 15 09:17 mapper
-rw-r--r-- 1 root root 1563 Aug 13 15:33 mybatis-config.xml
-rw-r--r-- 1 root root 3690 Aug 13 15:33 pinpoint-web.properties
-rw-r--r-- 1 root root 157 Aug 13 15:33 project.properties
-rw-r--r-- 1 root root 2429 Aug 13 15:33 servlet-context.xml
drwxr-xr-x 2 root root 90 Aug 15 09:17 sql
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
- hbase.properties 配置我们 pp-web 从哪个数据源获取采集数据,这里我们只指定 Hbase 的 zookeeper 地址。
- jdbc.properties pp-web 连接自身 Mysql 数据库的连接认证配置。
- sql 目录 pp-web 本身有些数据需要存放在 MySQL 数据库中,这里需要初始化一下表结构。
- pinpoint-web.properties 这里 pp-web 集群的配置文件,如果你需要 pp-web 集群的话。
- applicationContext-* .xml 这些文件在后续的调优工作中会用到。
- log4j.xml 日志相关配置。
此时可以根据配置的 web 服务端口进行访问了。
http://192.168.10.19:8180/#/main
这个地方我想,控制节点与 web 是可以使用同一个 tomcat 的,然后用一个端口不用的目录进行访问。
# 8,客户端部署
客户端是整个监控系统成立的抓手,通过程序启动的时候指定到客户端的程序,从而将数据发送到控制节点保存到 hbase,然后再由 web 端展示出来。
# 1,部署。
mv pinpoint-agent-1.8.0-RC1.tar.gz /usr/local/ishangjie/pinpoint/pp-agent
# 2,配置。
vim /usr/local/ishangjie/pinpoint/pp-agent/pinpoint.config
修改collector.ip为对应部署的机器(在第8行)
profiler.collector.ip=192.168.10.19
2
3
4
5
# 3,让程序加载客户端
1,如果是 tomcat 方式启动。
修改启动文件配置信息。
vim /usr/local/tomcat/bin/catalina.sh
在文件20行处加入如下内容:
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/ishangjie/pinpoint/pp-agent/pinpoint-bootstrap-1.8.0-RC1.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=26test"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=26test"
2
3
4
5
6
7
然后启动 tomcat,数据就会推送过去了。
2,如果是微服务方式启动。
nohup java -javaagent:/usr/local/ishangjie/pinpoint/pp-agent/pinpoint-bootstrap-1.8.0-RC1.jar -Dpinpoint.agentId=20-gateway -Dpinpoint.applicationName=20-gateway -jar -Xms128m -Xmx128m -XX:PermSize=128M -XX:MaxPermSize=128m test.jar --spring.profiles.active=test &
启动的时候将对应参数加上即可。
# 4,网络问题排查
如果是异地主机监控,那么可以通过下边方式进行检测网络连通性是否可用。
参考官网:http://naver.github.io/pinpoint/troubleshooting_network.html
使用如下命令进行检测:
java -jar pinpoint-tools-1.8.0-RC1.jar /usr/local/ishangjie/pinpoint/pp-agent/pinpoint.config
其中的 jar 包在 agent 的 tool 目录下。
如果看到如下输出,则说明可用。
UDP-STAT:// 192.168.10.19
=> 192.168.10.19:9995 [SUCCESS]
UDP-SPAN:// 192.168.10.19
=> 192.168.10.19:9996 [SUCCESS]
TCP:// 192.168.10.19
=> 192.168.10.19:9994 [SUCCESS]
2
3
4
5
6
7
8
# 9,监控效果
# 10,参考链接
1,pinpoint 安装部署 (opens new window)
2,[APM pinpoint 部署](http://tonylit.me/2018/04/13/APM pinpoint 部署/)