Jvisualvm监控本地、远程Java进程

2023-11-22 02:30

本文主要是介绍Jvisualvm监控本地、远程Java进程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Jvisualvm监控本地、远程Java进程

  • 监控本地Java进程
  • 监控远端Java进程
    • JMX
    • 创建配置文件
    • 开启远程监控
    • 启动Tomcat
    • 创建连接

监控本地Java进程

在命令行输入jvisualvm即可启动jvisualvm

在这里插入图片描述

双击某个进程即可打开

在这里插入图片描述

监控远端Java进程

Jvisualvm不仅是可以监控本地jvm进程,还可以监控远程的jvm进程,需要借助于JMX技术实现。

这里以jvisualvm监控远端Tomcat的Java进程为例

JMX

JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。

创建配置文件

tomcat/conf文件目录中创建两个文件jmxremote.accessjmxremote.password

jmxremote.password文件用于配置账号、密码

touch jmxremote.password账号 密码guest guestmanager manager

jmxremote.access文件用于配置账号权限

touch jmxremote.access用户 权限
guest readonlymanager readwrite

授予权限

chmod 600 jmx*

开启远程监控

要想让服务器上的tomcat被连接,需要改catalina.sh文件

注意:最好一个参数一行的配置

# ----- Execute The Requested Command -----------------------------------------
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote"
CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=112.74.96.150"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=8085" 
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.rmi.port=8086" 
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false" 
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access" 
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password"

参数说明

server.hostname:ip
jmxremote.port:开启jmx的端口,JMX远程连接端口
rmi.port: 通信端口,默认随机
jmxremote.ssl:是否开启ssl(false/true)
jmxremote.authenticate:是否开启鉴权功能,账号密码远程监控(false/true)
jmxremote.password.file:密码文件路径
jmxremote.access.file:权限文件路径

注意:云服务器一定要注意RMI端口的设置,否则无法远程连接 ! ! !

启动Tomcat

进入bin目录,启动tomcat

./startup.sh

查看tomcat启动日志

tail -f ../logs/catalina.out

查看tomcat端口监听

[root@administrator bin]# lsof -i tcp:8080
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    18876 root   63u  IPv6 758429      0t0  TCP *:webcache (LISTEN)

查看8085监听情况

[root@administrator bin]# lsof -i:8085
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    18876 root   21u  IPv6 757493      0t0  TCP *:8085 (LISTEN)
[root@administrator bin]# netstat -antup | grep 18876
tcp6       0      0 :::8080                 :::*                    LISTEN      18876/java          
tcp6       0      0 :::8085                 :::*                    LISTEN      18876/java          
tcp6       0      0 :::8086                 :::*                    LISTEN      18876/java          
tcp6       0      0 :::43805                :::*                    LISTEN      18876/java          
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      18876/java          
tcp6       0      0 172.22.4.21:8086        116.169.4.136:52959     ESTABLISHED 18876/java          
tcp6       0    101 172.22.4.21:8086        116.169.4.136:1957      ESTABLISHED 18876/java

创建连接

在jvisualvm中选中远程,右击添加,主机名上写服务器的ip地址,然后点击确定
在这里插入图片描述

右击该主机IP,添加JMX,也就是通过JMX技术具体监控远端服务器哪个Java进程

在这里插入图片描述
在JMX中输入如下信息

端口:8085用户名:manager密码:manager勾选不要求SSL连接

连接成功
在这里插入图片描述

这篇关于Jvisualvm监控本地、远程Java进程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/406818

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖