pinpoint支持的模块
源码:https://github.com/naver/pinpoint
技术概述:https://skyao.gitbooks.io/learning-pinpoint/content/design/technical_overview.html
官网上介绍的信息
当前最新版本是1.8.4
1、popint的安装
安装的时候,我们准备了两台虚拟机用于安装
两台虚拟机在安装的时候一定要将虚拟机的防火墙和selinux权限给关闭
安装之前先给两台虚拟机安装jdk,这里jdk要求是1.8版本不能是jdk1.7,一台安装pinpoint-collect和pinpint-web,,一台安装point-agent和被监控的tomcat应用
安装之前首先要查看当前是否已经安装了jdk
rpm -qa | grep java
当前已经安装了jdk 1.6.0和jdk1.7.0版本,我们使用下面的两个命令将jdk卸载掉
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.i686
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686
接下来我们开始安装jdk1.8
首先使用下面的命令查看当前yum源中存在哪些jdk
[root@localhost 桌面]# yum list java*
我们在安装之前要更新yum源,,否则会出现下载包无法下载的问题
这里我们推荐使用网易163和中科大的yum源
网易
CentOS7
sudo wget -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
复制代码
CentOS6
sudo wget -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo
复制代码
CentOS5
sudo wget -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS5-Base-163.repo
复制代码
当前我机器是centos 6.5版本的,我们使用http://mirrors.163.com/.help/CentOS6-Base-163.repo这个yum源,我们在浏览器输入
这个时候会把
这个时候会下载CentOS6-Base-163.repo这个yum文件
文件的内容如下:
# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base - 163.com baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #released updates [updates] name=CentOS-$releasever - Updates - 163.com baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras - 163.com baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus - 163.com baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib - 163.com baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
我们进入到虚拟机yum文件所在的目录
cd /etc/yum.repos.d/
执行
[root@localhost yum.repos.d]# vi CentOS-Base.repo
我们将下载CentOS6-Base-163.repo文件的内容全部替换CentOS-Base.repo 的内容
然后执行
[4] 运行yum makecache生成缓存 [root@localhost yum.repos.d]# yum clean all [root@localhost yum.repos.d]# yum makecache [5] 更新系统(可选) [root@localhost yum.repos.d]# yum -y update
这样我们的yum源就设置成功了
设置成功之后,接下来要安装jdk 1.8
直接执行下面的命令查看当前网易yum源中存在哪些jdk
yum list java*
我们看到当前有jdk 1.8
我们直接使用下面的命令安装,就会自动帮助我们安装对于的jdk
yum install jdk-1.8.0
记得虚拟机一定要关闭防火墙个selinux的安全
centOS 6.5关闭防火墙步骤 关闭命令: service iptables stop 永久关闭防火墙:chkconfig iptables off 两个命令同时运行,运行完成后查看防火墙关闭状态 service iptables status
Centos6.5
关闭selinux:
永久有效:修改/etc/sysconfig/selinux
将文本中的SELINUX=enforcing,改为SELINUX=disabled。然后重启
全链路监控系统Pinpoint的hbase安装和初始化
pinpoint收集来的测试数据,主要是存在Hbase数据库的。所以它可以收集大量的数据,可以进行更加详细的分析
进入到apache的官网,进入到最下面找到hbase,点击进入
这里选择1.2.7版本下载二进制的bin的安装包
这里我们得到二进制的url,可以使用wget来下载
wget http://117.128.6.17/cache/archive.apache.org/dist/hbase/1.2.7/hbase-1.2.7-bin.tar.gz?ich_args2=468-06114512036078_ea9442618a5488bca925de6ba7864bb7_10001002_9c896229d7c5f2d0923a518939a83798_b8cae780849f9b43ef308a37cc5176d8
我们把habase安装到我们的192.168.0.113这台机器上,hbase的安装还需要mysql数据库,我们就不再虚拟机中安装了,我们在本地的电脑上安装
我们在根目录下创建一个data文件夹,我们把hbase解压到改目录下
[root@localhost 桌面]# mkdir /data [root@localhost 桌面]# mv hbase-1.2.7-bin.tar.gz /data/hbase.tar.gz [root@localhost 桌面]# cd /data [root@localhost data]# ls
接下来执行解压的操作
[root@localhost data]# tar -zxvf hbase.tar.gz
然后将解压之后的文件夹进行重新命名为hbase-app
[root@localhost data]# mv hbase-1.2.7/ hbase-app/
接下来我们要在hbase中配置jdk的安装路径
[root@localhost data]# which java /usr/bin/java [root@localhost data]# ls -l /usr/bin/java lrwxrwxrwx 1 root root 22 8月 6 09:46 /usr/bin/java -> /etc/alternatives/java [root@localhost data]# ls -l /etc/alternatives/java lrwxrwxrwx 1 root root 44 8月 6 09:46 /etc/alternatives/java -> /usr/lib/jvm/jre-1.8.0-openjdk.i386/bin/java [root@localhost data]# cd /usr/lib/jvm/jre-1.8.0-openjdk.i386/bin/java bash: cd: /usr/lib/jvm/jre-1.8.0-openjdk.i386/bin/java: 不是目录 [root@localhost data]# cd /usr/lib/jvm/jre-1.8.0-openjdk.i386/ [root@localhost jre-1.8.0-openjdk.i386]# ls bin lib [root@localhost jre-1.8.0-openjdk.i386]# cd .. [root@localhost jvm]# ls java-1.8.0-openjdk-1.8.0.222.b10-0.el6_10.i386 jre-1.8.0 jre-1.8.0-openjdk.i386 jre jre-1.8.0-openjdk-1.8.0.222.b10-0.el6_10.i386 jre-openjdk [root@localhost jvm]#
通过上面的命令不断进行ls -l 软连接的引用查找到当前java的真实目录为/usr/lib/jvm/jre-1.8.0-openjdk.i386/
进入到base-app/conf目录,执行vi hbase-site.xml
在改文件夹中增加下面的内容
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.i386/
接下来还需要修改hbase的配置信息,进入到/data/hbase-app/conf目录下我们把hbase的配置信息放在/data/hbase-data目录下
vi hbase-site.xml
<configuration> <property> <name>hbase.rootdir</name> <value>file:///data/hbase-data</value> </property> </configuration>
hbase-site.xml还可以hbase的zookeeper的集群,这里我们使用单机版本没有使用,接下来我们创建
/data/hbase-data这个目录
[root@localhost data]# mkdir hbase-data [root@localhost data]# ls hbase-app hbase-data [root@localhost data]#
接下来,完成上面的配置之后就可以启动hbase了,进入到目录
/data/hbase-app/bin
执行
[root@localhost bin]# ./start-hbase.sh
这样就表示hbase启动成功了
接下来要进行hbase的初始化操作
我们进入到popint的git官网的地址:https://github.com/naver/pinpoint/tree/master/hbase/scripts
hbase-create.hbase中脚本值如下:
create 'AgentInfo', { NAME => 'Info', TTL => 31536000, DATA_BLOCK_ENCODING => 'PREFIX' } create 'AgentStatV2', { NAME => 'S', TTL => 5184000, DATA_BLOCK_ENCODING => 'PREFIX' }, {SPLITS=>["x01x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x02x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x03x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x04x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x05x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x07x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x08x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x09x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0bx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0dx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0fx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x10x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x11x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x12x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x13x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x14x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x15x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x16x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x17x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x18x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x19x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1bx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1dx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1fx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x20x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x21x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x22x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x23x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x24x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x25x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x26x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x27x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x28x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x29x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2bx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2dx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2fx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x30x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x31x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x32x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x33x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x34x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x35x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x36x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x37x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x38x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x39x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3bx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3dx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3fx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00"]} create 'ApplicationStatAggre', { NAME => 'S', TTL => 5184000, DATA_BLOCK_ENCODING => 'PREFIX' }, {SPLITS=>["x01x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x02x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x03x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x04x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x05x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x07x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x08x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x09x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0bx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0dx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0fx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x10x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x11x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x12x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x13x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x14x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x15x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x16x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x17x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x18x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x19x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1bx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1dx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1fx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x20x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x21x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x22x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x23x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x24x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x25x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x26x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x27x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x28x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x29x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2bx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2dx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x2fx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x30x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x31x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x32x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x33x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x34x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x35x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x36x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x37x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x38x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x39x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3bx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3dx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x3fx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00"]} create 'ApplicationIndex', { NAME => 'Agents', TTL => 31536000, DATA_BLOCK_ENCODING => 'PREFIX' } create 'AgentLifeCycle', { NAME => 'S', TTL => 5184000, DATA_BLOCK_ENCODING => 'PREFIX' } create 'AgentEvent', { NAME => 'E', TTL => 5184000, DATA_BLOCK_ENCODING => 'PREFIX' } create 'StringMetaData', { NAME => 'Str', TTL => 15552000, DATA_BLOCK_ENCODING => 'PREFIX' }, {SPLITS=>["x01x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x02x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x03x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x04x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x05x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x07x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00"]} create 'ApiMetaData', { NAME => 'Api', TTL => 31536000, DATA_BLOCK_ENCODING => 'PREFIX' }, {SPLITS=>["x01x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x02x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x03x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x04x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x05x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x07x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00"]} create 'SqlMetaData_Ver2', { NAME => 'Sql', TTL => 15552000, DATA_BLOCK_ENCODING => 'PREFIX' }, {SPLITS=>["x02x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x04x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x08x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x10x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x12x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x14x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x16x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x18x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00"]} create 'TraceV2', { NAME => 'S', TTL => 5184000, DATA_BLOCK_ENCODING => 'PREFIX' }, {NUMREGIONS => 256, SPLITALGO => 'UniformSplit'} create 'ApplicationTraceIndex', { NAME => 'I', TTL => 5184000, DATA_BLOCK_ENCODING => 'PREFIX' }, {SPLITS=>["x02x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x04x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x08x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x10x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x12x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x14x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x16x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x18x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00"]} create 'ApplicationMapStatisticsCaller_Ver2', { NAME => 'C', TTL => 5184000, VERSIONS => 1, DATA_BLOCK_ENCODING => 'PREFIX' }, {SPLITS=>["x02x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x04x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x08x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x10x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x12x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x14x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x16x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x18x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00"]} create 'ApplicationMapStatisticsCallee_Ver2', { NAME => 'C', TTL => 5184000, VERSIONS => 1, DATA_BLOCK_ENCODING => 'PREFIX' }, {SPLITS=>["x02x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x04x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x08x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x0ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x10x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x12x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x14x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x16x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x18x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ax00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1cx00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x1ex00x00x00x00x00x00x00x00x00x00x00x00x00x00x00"]} create 'ApplicationMapStatisticsSelf_Ver2', { NAME => 'C', TTL => 5184000, VERSIONS => 1, DATA_BLOCK_ENCODING => 'PREFIX' }, {SPLITS=>["x01x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x02x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x03x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x04x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x05x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x06x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x07x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00"]} create 'HostApplicationMap_Ver2', { NAME => 'M', TTL => 5184000, VERSIONS => 1, DATA_BLOCK_ENCODING => 'PREFIX' }, {SPLITS=>["x01x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x02x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00","x03x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00"]} list exit
我们进入到/data/hbase-app目录下,在这个目录下执行
[root@localhost hbase-app]# vi hbase-create.hbase
把上面脚本的内容存储到hbase-create.hbase中,接下来执行初始化脚本的操作
我们进入到
/data/hbase-app/bin目录下,执行
[root@localhost bin]# ./hbase shell /data/hbase-app/hbase-create.hbase
安装之后,我们可以通过web页面来查看hbase是否安装成功
能看到agentInfo这些表
接下来,我们开始安装pinpoint,进入到pinpoint发布的网站地址:https://github.com/naver/pinpoint/releases
这里我们安装最新的1.8.4版本
我们可以看到collect和web都是war包,因此我们运行起来之前要先安装tomcat。我们在/data目录下创建一个tomcat的目录
[root@localhost bin]# cd /data
[root@localhost data]# mkdir tomcat
[root@localhost data]# cd tomcat/
我们进入到apache的官网点击tomcat进入
我们选择要下载的tar.gz版本,点击右键复制下载地址
在虚拟机中http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.43/bin/apache-tomcat-8.5.43.tar.gz 使用wget进行下载
[root@localhost tomcat]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.43/bin/apache-tomcat-8.5.43.tar.gz
下载之后,我们进行解压和重新命名的操作
[root@localhost tomcat]# tar -zxvf apache-tomcat-8.5.43.tar.gz
[root@localhost tomcat]# mv apache-tomcat-8.5.43 tomcat8
接下来我们要安装pinpoint-collect的war包,以及pinpoint-web的war包,这里者两个war包最好分别部署在不同的tomcat上,这里我们重新复制另外一个tomcat
[root@localhost tomcat]# mv tomcat8/ tomcat8-collect
[root@localhost tomcat]# cp tomcat8-collect/ tomcat8-web/
接下来要让两个tomcat的端口不一样,我们进入到
/data/tomcat/tomcat8-web/conf,修改下端口vi server.xml
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!-- A "Connector" using the shared thread pool--> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" /> <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!-- A "Connector" using the shared thread pool-->
接下来就可以开始进行安装了,我们在
tomcat8-collect下安装pinpoint-collect.war
在tomcat8-web/下安装pinpoint-web.war
https://github.com/naver/pinpoint/releases/tag/1.8.0
得到collect的下载地址为https://github.com/naver/pinpoint/releases/download/1.8.4/pinpoint-collector-1.8.4.war
我们进行到tomcat8-collect的webapps目录下,将war包下载下来
https://github.com/naver/pinpoint/releases/tag/1.8.0
这里下载很慢要采用翻墙的方式才能从github上进行下载
我们首先进入到
tomcat8-collect下安装pinpoint-collect.war,我们进入到
tomcat8-collect的webapps目录下,将改目录下的默认的其他文件夹删除掉,将pinpoint-collector-1.8.0.war上传到改目录下
接下来对war包进行解压操作
[root@localhost webapps]# unzip pinpoint-collector-1.8.0.war -d ROOT
进入到ROOT目录下,我们可以看pinpoint的几个常见的配置,进入到
/data/tomcat/tomcat8-collect/webapps/ROOT/WEB-INF/classes目录下
首先来看
集群文件的修改都是在
hbase.properties中进行修改,这里我们是单机默认不进行修改
pinpoint-collector.properties中配置和agent进行通信的协议端口
将war解压之后放在ROOT文件夹下面
这样就可以启动tomcat了,执行tomcatbin目录下的startup..sh
按照同样的方法开始安装web
[root@localhost tomcat]# cd tomcat8-web/ [root@localhost tomcat8-web]# ls bin conf lib logs README.md RUNNING.txt webapps BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work [root@localhost tomcat8-web]# cd webapps/ [root@localhost webapps]# ls docs examples host-manager manager pinpoint-web-1.8.0 .war ROOT [root@localhost webapps]# rm -rf docs/ [root@localhost webapps]# ls examples host-manager manager pinpoint-web-1.8.0 .war ROOT [root@localhost webapps]# rm -rf examples/ host-manager/ manager/ ROOT/ [root@localhost webapps]# ls pinpoint-web-1.8.0 .war [root@localhost webapps]# unzip pinpoint-web-1.8.0 .war -d ROOT
接下来我们对里面的几个配置文件进行讲解,
/data/tomcat/tomcat8-web/webapps/ROOT/WEB-INF/classes
重点是jdbc.properties 和hbase.properites,这里要修改成我们mysql的地址,要创建pinpoint的数据库,字符集设置为utf8
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:13306/pinpoint?characterEncoding=UTF-8 jdbc.username=root jdbc.password=KEY@wy11104719
这里要保证mysql数据库是正常运行的
注意这样我们就可以启动web了,启动web之前要保证habse、collect、mysql数据库已经正常启动了
web页面默认的端口是8081:在google浏览器上输入http://192.168.0.111:8081/#/main,有的浏览器这个页面打开有问题
这样collect和web都已经安装成功了
接下来我们要安装agent,按道理agent最好不要和collect和web安装在同一台服务器上面,我们另外一个台虚拟机192.168.43.112即使上安装,我们在data目录下创建一个pinpoint-agent目录
[root@localhost data]# mkdir pinpoint-agent
我们把pinpoint-agent-1.8.0.tar.gz上传到改目录下,然后我们执行解压的操作
[root@localhost pinpoint-agent]# tar -zxvf pinpoint-agent-1.8.0.tar.gz
我们要对pinpoint.config进行配置
profiler.collector.ip=192.168.43.111
配置pinpoint.config:地址为collector收集器对应的IP地址
# 这是指pinpoint-collector的地址,默认为127.0.0.1,这里修改为以下192.168.43.111
这里需要特别注意的是collector的端口一共有3个。
9994是tcp端口9995,9996是udp端口,要保证这些是通的。初始化创建Docker的时候我们已经做了映射。
作者:小柒2012
链接:https://www.imooc.com/article/29232
来源:慕课网
这里要配置collect服务器的地址
我们要让pinpoint监控tomcat应用,我们重新安装一个tomcat
重新安装一个tomcat
tomcat8-agent,我们让pinpoint来监听tomcat8-agent这个应用
我们在另外另外一台虚拟机器192.168.43.111这台机器上重新安装一个被监听的tomcat
这里我们要让pinpint来监控tomcat-agent,需要对tomcat进行配置
修改测试项目下的tomcat启动文件"catalina.sh",修改这个只要是为了监控测试环境的Tomcat,增加探针
进入到/data/tomcat/tomcat8-agent/bin目录下,修改改目录下的catalina.sh ,需要在改文件下面添加对于的监控信息
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/data/pinpoint-agent/pinpoint-bootstrap-1.8.0.jar" CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=pp20161122" CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=MyTestPP”
:/data/pp-agent/pinpoint-bootstrap-1.5.2.jar"表示监听的探针所在的位置,这里在
/data/pinpoint-agent/pinpoint-bootstrap-1.8.0.jar
-Dpinpoint.applicationName=MyTestPP表示你监控应用的名称,这里一个应用部署在10个tomcat上面,在这10个tomcat上应用的名称都一样,但是要保证-Dpinpoint.agentId都是唯一的,不能相同
测试流程:
1、第一保证mysql启动
2、保证hbase正常启动
3、启动pinpoint-colletc收集器
4、接下来启动pinpoint-web
5、服务端正常之后,要保证客户端正常,客户端首先要保证能够和服务器正常通信,第二讲客户端需要被监听的tomcat正常启动起来
这样我们就可以看到被监听的应用了
在被监听的应用进程中,可以看到配置的agent ,应用名等信息
接下来我们重点讲下pinpoint页面的信息
1
这里表示的是拓扑图的层级
这里表示的是时间,点击左边的圆圈,时间可以切换为下面的形式
上面是拓扑图。表示用户请求tomcat199次,tomcat请求unkown27次,请求应用28次,其中26363整个端口应用15次,请求23856应用13次
点击右边的view Servers,可以看到当前监听的应用部署在哪些服务器上面
上图中,红色的框图表示当前选择的服务器的一个统计情况,右边表示的当前应用部署的集群总的一个信息统计情况
上面这个页面也是显示当前应用一个总的信息的统计
点击inspectior进行可以看到一些详细的请求信息
我们左边选中要监听的那台服务器,在右边可以显示当前应用在改台服务器上的jvm参数、启动时间、。当前应用依赖哪些jar包。当前应用状态,以及当前服务器内存、cpu 线程等信息
上面Total表示的是我们监听的应用一共部署了在多少台服务器中
27表示当前的应用在1d,1天之内总共成功了多少请求数,失败了多少
我们要看具体对某个方法的请求信息,我们用鼠标拖动选择下面绿色的点,就表示对于的请求,我们选择之后进去可以看到
看到请求某个url具体的请求信息时间等,clientIP浏览器访问的IP地址等信息
我们选中某条URL,可以看到下面请执行的具体信息,可以对某条url详细进行具体分析
server map表示当前我们访问的url对于的一个拓扑结构
timeLine表示我们当前请求耗时的一个具体分析
Mixed View可以看到当前的请求占用cpu 内存的一个情况
点击右上角的圆圈,可以进行当前的一个pinpoint的一个设置
usergroup表示人员分组,可以把某些人分配到某些组里面,pinpoint报警的时候只向指定的group的人进行报警
在apllication中可以选择报警触发的条件,发生给指定分组的人才能收到报警信息
报警的方式,可以是email,短信等