JVM监控-JMX探针的安装和使用

jvm监控的搭建和使用

​ Java Management Extensions(JMX)是一种Java标准,用于管理和监控Java应用程序,特别是分布式系统。它提供了一种标准化的方式来管理应用程序的各种方面,包括性能监控、配置更改、事件通知等。目前JMX最常用的就是用来做JAVA程序的监控,市面上常见的Java 监控框架基本都是基于JMX来实现的。

准备文件1 2:文件1可以自行下载(在文章上面);文件2复制以下内容自行创建文件即可;

  1. 探针文件:jmx_prometheus_javaagent-0.17.2.jar
  2. 配置文件:jmx_exporter_config.yaml
yaml 复制代码
---   
lowercaseOutputLabelNames: true
lowercaseOutputName: true
rules:
- pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+):'
  name: tomcat_$3_total
  labels:
    port: "$2"
    protocol: "$1"
  help: Tomcat global $3
  type: COUNTER
- pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount):'
  name: tomcat_servlet_$3_total
  labels:
    module: "$1"
    servlet: "$2"
  help: Tomcat servlet $3 total
  type: COUNTER
- pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount):'
  name: tomcat_threadpool_$3
  labels:
    port: "$2"
    protocol: "$1"
  help: Tomcat threadpool $3
  type: GAUGE
- pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):'
  name: tomcat_session_$3_total
  labels:
    context: "$2"
    host: "$1"
  help: Tomcat session $3 total
  type: COUNTER
  • 安装探针监控应用的JVM参数

(1)将上述两个文件放在任意目录下,修改tomcat目录/bin/catalina.sh,找到JAVA_OPTS添加

sh 复制代码
# -javaagent:[jmx探针jar包路径]=[暴露的端口]:[yaml配置文件路径]
JAVA_OPTS="$JAVA_OPTS -javaagent:/opt/apache-tomcat-8.5.35/bin/jmx_prometheus_javaagent-0.17.2.jar=30013:/opt/apache-tomcat-8.5.35/bin/jmx_exporter_config.yaml"

这里的文件路径一定要和存放的路径一致;暴露的端口任意指定。

如果使用的为内嵌tomcat,启动时使用启动脚本来启动war包,而不是启动tomcat,则可以将 -javaagent:[jmx探针jar包路径]=[暴露的端口]:[yaml配置文件路径] 加到启动命令中去

(2)重启Tomcat,至此服务器端配置完成

(3)在浏览器中使用 IP:30013 进行访问:

(4)将 ip + 端口 配置到Prometheus

properties 复制代码
 - job_name: "bmjs_gk"
    static_configs:
      - targets:
        - "xxx.xxx.xxx.xxx:30013"
相关推荐
杨DaB1 小时前
【JavaSE】JVM
java·jvm
code小毛孩3 小时前
如何简单的并且又能大幅度降低任务队列的锁粒度、提高吞吐量?
java·jvm·数据库
用手手打人8 小时前
JVM(九)-- 类的生命周期
jvm
深海呐8 小时前
Android 编译速度优化:JVM堆内存扩充
android·jvm·jvm内存扩充·android 加快编译速度
哈基米喜欢哈哈哈8 小时前
低版本的JVM遇到高版本的class字节码是否会报错
java·jvm
用手手打人8 小时前
JVM(八)-- Class文件
jvm
235168 小时前
【并发编程】详解volatile
java·开发语言·jvm·分布式·后端·并发编程·原理
找不到、了18 小时前
JVM的即时编译JIT的介绍
java·jvm
Javatutouhouduan19 小时前
Java程序员如何深入学习JVM底层原理?
java·jvm·java面试·后端开发·java架构师·java程序员·互联网大厂
m0_4750645020 小时前
jvm中程序计数器
jvm