PinPoint分布式全链路监控搭建
什么是分布式全链路监控?不懂的同学请自行脑补了,这里不再阐述,目前开源中,比较接近生产应用的是pinpoint,是韩国棒子开源出来的,坦白讲,韩国棒子的IT也是有能人的。
环境准备:
系统环境:centos 7.1;
JAVA JDK:jdk1.6.0_45,jdk1.7.0_79,jdk1.8.0_111
maven:3.3.9(最低要求是3.2)
这些环境怎样安装,这里略过,不懂的自己找度娘
1、获取源码
从githup上面拉下来最新的代码,这里稳定版本是1.5.2,最新版本是1.6.1,我使用的是1.6.1,githup地址是https://github.com/naver/pinpoint,考虑到国内的同学情况,这里同步到oschina,地址为:http://git.oschina.net/netidol/pinpoint160
2、构建安装包
进入pinpoint160目录,进行构建
命令:mvn install -Dmaven.test.skip=true
3、安装Hbase数据库
由于大部分的jar包我本地都有了,所以我构建只花了3min就搞好了,这个看个人的情况而定,建议最好配置一下maven的镜像库,使用阿里云提供的,这样会快好多,构建完成后,编辑一下Hbase的下载地址,当然,如果你是肉身翻墙在外,可以忽略,否则绝对无法成功下载下来
vim quickstart/bin/start-hbase.sh
找到
HBASE_DL_URL=http://apache.mirror.cdnetworks.com/hbase/$HBASE_VERSION/$HBASE_FILE
更换为:
HBASE_DL_URL=http://mirrors.cnnic.cn/apache/hbase/$HBASE_VERSION/$HBASE_FILE
当然,中间的
http://mirrors.cnnic.cn/apache/hbase
这个地址你可以通过访问
http://www.apache.org/dyn/closer.cgi/hbase/
这里会自动找到你访问的最快的站点,来替换
保存一下,然后安装hbase
./quickstart/bin/start-hbase.sh
下载完毕后,你会发现会启动报错,提示找不到java_home,这是因为刚才下载的hbase没有配置java_home的原因
编辑一下配置文件
vim ./quickstart/hbase/hbase-1.0.3/conf/hbase-env.sh
这里的hbase-1.0.3需要看你实际使用的版本号修改为你对应的目录
然后找到JAVA_HOME,取消前面的注释,然后修改为你的路径
/home/jdk/jdk1.8.0_111
然后启动一下hbase,分别执行下面两个指令
./quickstart/bin/start-hbase.sh
./quickstart/bin/init-hbase.sh
4、部署收集器和web
在web目录和collector目录,分别把target目录下的war包复制到自己的web容器下面,我使用的是tomcat,直接把war包放到webapps下,然后新建一个虚拟机,指向刚才的web目录,这里是pinpoint-web-1.6.1-SNAPSHOT,然后把这个目录下的所有文件复制到ROOT下(不复制的话,有部分显示会有问题,复制过去以后,可以直接用localhost:8080访问,或者localhost:8080/pinpoint-web-1.6.1-SNAPSHOT都可以正常访问)
5、解压和部署代理agent
在pinpoint160目录下,找到agent目录,在target目录下找到pinpoint-agent-1.6.1-SNAPSHOT.tar.gz,进行解压
然后修改pinpoint的收集端地址
vim pinpoint.config
把地址修改为pinpoint所在服务器的地址
pinpoint.config配置然后在启动jar的时候,加入参数
-javaagent:/usr/soft/code/pinpoint160/agent/target/pinpoint-agent-1.6.1-SNAPSHOT/pinpoint-bootstrap-1.6.1-SNAPSHOT.jar -Dpinpoint.agentId=节点名称,全局唯一 -Dpinpoint.applicationName=应用名称,可重复
启动完成后,可在web看到结果
链路跟踪我们可以看到这2000+的请求中,有几次是耗时2s以上的,我们进去可以看到
耗时分析耗时主要是在和mysql建立连接和redis的登陆上,由于使用的是连接池,首次登陆会慢一点,属于比较正常,可以不管。当然,还可以查看各个节点的情况