Pinpoint- APM监控平台搭建
pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的,只需要在被测试的Tomcat中加上3句话,打下探针,就可以监控整套程序了。 我安装它用到的2台 CentOS7.4 虚拟机,一台主要部署pinpoint的主程序,一台模拟测试环境。配置如下:IP...
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端口
更多推荐
所有评论(0)