Glowroot监控分析工具-结合jar包实践

直接开干
官网:https://glowroot.org
前置条件:安装jdk,jdk地址:https://repo.huaweicloud.com/java/jdk/
工具架构如图:
在这里插入图片描述

1 部署cassandra

下载地址https://www.apache.org/dyn/closer.lua/cassandra/3.11.6/apache-cassandra-3.11.6-bin.tar.gz
作用: Cassandra在Glowroot中主要用于存储性能监控数据。Glowroot-Central(中央收集器)依赖于Cassandra数据库来持久化收集到的应用程序性能数据,包括事务、错误、JVM指标等。
涉及端口: Cassandra使用的端口主要有几个关键端口,包括:
7000:集群通信端口(如果开启了SSL则是7001端口)。
9042:用于native协议的客户端连接端口。
9160:旧版本的Thrift接口端口,但在Cassandra 2.1及以后版本中,Thrift接口已被废弃,因此这个端口可能不再使用。
7199:JMX端口,用于远程监控和管理Cassandra实例。

  1. 下载安装包后,创建文件夹/opt/glowroot/cassandra,然后通过xftp工具或其它工具上传到linux系统并解压。

    mkdir -p /opt/glowroot/cassandra
    cd /opt/glowroot/cassandra
    # 上传压缩包,开始解压
    tar -zxvf 压缩包名称
    
  2. 解压完成后在解压目录下创建data、commitlog、saved_caches三个目录,cassandra服务运行时会写入相应数据。

  3. 因为cassandra不支持root用户启动,所以需要创建用户glowroot且改变glowroot目录的所有者。

    # 添加用户
    sudo useradd -m glowroot
    # 设置密码
    sudo passwd glowroot
    # 改变目录拥有者
    chown -R glowroot:glowroot /opt/glowroot
    

    在这里插入图片描述

  4. 修改cassandra的conf目录的cassandra.yaml文件,将本机IP作为Seed服务器。

    vim /opt/glowroot/cassandra/conf/cassandra.yaml
    

    编辑模式下搜索关键词命令: 按下/键进入命令模式,然后输入你要搜索的关键词,最后按下Enter键。Vim会高亮显示第一个匹配的结果,并将光标移动到那里。
    跳转到下一个或上一个匹配项: 在进行了一次搜索之后,你可以使用n键跳转到下一个匹配项,或者使用N键(大写)跳转到上一个匹配项。
    清除高亮显示: 搜索后,Vim会高亮显示所有匹配的结果。如果你想要清除这些高亮显示,可以使用命令 “:noh” (表示“no highlights”)。

    配置参数属性值
    data_file_directories/opt/glowroot/cassandra/data
    commitlog_directory/opt/glowroot/cassandra/commitlog
    saved_caches_directory/opt/glowroot/cassandra/saved_caches
    seed_providerseeds: “配置自己服务器ip,默认127.0.0.1”
    listen_address配置自己服务器ip,默认localhost
    rpc_address配置自己服务器ip,默认localhost
    batch_size_fail_threshold_in_kb5000

    需要注意data_file_directories的配置应该是一个字符串列表,格式如下:
    在这里插入图片描述

  5. 进入cassandra启动目录,启动服务

    cd /opt/glowroot/cassandra/bin
    # 启动服务,可使用后台启动:nohup ./cassandra &
    ./cassandra
    # 检查服务状态
    ./nodetool status
    

2 部署glowroot-central

下载地址: https://repo1.maven.org/maven2/org/glowroot/glowroot-central/0.13.6/
作用: Glowroot-Central是Glowroot的中央收集器组件,负责收集来自各个Glowroot Agent的性能监控数据,并提供一个Web界面供用户查看和分析这些数据。
涉及端口: Glowroot-Central的端口默认是HTTPS协议的4000端口(具体端口号可能因版本而异,建议查看glowroot-central.properties配置文件中的ui.https.port属性)。但是,这个端口是Glowroot-Central Web界面服务的端口,并非直接与Cassandra通信的端口。与Cassandra的通信端口已在Cassandra的配置中确定。

  1. 在/opt/glowroot文件夹下创建glowroot-central文件夹,并将压缩包上传到该目录下并解压,修改目录拥有者为glowroot用户
    mkdir /opt/glowroot/glowroot-central
    unzip 解压文件名.zip
    # 没有unzip命令的,安装命令
    sudo yum install unzip
    
  2. 修改glowroot-central.properties配置文件,cassandra.contactPoints参数更改成cassandra服务器地址,其余参数可以保持默认。
  3. 启动服务
    java -jar /opt/glowroot/glowroot-central/glowroot-central.jar
    # 或后台启动命令:
    nohup java -jar /opt/glowroot/glowroot-central/glowroot-central.jar &
    

3 部署glowroot-agent

下载地址: https://repo1.maven.org/maven2/org/glowroot/glowroot-agent/0.13.0/
作用: Glowroot Agent是一种无代码侵入式的监控方式,它通过在JVM启动时附加agent参数来自动收集应用程序的性能数据。然而,需要注意的是,如果没有配置Glowroot-Central或类似的收集器来接收这些数据,那么收集到的性能数据将不会被持久化存储,也无法通过Web界面进行查看和分析。

  1. 在/opt/glowroot文件夹下创建glowroot-agent文件夹,并将压缩包上传到该目录下,修改目录拥有者为glowroot用户
    mkdir /opt/glowroot/glowroot-agent
    unzip 解压文件名.zip
    

4 实践

前置条件:springboot项目,打包为jar包:mvn clean package

打包为jar包后执行jar包时可能报错:jar包没有主清单属性
解决:在pom文件中,添加配置

<build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  1. 打好jar包后,在linux新建目录jarweb

    mkdir /opt/jarweb
    # 上传jar包至该目录下
    
  2. 启动jar包并携带jvm监控参数

    java -javaagent:/opt/glowroot/glowroot-agent/glowroot.jar -Dglowroot.collector.address=服务器地址:8181 -Dglowroot.agent.rollup.id=自定义标识符 -Dglowroot.agent.id=自定义标识符 -jar 项目名.jar
    

    举例: java -javaagent:/opt/glowroot/glowroot-agent/glowroot.jar -Dglowroot.collector.address=192.168.137.128:8181 -Dglowroot.agent.rollup.id=dev -Dglowroot.agent.id=cc-order -jar /opt/jarweb/cc-order.jar
    解释:agent.rollup.id 可标识是什么环境 ; agent.id 可标识分布式系统中哪个服务,如订单服务。

    注意: 上诉如果启动了cc-order服务,如果还想同时监控另外一个服务比如cc-user,则glowroot-agent不能是同一个。因为同一个 Glowroot agent 实例不能监控两个不同的 Java 应用程序,每个 JVM 进程需要一个独立的 agent 实例或者需要配置它以允许共享。
    解决: 如果有多个java实例,则可以将/opt/glowroot下的glowroot-agent目录复制为两个,即可复制为glowroot-agent-order和glowroot-agent-user两个文件夹,启动cc-order服务时,-javaagent指向glowroot-agent-order目录下的jar包,启动cc-user服务时,-javaagent指向glowroot-agent-user目录下的jar包。结构如下:
    在这里插入图片描述

    举例:启动命令分别如下:

    # 启动第一个服务
    java -javaagent:/opt/glowroot/glowroot-agent-order/glowroot.jar -Dglowroot.collector.address=192.168.137.128:8181 -Dglowroot.agent.rollup.id=dev -Dglowroot.agent.id=cc-order -jar /opt/jarweb/shoppingweb1.jar 
    # 启动第二个服务
    java -javaagent:/opt/glowroot/glowroot-agent-user/glowroot.jar -Dglowroot.collector.address=192.168.137.128:8181 -Dglowroot.agent.rollup.id=dev -Dglowroot.agent.id=cc-user -jar /opt/jarweb/shoppingweb2.jar 
    

    shoppingweb1.jar 和shoppingweb2.jar两个应用程序端口不同,否则会报错。

    启动所有服务和应用之前,最好把glowroot目录下的所有目录和文件将权限重新给glowroot用户,因为在文章的最开始,通过chown -R赋予glworoot用户后,后面新增了一些目录,所有最后再执行一遍,避免权限不足。
    chown -R glowroot:glowroot /opt/glowroot

    端口最终如下:
    在这里插入图片描述

    实现截图如下:
    在这里插入图片描述

    完结,点个赞收藏一下再走呗!

  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昕昕旺

你的鼓励就是我的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值