一、概述
是 (Java管理扩展) 的缩写,它是 Java 平台上用于管理和监控应用程序、系统和网络资源的一种标准化的管理和监控框架。 提供了一种标准的方式,通过这种方式,开发人员可以暴露应用程序中的各种管理和监控信息,然后可以使用 客户端工具或应用程序来访问和操作这些信息。
允许开发人员定义称为 的管理组件,这些组件充当被管理资源的代理,并通过 接口公开资源的操作和属性。通过 ,您可以监控和管理各种 Java 应用程序和服务器的性能、状态和配置。
主要用于以下一些方面:
监控:可以使用 来监视应用程序的性能指标,例如内存使用、线程数、请求处理速度等。这对于实时性能分析和故障排除非常有帮助。
管理:JMX 允许您在运行时管理应用程序,例如修改配置参数、重新加载资源、触发操作等。这有助于实现动态管理和配置。
远程管理:JMX 支持远程访问,这意味着您可以在不必物理接触应用程序的情况下,从远程位置监控和管理应用程序。
自定义监控:您可以编写自定义 来公开特定于您的应用程序的监控数据和操作,以满足特定的管理需求。
总之, 提供了一个强大的框架,用于管理和监控 Java 应用程序,这对于确保应用程序的稳定性和性能至关重要。它广泛用于企业级应用程序和服务器,如应用程序服务器、数据库服务器和中间件。
二、JMX 原理
从图中我们可以看到,JMX的结构一共分为三层:
基础层:主要是 ,被管理的资源。
分为如下四种,我接下来主要介绍
适配层:MBeanServer,主要是提供对资源的注册和管理。
接入层:提供远程访问的入口。
三、实战操作(开启 Trino JMX)
1)环境部署
如果想快速部署,可以参考我之前的文章:
Trino官方文档:https://trino.io/docs/current/
这里为了快速部署就选择docke-compose部署了。
2)开启 Trino JMX
官方文档:https://trino.io/docs/current/admin/jmx.html
1、配置 config.properties
参数解释:
:指定jmx RMI注册表的端口。JMX客户端应该连接到此端口。
:指定jmx RMI服务器的端口。Trino导出许多指标,这些指标对于通过JMX进行监控非常有用。
2、配置 jvm.config
、 和 这三者都涉及到 和远程管理的端口配置,但它们各自在不同的上下文中起作用:
:这个属性指定了 注册表()的端口号。RMI 注册表用于注册 JMX 服务,以便客户端可以查找并连接到 JMX 服务。通常情况下, 注册表使用默认端口号 。通过设置 属性,你可以指定 注册表使用的不同端口号,以防止端口冲突或增加安全性。
:这个属性指定了 服务本身的 通信端口号。 服务使用 进行远程通信,客户端通过这个端口与 服务通信。通常情况下,JMX 服务也使用默认的端口号 。通过设置 属性,你可以指定 JMX 服务的 RMI 端口号。
:这是 Java 系统属性,用于配置 远程连接的 端口号。它指定了客户端将用来连接到 JMX 服务的 RMI 端口号。通常情况下,如果不显式设置,它会使用与 相同的端口号。但你也可以使用这个系统属性来指定不同的端口号,以确保客户端可以连接到正确的端口。
这三者之间的关系是:
3、重新启动服务
4、获取监控数据
访问具体接口指标
3)通过 jconsole 连接 JMX
是一个基于JMX的GUI工具,用于连接正在运行的JVM,不过此JVM需要使用可管理的模式启动。如果要把一个应用以可管理的形式启动,可以在启动是设置 。
找到java安装bin目录,目录下有个jconsole可执行文件,双击点击打开。
也可以通过 连接 JMX 查看数据
4)常用的 Trino 指标接口和指标
查询所有jmx子接口:
以下就是常用的指标接口和指标说明:
上面只是开启了 Trino JMX,指标数据也采集了,怎么展示呢?下一篇文章重点讲解通过 采集数据,然后通过 Prometheus 拉取JMX采集的数据,最后通过Grafana展示。
领取专属 10元无门槛券
私享最新 技术干货