摘要

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. 看完这篇,DWS故障修复不再愁

    摘要:本文详细梳理分析了DWS服务面临软硬件故障场景和对应的修复原理,希望借此能够让你对DWS的集群故障修复有个全面深入的了解. 本文分享自华为云社区<GaussDB(DWS)故障修复系统性介绍 ...

  2. 云小课|MRS基础原理之Hudi介绍

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:Hudi是数据湖的 ...

  3. MPU:鸿蒙轻内核的任务栈的溢出检察官

    摘要:MPU(Memory Protection Unit,内存保护单元)把内存映射为一系列内存区域,定义这些内存区域的维洲,大小,访问权限和内存熟悉信息. 本文分享自华为云社区<鸿蒙轻内核M核 ...

  4. 看FusionInsight Spark如何支持JDBCServer的多实例特性

    摘要:采用多主实例模式的HA方案,不仅可以规避主备切换服务中断的问题,实现服务不中断或少中断,还可以通过横向扩展集群来提高并发能力. 本文分享自华为云社区<FusionInsight Spark ...

  5. Jenkins 手动安装插件

    手动装插件太麻烦了,还是装最新版 Jenkins 配置源 然后在Manage Plugins -->Manage Plugins -->Advanced 中,把Update Site修改为 ...

  6. 【docker】运维相关名词 Iaas-Paas和Saas docker镜像设置 启动与停止常用命令 镜像相关命令 容器相关命令

    目录 上节回顾 今日内容 1 什么是Iaas-Paas和Saas 2 docker 启动设置镜像 2.1 启动与停止常用命令 3 镜像相关命令 4 容器相关命令 练习 上节回顾 # 1 flask-s ...

  7. 一个简单的例子看明白 async await Task

    测试代码: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using Sys ...

  8. L2-020 功夫传人 (25分)

    分析: ⽤⼆维数 组v存储师⻔谱系关系,v[i]表示编号为i的师傅所拥有的徒弟,如果徒弟个数等于0, 也就是说这是个得道者,那么v[i][0]保存放⼤的倍数,⽽且⽤visit[i] = true标记当 ...

  9. vivo 商城架构升级-SSR 实战篇

    一.前言 在前面几篇文章中,相信大家对vivo官网商城的前端架构演变有了一定的了解,从稳步推进前后端分离到小程序多端探索实践,团队不断创新尝试. 在本文中,我们来分享一下vivo官网商城在Node 服 ...

  10. 记一次github上传文件夹(项目)的历程和踩坑

    1.git官网登录自己的git账号(没有就自己注册一个):https://github.com/  2.首先是下载安装好git软件:https://gitforwindows.org/ (1)这里要注 ...