jconsole的简单学习

jconsole,简单,学习 · 浏览次数 : 361

小编点评

**jconsole 工具简介** jconsole 是一款 JDK 自带的图形化监测工具,可以监测本地程序,也可以检测远程的机器在没有其他监控手段可以使用的情况下可以快速进行必要的监测。 **主要功能:** - 查看 JVM 大体信息,包括内存、线程等情况。 - 查看内存使用情况,包括 OOM 的情况。 - 查看线程详细信息。 - 查看类加载卸载情况。 - 查看 VM概要。 - 查看 Mbean 加载情况。 - 设置 SSL 认证。 **使用说明:** 1. 将 jconsole 的 bin 目录添加到 PATH 环境变量中。 2. 通过命令行运行 jconsole 命令,选择是否本地监控,并附加到本地的 JVM 进程上。 3. 可选择使用不安全的连接方式进行远程监控。 4. 设置 SSL 认证参数。 **安全注意:** * jconsole 的远程连接不安全,因为它需要提供 SSL 凭据。 * 建议使用密码进行 SSL 认证。 * 确保 jconsole 运行在安全的环境中。

正文

摘要

jconsole 是JDK自带的一款图形化监测工具
他可以监测本地程序,也可以检测远程的机器
在没有其他监控手段可以使用的情况下可以快速进行必要的监测
使用方法也比较简单. 

本地监控

jconsole 存在于jdk的bin 目录下
所以不管是windows还是linux
只要PATH下面有jdk相关的 bin 目录就可以通过命令行
jconsole的方式打开进程

可以选择是否本地监控,就可以附加到本地的jvm进程上面. 
可以选择使用不安全的连接就可以了

jconsole的简单介绍

1. 概览
可以查看JVM的大体信息,比如JVM的内存, 线程等情况
也能看到CPU占用率,以及class的总数
可以选择时间周期进行查看.
2. 内存
可以分不同类型查看内存的使用情况.
如果有OOM的情况在宕机之前还是能看到很多内容的. 
3. 线程
可以展示线程的详细信息. 
点击左下角能够看到线程的堆栈信息.可以进行简单问题定位.
4. 类
查看类的加载卸载情况.
5. VM概要
类似于 jinfo $pid的效果,比较直观和全面.
6. Mbean
查看加载的bean等情况, 这一块我不太清楚具体用途. 

远程监控

可以在远程服务器的JVM的启动脚本上面增加如下参数
在启动服务后就可以输入远程ip加 61127 的端口就可以远程挂载了.
这种方式比较危险, 没有安全校验.
-Dcom.sun.management.jmxremote.port=61127 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false

增加认证的远程

可以增加用户密码等信息. 
需要注意着原始文件的默认路径为:
/jre/lib/security/
可以复制一个文件 增加上一行 比如:
zhaobsh  Testxxxx 就可以在远程时输入密码就可以了.

-Dcom.sun.management.jmxremote.port=61127
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.password.file=/path/to/jmxremote.password

增加ssl认证的远程

  • 过程比较复杂, 其实可以放到默认的jdk的ca仓库中.
  • JDK的默认ca的truststore的密码是 changeit
  • 这一块我还没有仔细做实验. 改天可以尝试.
# 可以使用jdk自带的keytool命令创建证书
keytool -genkeypair -alias jconsole -keyalg RSA -validity 36500
-storetype pkcs12 -keystore jconsole.keystore 
-storepass Testxxxx -keypass Testxxxx 
-dname "CN=inspur,OU=org,O=gs,L=jinan,S=shandong,C=CN"

命令解释:
-alias jconsole  密钥对别名为jconsole
-keystore jconsole.keystore 密钥库名称为jconsole.keystore
-storepass Testxxxx 存储密码为 Testxxxx
-keypass Testxxxx 密钥密码为 Testxxxx
-dname 证书申请实体信息

导出证书以及添加到授信CA

keytool -exportcert -alias jconsole 
-storetype pkcs12 -keystore jconsole.keystore 
-file jconsole.cer -storepass Testxxxx

keytool -importcert -alias jconsole 
-file jconsole.cer -keystore jconsole-ssl.truststore 
-storepass Testxxxx -noprompt

创建应用的证书

# 创建
keytool -genkeypair -alias app -keyalg RSA 
-validity 36500 -storetype pkcs12 -keystore app.keystore 
-storepass Testxxxx -keypass Testxxxx 
-dname "CN=inspurAPP,OU=org,O=gs,L=jinan,S=shandong,C=CN"
# 导出
keytool -exportcert -alias app 
-storetype pkcs12 -keystore app.keystore 
-file app.cer -storepass Testxxxx
# 导入到授信ca
keytool -importcert -alias app -file app.cer 
-keystore app-ssl.truststore -storepass Testxxxx -noprompt

服务端JDK8的自动启动

-Dcom.sun.management.jmxremote.port=61127  
-Dcom.sun.management.jmxremote.password.file=/path/to/jmxremote.password 
-Dcom.sun.management.jmxremote.authenticate=true 
-Dcom.sun.management.jmxremote.ssl=true 
-Dcom.sun.management.jmxremote.registry.ssl=true 
-Dcom.sun.management.jmxremote.ssl.need.client.auth=true 
-Djavax.net.ssl.trustStore=/patch/to/jconsole-ssl.truststore 
-Djavax.net.ssl.trustStorePassword=Testxxxx 
-Djavax.net.ssl.keyStore=${path} 
-Djavax.net.ssl.keyStorePassword=Testxxxx

客户端Jconsole的启动

jconsole 
-J-Djavax.net.ssl.trustStore=F:\professional\java-cert\app-ssl.truststore 
-J-Djavax.net.ssl.trustStorePassword=Testxxxx 
-J-Djavax.net.ssl.keyStore=F:\professional\java-cert\jconsole.keystore 
-J-Djavax.net.ssl.keyStorePassword=Testxxxx

# 注意学习自: https://blog.csdn.net/qq_41633199/article/details/120777327

感觉ssl还是比较复杂的, 建议用密码就可以了..

与jconsole的简单学习相似的内容:

jconsole的简单学习

摘要 jconsole 是JDK自带的一款图形化监测工具 他可以监测本地程序,也可以检测远程的机器 在没有其他监控手段可以使用的情况下可以快速进行必要的监测 使用方法也比较简单. 本地监控 jconsole 存在于jdk的bin 目录下 所以不管是windows还是linux 只要PATH下面有jd

[转帖]jconsole远程监控认证,java远程监控,jmx监控应用,jmx ssl配置,jconsole ssl连接远程应用

知识普及 jmx JMX(java Management Extensions)是一个Java平台的管理和监控接口。任何程序,只要按JMX规范访问这个接口,就可以获取所有管理与监控信息,jconsole与Java VisualVM等常见监测工具都是基于jmx,JMX不但可以用于管理JVM,还可以管理

[转帖]JVM性能调优监控工具

原文 https://www.cnblogs.com/haiyang1985/p/7654654.html 摘要: JDK自己提供了不少方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,本

[转帖]引人入胜,实战讲解“Java性能调优六大工具”之linux命令行工具

Java性能调优六大工具之Linux命令行工具 为了能准确获得程序的性能信息,需要使用各种辅助工具。本章将着重介绍用于系统性能分析的各种工具。熟练掌握这些工具,对性能瓶颈定位和系统故障排查都很有帮助。 1,Linux命令行工具2, Windows工具3,JDK命令行工具4,JConsole工具5,