1.前期准备
1.1准备三台服务器,分别用来安装pinpoint和pinpoint-agent和hbase、zookeeper
我安装它用到的3台服务器,一台主要部署pinpoint的主程序,一台主要部署pinpoint-agent
- jdk8 --- Java运行环境
- hbase-1.2 --- 数据库,用来存储监控信息
- tomcat8.0 --- Web服务器
- pinpoint-collector.war --- pp的控制器
- pinpoint-web.war --- pp展示页面
配置jdk1.8
注:博主通过二次编译安装,固需部署多套java;
这套APM系统主要是用jdk1.8来进行部署的,首先要配置jdk的环境变量
#Enironment
export JAVA_HOME=/usr/java/jdk1.8.0_144
export JAVA_6_HOME=/usr/java/jdk1.6.0_45
export CLASSPATH=.:$JAVA_6_HOME/jre/lib:$JAVA_6_HOME/lib:$JAVA_6_HOME/lib/tools.jar
export JAVA_7_HOME=/usr/java/jdk1.7.0_60
export CLASSPATH=.:$JAVA_7_HOME/jre/lib:$JAVA_7_HOME/lib:$JAVA_7_HOME/lib/tools.jar
export JAVA_8_HOME=/usr/java/jdk1.8.0_144
export CLASSPATH=.:$JAVA_8_HOME/jre/lib:$JAVA_8_HOME/lib:$JAVA_8_HOME/lib/tools.jar
export PATH=/data/soft/apache-maven-3.5.2/bin/:$PATH
2. 安装Hbase、zookeeper
安装此步骤略
初始化Hbase的pinpoint库
hbase shell /data/soft/pinpoint-1.7.1/hbase/scripts/hbase-create.hbase
3. 安装pinpoint-collector
3.1 部署war包
解压Tomcat,将Tomcat重命名移动到指定位置
cd /data/server/
tar -zxvf apache-tomcat-8.0.36.tar.gz
mv apache-tomcat-8.0.36/ /data/service/pp-col
修改pp-col的Tomcat的配置,主要修改端口,避免与pp-web的Tomcat的端口冲突。我在原本默认的端口前都加了1,下面是替换的shell命令。
【注意】最后一条是将tomcat的私有ip开放,需要将localhost替换成本机的ip,我本机的网卡是默认的,如果你本机的网卡不是eth0,需要进行相关的修改。或者直接用"vi"进去,修改localhost
cd /data/service/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 | awk '/eth0/{getline;gsub(/addr:/,"",$2);print $2}'`/g" server.xml
部署pinpoint-collector.war包
rm -rf /data/server/pp-col/webapps/*
mkdir /data/server/pp-col/webapps/ROOT
unzip pinpoint-collector-1.7.1.war -d /data/server/pp-col/webapps/ROOT
更改配置
cd /data/server/pp-col/webapps/ROOT/WEB-INF/classes
#修改hbase.properties 文件
hbase.client.host 设置为 hbase 所用的 zk 地址
#修改pinpoint-collector.properties文件
cluster.zookeeper.address 修改为给 Pinpoint 准备的 zk 地址
启动tomcat
4. 安装pinpoint-web
4.1 部署war包
解压Tomcat,将Tomcat重命名移动到指定位置
cd /data/server/
tar -zxvf apache-tomcat-8.0.36.tar.gz
mv apache-tomcat-8.0.36/ /data/service/pp-web
修改pp-web的Tomcat的配置,主要修改端口,避免与pp-col的Tomcat的端口冲突。我在原本默认的端口前都加了2,下面是替换的shell命令
【注意】最后一条是将tomcat的私有ip开放,需要将localhost替换成本机的ip,我本机的网卡是默认的,如果你本机的网卡不是eth0,需要进行相关的修改。或者直接用"vi"进去,修改localhost
cd /data/server/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 | awk '/eth0/{getline;gsub(/addr:/,"",$2);print $2}'`/g" server.xml
部署pinpoint-collector.war包
rm -rf /data/server/pp-web/webapps/*
mkdir /data/server/pp-web/webapps/ROOT
unzip pinpoint-web-1.7.1.war -d /data/server/pp-web/webapps/ROOT
这里说明一下:
- 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 日志相关配置。
更改配置
cd /data/server/pp-web/webapps/ROOT/WEB-INF/classes
#修改hbase.properties 文件
hbase.client.host 设置为 hbase 所用的 zk 地址
#修改pinpoint-web.propertiess文件
cluster.zookeeper.address 修改为给 Pinpoint 准备的 zk 地址
#修改jdbc.properties 文件
更改jdbc.url、jdbc.username、jdbc.password连接数据库信息
#修改batch.properties 文件
batch.enable=true
batch.server.ip=127.0.0.1
数据库导入
mysql -upinpoint -p pinpoint pinpoint < CreateTableStatement-mysql.sql
mysql -upinpoint -p pinpoint pinpoint < SpringBatchJobRepositorySchema-mysql.sql
启动tomcat
5. 部署pp-agent采集监控数据
部署采集器就很简单了,只需要加3句话就好了。我这边做一个测试的jetty,来模拟部署。
5.1 将测试需要的pp-agent拉到服务器上
5.2 配置pp-agent采集器
编辑配置文件
vim pinpoint.config
profiler.collector.ip=*.*.*.* #设置为collectorIP
修改测试项目下的jetty启动文件"catalina.sh",修改这个只要是为了监控测试环境的Tomcat,增加探针
- 第一行是pp-agent的jar包位置
- 第二行是agent的ID,这个ID是唯一的,我是用主机名命名的,只要与其他的项目的ID不重复就好了(注:名称最大为24位)
- 第三行是采集项目的名字,这个名字可以随便取,只要各个项目不重复就好了
监控jetty
重启jetty,打开pinpoint-web就可以自动收集;