title | date | tags | categories | |
---|---|---|---|---|
JMX |
2018-11-21 02:56:52 -0800 |
|
💠
💠 2024-10-08 15:07:46
Java Management Extensions, 提供了一个可以动态修改资源的机制
Official Doc | wiki | wici zh
名称 | 含义 |
---|---|
MBean | 全称为Managed Bean, 你可以实现一个MBean来JMX提供管理内容 |
MBean Server(也叫JMX Agent) | 提供集中注册管理MBean功能,允许远程通过他代理操作MBean |
JMX Connectors | 通过实现不同的通讯协议,来允许远程访问 |
简而言之 MBean就是存放了一堆属性的对象, 通过JMX技术, 可以远程动态修改这些MBean的状态
JVM启动时追加参数启用,也可以对已存在的JVM进程启用 jcmd $pid ManagementAgent.start [options]
jcmd help
参数 | 类型 | 描述 |
---|---|---|
-Dcom.sun.management.jmxremote | 布尔 | 是否支持远程JMX访问,默认true |
-Dcom.sun.management.jmxremote.port | 数值 | 监听端口号,方便远程访问 |
-Dcom.sun.management.jmxremote.authenticate | 布尔 | 是否需要开启用户认证,默认开启 |
-Dcom.sun.management.jmxremote.ssl | 布尔 | 是否对连接开启SSL加密,默认开启 |
-Dcom.sun.management.jmxremote.access.file | 路径 | 对访问用户的权限授权的文件的路径,默认路径 JRE_HOME/lib/management/jmxremote.access |
-Dcom.sun.management.jmxremote.password.file | 路径 | 设置访问用户的用户名和密码,默认路径 JRE_HOME/lib/management/jmxremote.password |
-Dcom.sun.management.jmxremote.port=4433
-Djava.rmi.server.hostname=192.168.9.155
-Dcom.sun.management.jmxremote.ssl=false
# 1. 不配置账户
-Dcom.sun.management.jmxremote.authenticate=false
# 2. 配置账户
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=jmxremote.password
-Dcom.sun.management.jmxremote.access.file=jmxremote.access
jmxremote.password
username1 pwd1
username2 pwd2
jmxremote.access
username1 readonly
username2 readwrite
通过查看 java.lang.management.PlatformManagedObject
的子类可以快速预览所有的MXBean
- OperatingSystemMXBean 操作系统信息 获取最大和free内存,但是无法获取available内存,简单做法是直接读取
/proc/meminfo
通过监听 GarbageCollectorMXBean,应用可感知JVM GC动作。