当前位置: 首页 > 科技观察

基于Centos7系统安装部署Pinpoint分布式监控

时间:2023-03-14 09:16:06 科技观察

概述pinpoint是github上一款开源的APM监控工具。它是用Java编写的,用于大规模分布式系统监控。它对性能的影响最小(资源利用率仅增加3%左右),并且代理的安装是非侵入式的。只需要在被测Tomcat中添加3句,布下探针,即可监控整个程序。今天主要是想记录下它的安装过程,以备日后参考。环境配置配置如下:百度网盘:链接:https://pan.baidu.com/s/17l8nFR94Oy_OnfH7ST67ag提取码:l851下面是官方部分截图:1.环境配置1.1获取需要的依赖包进入home目录,创建一个“pp_res”资源目录,用于存放需要安装的包。mkdir/home/pp_rescd/home/pp_res/使用xshell等类似工具将需要的文件上传到Linux虚拟机。要上传的主要文件都在百度网盘。jdk8---Java运行环境hbase-1.0---数据库,用于存储监控信息tomcat8---Web服务器pinpoint-collector.war---pp控制器pinpoint-web.war---pp展示页面pp-collector.init---用来快速启动pp-col,不要也可以pp-web.init---用来快速启动pp-web,不要也可以1.2配置jdk1.8本APM系统主要使用jdk1.8部署时,首先配置jdk环境变量。#tar-xvfjdk-8u191-linux-x64.tar.gz–C/usr/local/jdk#mv/usr/local/1.8.0_191/usr/local/jdk配置java环境变量#vi/etc/profileJAVA_HOME=/usr/local/jdkJRE_HOME=$JAVA_HOME/jrePATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binCLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jarexportJAVA_HOMEJRE_HOMEPATHCLASSPATHexportPATH使环境变量生效#source/etc/profile测试java环境变量是否配置正确。#java-version2。安装Hbasepinpoint收集的测试数据主要存在于Hbase数据库中。因此它可以收集大量数据并进行更详细的分析。2.1解压Hbase,放入指定目录cd/home/pp_res/tar-zxvfhbase-1.0.3-bin.tar.gzmkdir-p/data/servicemvhbase-1.0.3//data/service/hbase2.2修改hbase-env.sh的JAVA_HOME环境变量位置cd/data/service/hbase/conf/vihbase-env.sh在27行左右,修改如下:exportJAVA_HOME=/usr/local/jdk2.3修改Hbase的配置信息#vi最后修改hbase-site.xml如下,这里指定Hbase在本地存储数据,生产环境建议将数据存储在HDFS。hbase.rootdirfile:///data/hbase2.4启动hbasecd/data/service/hbase/bin./start-hbase.sh查看Hbase是否启动成功,如果启动成功,会看到“HMaster”的进程。2.5初始化Hbase的pinpoint库执行pinpoint提供的Hbase初始化语句,会初始化一段时间。执行./hbaseshell/home/pp_res/hbase-create.hbase后,进入Hbase。进入./hbaseshell后可以看到Hbase的版本和一些相关信息。输入“status'detailed'”查看刚刚初始化的表是否存在。hbase(main):001:0>status'detailed'也可以登录web查看HBase数据是否初始化成功。HbaseWeb:http://172.26.150.143:16010/master-status3,安装pinpoint-collector3.1,部署war包,解压Tomcat,重命名Tomcat到指定位置,这部分就不介绍了,移植方案17032。部署pinpoint-collector.war包:cd/home/pp_res/unzippinpoint-collector-1.5.2.war-d/data/service/tomcat17032/webapps/ROOT重启Tomcat:cd/data/service/tomcat17032/bin./启动.sh查看日志:tail-200fcatalina.out4,安装pinpoint-web4.1部署war包1)部署pinpoint-collector.war包cd/home/pp_res/unzippinpoint-web-1.5.2.war-d/home/tomcat7032/webapps/ROOT这里说明一下:hbase.properties配置我们的pp-web从哪个数据源获取,这里只指定Hbase的zookeeper地址。jdbc.propertiespp-web连接认证配置,用于连接自己的Mysql数据库。sql目录pp-web自身的一些数据需要存放在MySQL数据库中,这里需要初始化表结构。pinpoint-web.properties这里是pp-web集群的配置文件,如果需要pp-web集群的话。applicationContext-*.xml这些文件会在后续的调优工作中用到。log4j.xml日志相关配置。2)启动Tomcatcd/home/tomcat7032/bin./startup.sh3)测试访问在浏览器中输入“http://172.26.150.143:7032”,会出现主页面。4.2.配置mysql1)createmysqlcreatedatabasepinpointdefaultcharactersetutf8;grantallprivilegesonmysql.*toadmin@'%'identifiedby'admin@123';grantallprivilegesonpinpoint.*toadmin@'%'identifiedby'admin@123';2)导入数据3)修改配置文件5、部署pp-agent收集监控数据5.1在测试系统中,部署pp-agent收集监控数据和部署collector非常简单,加3句就可以了。我这里是做一个测试Tomcat来模拟部署的。首先,先创建一个文件夹,放测试需要的包mkdir/home/pp_testcd/home/pp_test5.2配置pp-agentcollector1)解压pp-agentcd/home/pp_testtar-xvfpinpoint-agent-1.5.2.tar。gz-C/datamv/data/pinpoint-agent-1.5.2//data/pp-agent2)编辑配置文件vi/data/pp-agent/pinpoint.config#主要修改IP,只需要指定即可安装pp-col的IP就够了。安装pp-col并启动后,9994、9995、9996端口自动打开。这里不用担心。如果有端口需求,去pp-col配置文件(“pp-col/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties”)修改这些端口profiler。collector.ip=172.26.150.1433)修改测试工程下的tomcat启动文件“catalina.sh”,修改这个只要是在测试环境下监控tomcat即可,添加探针vi/home/tomcat7030/bin/catalina.sh在第20行添加如下字段***行是pp-agent的jar包位置第二行是agent的ID,这个ID是唯一的,我用pp+今天的日期命名的,只要它与其他项目的ID不同,重复即可。第三行是收藏品的名称,可以随意选择,只要每一项不重复即可。CATALINA_OPTS="$CATALINA_OPTS-javaagent:/data/pp-agent/pinpoint-bootstrap-1.5.2.jar"CATALINA_OPTS="$CATALINA_OPTS-Dpinpoint.agentId=AMS-UAT153"CATALINA_OPTS="$CATALINA_OPTS-Dpinpoint.applicationName=AMS-UAT153"5.4监控Tomcat已配置。即可开始监控,启动Tomcat服务器进行测试。cd/home/tomcat7030/bin./startup.sh查看启动日志,Tomcat确实启动了。tail-f../logs/catalina.out启动,我们可以访问测试环境。这时候访问pp-web,可以发现在它的下拉框中多了一个app(pp-agent监控的日志也会显示在pp-col的日志中)。具体要求:总结到这里,整个部署过程就结束了。值得注意的地方:如果Hbase没有和pp-web、pp-col安装在同一台机器上,则需要安装zookeeper,只要安装好了,启动2181端口就好了。如果zookeeper安装在独立的机器上machine,需要修改pp-colletor和pp-web的配置文件pinpoint-collector.properties和pinpoint-web.properties,否则这两个模块会启动失败。在agentJvm的高并发环境下,Collector最多只能收集1到3个。