首页 > 其他分享 >jconsole的简单学习

jconsole的简单学习

时间:2023-01-06 00:44:47浏览次数:48  
标签:keystore Dcom 学习 ssl Testxxxx jconsole 简单 jmxremote

摘要

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还是比较复杂的, 建议用密码就可以了..

标签:keystore,Dcom,学习,ssl,Testxxxx,jconsole,简单,jmxremote
From: https://www.cnblogs.com/jinanxiaolaohu/p/17029260.html

相关文章

  • IT编程相关内容汇总 - 进阶者系列 - 学习者系列文章
    笔者工作了十多年了,对于技术也有一定的经验,但是IT编程技术的更新是挺快的,特别是各种框架,各种中间件啥的都涌现出来了。这篇博文笔者打算将IT编程的前端、后端、数据库......
  • 补充完毕,最后一题简单,108根据前面的自己能够勉强写出
    669.修剪二叉搜索树publicTreeNodetrimBST(TreeNoderoot,intlow,inthigh){if(root==null){returnnull;}if(root......
  • 1_jQuery.ajax()的简单使用
    ​  每次书写AJAX代码比较繁琐步骤都是一样的,数据回显使用原生js代码也比较繁琐,可以使用jQuery对上述问题进行优化,jQuery不仅仅对dom操作进行了封装同时也对AJAX......
  • 1_jQuery.ajax()的简单使用
    ​  每次书写AJAX代码比较繁琐步骤都是一样的,数据回显使用原生js代码也比较繁琐,可以使用jQuery对上述问题进行优化,jQuery不仅仅对dom操作进行了封装同时也对AJAX......
  • go语言学习教程
    go语言学习教程集合了连接goroutine、go连接redis、go连接kafka等示例https://github.com/fastbpmn/go-studyTRANSLATEwithxEnglishArabicHebrewPol......
  • 最新go语言学习教程
    go语言学习教程集合了连接goroutine、go连接redis、go连接kafka等示例,所有代码均经过实践,可以直接使用https://github.com/fastbpmn/go-studyTRANSLATEwithxE......
  • [leetcode]第 16 天 排序(简单)、第 17 天 排序(中等)
    面试题45.把数组排成最小的数思路使用到了快速排序classSolution{publicStringminNumber(int[]nums){//初始化字符串数组String[]strs......
  • 通过HH8WilEdit学习WIL 文件编码 2 程序大体结构
    unitmain;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ExtCtrls,SUIForm,SUIButton,StdCtrls,S......
  • ATC简单题解(不定时更新
    ABC129前三题略D.lamp虽然数据范围不大,但也没法暴力check,可以考虑分别维护每行(每列)障碍物的纵(横)坐标,可以考虑到插入std::vector中,然后对于每一个点查找横竖方向上的......
  • 左偏树 学习笔记
    左偏树是一类拥有下列操作的数据结构:插入一个数\(O(logn)\)求最小值\(O(1)\)删除一个节点\(O(logn)\)合并两棵树\(O(logn)\)左偏树本身具有堆的性质......