JMX全稱Java Management Extensions, 為Java應用提供管理擴充套件功能。在Java 5的時候引入
概念
Name | Description |
---|---|
MBean | 全稱為Managed Bean, 你可以實現一個MBean來JMX提供管理內容 |
MBean Server(也叫JMX Agent) | 提供集中註冊管理MBean功能,允許遠端通過他代理操作MBean |
JMX Connectors | 通過實現不同的通訊協議,來允許遠端訪問 |
Jconsole | 一款JMX圖形客戶端,執行使用者訪問本地或者遠端的JMX,預設包含在Java SDK工具中 |
Referering Java Opts
啟動Java可以賦予JVM Machine一些引數,例如設定執行記憶體堆疊的大小。此處列舉一些有關JMX的相關引數
引數名 | 型別 | 描述 |
---|---|---|
-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 |
例如,你需要啟動一個常駐後臺的springboot程式(比如app.jar),如何開啟一個支援遠端訪問的JMX,可以嘗試下面的命令
java -jar app.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10080 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
對於關於JMX相關的引數你配置這些就夠了,就可以使用Jconsole連線,
JDK自帶的監控工具有:
1、jconsole
2、jvisualvm