zoukankan      html  css  js  c++  java
  • pinpoint1.8.5安装及使用指南

    简介

    pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的。

    各大APM工具,几乎都是根据google这篇经典的Dapper论文而来,一定要读一读。这里是它的源文地址:https://research.google.com/pubs/pub36356.html,感谢这位同学的翻译:http://bigbully.github.io/Dapper-translation/

    pinpoint提供了一些功能:

    • 服务映射:通过可视化其组件如何互连来了解任何分布式系统的关联关系。单击节点可显示有关组件的详细信息,例如其当前状态和事务计数。
    • 实时的活跃线程数
    • 请求/响应散点图
    • 调用栈
    • 查看有关应用程序的其他详细信息,例如CPU使用率,内存/垃圾收集,TPS和JVM参数

    整个pinpoint架构分为3部分:pinpoint-collector、pinpoint-agent、pinpoint-webUI。

    pinpoint-agent:用来收集单个应用的信息,并将收集好的应用信息发送到pinpoint-collector中
    pinpoint-collector:用来处理pinpoint-agent发送过来的信息,并将信息收集好之后存储到HBase中
    pinpoint-webUI:查找出HBase中的数据并展示

    所以我这里需要准备两台机器:
    10.200.201.xxx:用于安装pinpoint-collector、pinpoint-webUI、HBase
    10.200.201.yyy:用于安装pinpoint-agent,负责收集应用的信息

    环境安装

    安装jdk

    我这里用的是rpm包直接安装的:rpm -ivh jdk-8u171-linux-x64.rpm
    安装好后配置一下JAVA_HOME:

    使用vim配置一下环境变量:
    vim /etc/profile

    export JAVA_HOME=/usr/java/jdk1.8.0_45
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    

    然后加载一些profile文件:
    source /etc/profile

    安装HBase

    这里有个对照图:

    由上面我们可以看到HBase我们需要安装1.2.x版本的
    下载地址:
    http://archive.apache.org/dist/hbase/
    我这里下载的是1.2.12版本的。

    1. 将Hbse放到指定目录
    cd /app/install
    tar -zxvf hbase-1.2.12-bin.tar.gz
    
    1. 修改配置信息
      修改hbase-env.sh
    vim /app/install/hbase-1.2.12/conf/hbase-env.sh
    
    #加入JAVA_HOME
    export JAVA_HOME=/usr/java/jdk1.8.0_45
    

    修改hbase-site.xml

    vim /app/install/hbase-1.2.12/conf/hbase-site.xml
    
    <configuration>
    	    <property>
    	        <name>hbase.rootdir</name>
    	        <value>file:///app/data/hbase</value>
    	    </property>
    	    <property>
    	        <name>hbase.zookeeper.property.dataDir</name>
    	        <value>/app/data/zookeeper</value>
    	    </property>
    		<property>
    		 <name>hbase.zookeeper.property.clientPort</name>
    		 <value>2181</value>
    		 <description>Property from ZooKeeper'sconfig zoo.cfg. The port at which the clients will connect.
    		 </description>
    		</property>
    		<!-- false是单机模式,true是分布式模式  -->
    		<property>
    		 <name>hbase.cluster.distributed</name>
    		 <value>false</value>
    		</property>
    </configuration>
    
    1. 启动HBase
    cd /app/install/hbase-1.2.12/bin
    ./start-hbase.sh
    
    # 查看Hbase是否启动成功,如果启动成功的会看到"HMaster"的进程
    [root@localhost bin]# jps
    12075 Jps
    11784 HMaster
    
    1. 初始化pinpoint库
      下载脚本:https://github.com/naver/pinpoint/blob/master/hbase/scripts/hbase-create.hbase
    #进入到hbase的bin目录中
    cd /app/install/hbase-1.2.12/bin
    #执行脚本
    ./bin/hbase shell /app/install/pinpoint/hbase/scripts/hbase-create.hbase
    
    # 执行完了以后,进入Hbase
    ./hbase shell
    
    #进入后可以看到Hbase的版本,还有一些相关的信息
    2019-10-12 16:18:28,074 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    HBase Shell; enter 'help<RETURN>' for list of supported commands.
    Type "exit<RETURN>" to leave the HBase Shell
    Version 1.2.12, r91d5ec4c4dcd10ceec984c6e663ea82acf353995, Sat Apr  6 15:27:28 CDT 2019
    
    # 输入"status 'detailed'"可以查看刚才初始化的表,是否存在
    hbase(main):002:0> status 'detailed'
    

    也可以登录web,来查看HBase的数据是否初始化成功
    http://10.200.201.xxx:16010/master-status

    安装pinpoint-collector

    制作一个tomcat容器,端口号为8081

    #将pinpoint-collector的war包丢到Tomcat的webapps目录下
    cp pinpoint-collector-1.8.5.war ../apache-tomcat-8081/webapps/
    
    #将war包名字改一下
    mv pinpoint-web-1.8.5.war pp-collector.war
    
    #启动tomcat
    ./bin/startup.sh
    
    # 查看日志,是否成功启动
    tail -f ../logs/catalina.out
    
    #如果hbase安装在别的机器下需要修改一下配置
    cd /app/install/apache-tomcat-8081
    vim webapps/pp-collector/WEB-INF/classes/hbase.properties
    #修改hbase的ip和hbase所对应的端口号
    hbase.client.host=10.200.201.xxx
    hbase.client.port=2181
    

    安装pinpoint-web

    解压一个tomcat容器,端口号为8080

    #将pinpoint-web放到tomcat的webapps容器中
    cp pinpoint-web-1.8.5.war  ../apache-tomcat-8080/webapps/
    
    #修改一下war包名
    mv pinpoint-web-1.8.5.war pp-web.war
    
    #启动tomcat
    ./bin/startup.sh
    
    # 查看日志,是否成功启动
    tail -f ../logs/catalina.out
    
    #如果hbase安装在别的机器下需要修改一下配置
    cd /app/install/apache-tomcat-8080
    vim webapps/pp-web/WEB-INF/classes/hbase.properties
    
    #修改hbase的ip和hbase所对应的端口号
    hbase.client.host=10.200.201.xxx
    hbase.client.port=2181
    

    然后可以在浏览器中:http://10.200.201.xxx:8080/pp-web/

    部署pinpoint-agent采集监控数据

    1. 传入pinpoint-agent包
      首先将pinpoint-agent-1.8.5.tar.gz传入到服务器10.200.201.yyy的/app/install/pinpoint-agent/中

    然后执行tar -zxvf pinpoint-agent-1.8.5.tar.gz解压

    1. 配置pp-agent采集器
    cd /app/install/pinpoint-agent
    vim pinpoint.config
    
    # 主要修改IP,只需要指定到安装pp-col的IP就行了,安装pp-col启动后,自动就开启了9994,9995,9996的端口了。这里就不需要操心了,如果有端口需求,要去pp-col的配置文件("pp-collector/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties")中,修改这些端口
    profiler.collector.ip=10.200.201.xxx
    
    1. 如果监控的是tomcat
    # 修改测试项目下的tomcat启动文件"catalina.sh",修改这个只要是为了监控测试环境的Tomcat,增加探针
    vi catalina.sh
    
    # 第一行是pp-agent的jar包位置
    # 第二行是agent的ID,这个ID是唯一的,我是用pp + 今天的日期命名的,只要与其他的项目的ID不重复就好了
    # 第三行是采集项目的名字,这个名字可以随便取,只要各个项目不重复就好了
    CATALINA_OPTS="$CATALINA_OPTS -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar"
    CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=$AGENT_ID"
    CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=$APPLICATION_NAME"
    
    # 配置好了。就可以开始监控了,我们启动测试用的Tomcat的服务器
    cd /data/pp-test/bin/
    ./startup.sh
     
    # 查看启动日志,确实Tomcat启动
    tail -f ../logs/catalina.out
    
    1. springboot包部署
      如果是jar包部署,直接在启动命令加启动参数:
    nohup java -javaagent:/app/install/pinpoint-agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=$AGENT_ID -Dpinpoint.applicationName=$APPLICATION_NAME
    

    功能设置

    设置监控

    如果按照上面的方法安装完了之后在进行监控设置的或者用户设置的时候会报错的:

    所以需要配置一下mysql:
    首先需要跑两个sql脚本:
    https://github.com/naver/pinpoint/blob/master/web/src/main/resources/sql/CreateTableStatement-mysql.sql
    https://github.com/naver/pinpoint/blob/master/web/src/main/resources/sql/SpringBatchJobRepositorySchema-mysql.sql

    然后进入到pinpoint-web的war所在的tomcat的容器中,修改配置文件:WEB-INF/classes/jdbc.properties
    并设值mysql的账号密码

    jdbc.url=jdbc:mysql://localhost:13306/pinpoint?characterEncoding=UTF-8
    jdbc.username=admin
    jdbc.password=admin
    

    我们可以在application里面给不同的应用设置不同的提醒规则,具体的提醒规则如下:

    SLOW COUNT:发送到应用程序的慢速请求数超过配置的阈值时触发
    
    SLOW RATE
       发送到应用程序的慢速请求的百分比(%)超过配置的阈值时触发
    
    ERROR COUNT
       发送到应用程序的失败请求数超过配置的阈值时触发。
    
    ERROR RATE
       发送到应用程序的失败请求的百分比(%)超过配置的阈值时触发。
    
    TOTAL COUNT
       发送到应用程序的所有请求数超过配置的阈值时触发。
    
    SLOW COUNT TO CALLEE
       当应用程序发送的慢速请求数超过配置的阈值时触发。 您必须在配置UI的“注释...”框中指定域或地址(IP,端口)    
    	 例如)www.naver.com,127.0.0.1:8080
    
    SLOW RATE TO CALLEE
       当应用程序发送的慢速请求的百分比(%)超过配置的阈值时触发。 您必须在配置UI的“注释...”框中指定域或地址(IP,端口)
       ex) www.naver.com, 127.0.0.1:8080
    
    ERROR COUNT TO CALLEE
       当应用程序发送的失败请求数超过配置的阈值时触发。 您必须在配置UI的“注释...”框中指定域或地址(IP,端口)
       ex) www.naver.com, 127.0.0.1:8080
    
    ERROR RATE TO CALLEE
       当应用程序发送的失败请求的百分比(%)超过配置的阈值时触发。 您必须在配置UI的“注释...”框中指定域或地址(IP,端口)
       ex) www.naver.com, 127.0.0.1:8080
    
    TOTAL COUNT TO CALLEE
       当应用程序发送的所有请求数超过配置的阈值时触发。 您必须在配置UI的“注释...”框中指定域或地址(IP,端口)
       ex) www.naver.com, 127.0.0.1:8080
    
    HEAP USAGE RATE
       当应用程序的堆使用率(%)超过配置的阈值时触发。
    
    JVM CPU USAGE RATE
       当应用程序的CPU使用率(%)超过配置的阈值时触发。
    
    SYSTEM CPU USAGE RATE
       当应用程序的CPU使用率(%)超过配置的阈值时发送警报。
    
    DATASOURCE CONNECTION USAGE RATE
       当应用程序的数据源连接使用率(%)超过配置的阈值时触发。
       
    FILE DESCRIPTOR COUNT
       当打开的文件描述符的数量超过配置的阈值时,发送警报。
    

    然后需要在webapps/pp-web/WEB-INF/classes/batch.properties里面配置一下邮件服务器的信息:

    pinpoint.url= #pinpoint-web server url
    alarm.mail.server.url= #smtp server address
    alarm.mail.server.port= #smtp server port
    alarm.mail.server.username= #username for smtp server authentication
    alarm.mail.server.password= #password for smtp server authentication
    alarm.mail.sender.address= #sender's email address
    
    #例如
    pinpoint.url=http://pinpoint.com
    alarm.mail.server.url=stmp.server.com
    alarm.mail.server.port=583
    alarm.mail.server.username=pinpoint
    alarm.mail.server.password=pinpoint
    alarm.mail.sender.address=pinpoint_operator@pinpoint.com
    
  • 相关阅读:
    关于路径的小知识点
    转发与重定向
    一种反复的读写文件的方法
    文字排版reportlab
    Qgis中插件的安装位置
    spyder打开文件假死解决
    地图跳跃-超级码力
    尾部的零
    一探torch.nn究竟“What is torch.nn really?”
    KAZE特征和各向异性扩散滤波
  • 原文地址:https://www.cnblogs.com/luozhiyun/p/11664534.html
Copyright © 2011-2022 走看看