摘要

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的简单学习的更多相关文章

  1. Log4j简单学习笔记

    log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...

  2. shiro简单学习的简单总结

    权限和我有很大渊源. 培训时候的最后一个项目是OA,权限那块却不知如何入手,最后以不是我写的那个模块应付面试. 最开始的是使用session装载用户登录信息,使用简单权限拦截器做到权限控制,利用资源文 ...

  3. CentOS 简单学习 firewalld的使用

    1. centos7 开始 使用firewalld 代替了 iptables 命令工具为 firewall-cmd 帮助信息非常长,简单放到文末 2. 简单使用 首先开启 httpd 一般都自带安装了 ...

  4. Windows 下 Docker 的简单学习使用过程之一 dockertoolbox

    1. Windows 下面运行 Docker 的两个主要工具1): Docker for Windows2): DockerToolbox区别:Docker For Windows 可以理解为是新一代 ...

  5. 在MVC中实现和网站不同服务器的批量文件下载以及NPOI下载数据到Excel的简单学习

    嘿嘿,我来啦,最近忙啦几天,使用MVC把应该实现的一些功能实现了,说起来做项目,实属感觉蛮好的,即可以学习新的东西,又可以增加自己之前知道的知识的巩固,不得不说是双丰收啊,其实这周来就开始面对下载在挣 ...

  6. Linux——帮助命令简单学习笔记

    Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...

  7. OI数学 简单学习笔记

    基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\ ...

  8. mongodb,redis简单学习

     2.mongodb安装配置简单学习                   配置好数据库路径就可以mongo命令执行交互操作了:先将服务器开起来:在开个cmd执行交互操作                 ...

  9. html css的简单学习(三)

    html css的简单学习(三) 前端开发工具:Dreamweaver.Hbuilder.WebStorm.Sublime.PhpStorm...=========================== ...

  10. html css的简单学习(二)

    html css的简单学习(二) <!Doctype html>告诉浏览器,这是一个html文档.lang="en" 默认是en,表示英语:zh-Hans 中文简体:z ...

随机推荐

  1. Weex原理及架构剖析

    早期H5和Hybrid方案的本质是,利用客户端App的内置浏览器(也就是webview)功能,通过开发前端的H5页面满足跨平台需求.比如PhoneGap cordova ionic -- 该方案提升开 ...

  2. html5鼠标拖动排序及resize实现方案分析及实践

    对列表进行拖动排序,尺寸改变.之前一般会使用jQuery-UI.其通过mousedown.mousemove.mouseup这三个事件来实现页面元素被鼠标拖拽的效果.vue-drag-resize v ...

  3. ByteHouse技术白皮书正式发布,云数仓核心技术能力首次全面解读(内附下载链接)

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,<火山引擎云原生数据仓库 ByteHouse 技术白皮书>正式发布. 在数字化浪潮下,伴随着公有 ...

  4. 在低代码开发平台 ILLA Cloud 中使用 Hugging Face 上的模型

    ILLA Cloud 是一个面向开发者的开源低代码开发平台,平台专注于帮助开发者快速建立企业内部应用,为开发者节约数据调用与页面设计的时间.平台具有面向开发者.数据整合.协同开发.灵活部署等功能与特点 ...

  5. Zookeeper面试题总结

    1.请简述Zookeeper的选举机制 假设有五台服务器组成的zookeeper集群,它们的id从1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这一点上,都是一样的. 假设这些服务器 ...

  6. Mysql--编译安装5.7版本

    1 安装环境 1)清除以往mysql残留痕迹(新机不用) yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y userdel ...

  7. Python | 解放双手,用Python实现自动发送邮件

    解放双手,用Python实现自动发送邮件 使用Python实现自动化邮件发送,可以让你摆脱繁琐的重复性业务,节省非常多的时间. Python有两个内置库:smtplib和email,能够实现邮件功能, ...

  8. iOS安全加固探讨:代码混淆、类名方法名混淆等方法

    摘要:本文探讨了iOS平台下的安全保护,以及几种常见的加固方法,包括字符串加密.类名方法名混淆.程序代码混淆和加入安全SDK等.通过这些方法,我们可以有效地提高iOS应用的安全性. 引言: 随着智能手 ...

  9. 一、mysql5.7 rpm 安装(单机)

    一.下载需要的rpm包mysql-community-client-5.7.26-1.el6.x86_64.rpmmysql-community-common-5.7.26-1.el6.x86_64. ...

  10. 响应式开发bootstrap

    响应式开发原理 就是使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的. 平时我们响应式尺寸划分 超小屏幕(手机,小于768px):设置宽度为100% 小屏幕(平板,大于等于7 ...