JConsole连接远程服务器方法

本文详细介绍了如何在Linux环境下配置JMX参数实现远程监控,包括启动项目时添加特定参数,以及通过脚本自动化启动和停止Java应用程序。同时,介绍了如何使用jvisualvm进行远程监控,提供了一个全面的JMX远程监控解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jconsole远程连接,必须配置JMX连接参数

1、linux 启动项目时,添加参数

java 
-Djava.rmi.server.hostname=10.160.13.111  #远程服务器ip,即本机ip,可以不需要
-Dcom.sun.management.jmxremote #允许JMX远程调用,jdk1.6之前需要,之后后面默认开启
-Dcom.sun.management.jmxremote.port=3214  #自定义jmx 端口号
-Dcom.sun.management.jmxremote.ssl=false  # 是否需要ssl 安全连接方式
-Dcom.sun.management.jmxremote.authenticate=false #是否需要秘钥
 -jar test.jar 

2、启动脚本如下所示

#!/bin/bash --
##Description: start and shutdown for sc.
##Author: JXQ
##Version: 0.1
##Notes:
# 20181129: create.


MODE="${1}"
JAVA_BASE="$(echo $(cd "$(dirname "$0")"; pwd) |cut -d'/' -f1-3)"
PORT="$(echo ${JAVA_BASE} |awk -F'-' '{print $NF}')"
JAR_FILE="${JAVA_BASE}/apps/*.jar"
LOG_FILE="/data/logs/java-${PORT}/java-${PORT}.log"
NOHUP="/usr/bin/nohup"
source /etc/profile

start_jar(){
    ${NOHUP} java -Xms1g -Xmx1g -Xss512k -XX:NewSize=1g -XX:MaxNewSize=1g \
	-Dcom.sun.management.jmxremote.port=9001 \
	-Dcom.sun.management.jmxremote.ssl=false \
	-Dcom.sun.management.jmxremote.authenticate=false \
   -jar ${JAR_FILE} \
    --server.port=${PORT} \
    --spring.profiles.active=dev-zt \
    >> ${LOG_FILE} 1>&1 &
    if [ $? -eq 0 ];then
        echo "`date +%F' '%T` start jar: success." >> ${LOG_FILE}
    else
        echo -e "`date +%F' '%T` [\033[41;37mERROR\033[0m] start jar: failed." >> ${LOG_FILE}
    fi
}

stop_jar(){
    JAR_PID=`ps -ef | grep ${JAVA_BASE} |grep -Ev 'grep|catalina.out|system.out|sh ' |awk '{print \$2}'`
    if [ ! ${JAR_PID} ];then
        echo "`date +%F' '%T` jar process is not exist." >> ${LOG_FILE}
    else
        /bin/kill ${JAR_PID}
        if [ $? == 0 ];then
            JAR_PID_1=`ps -ef | grep ${JAVA_BASE} |grep -Ev 'grep|catalina.out|system.out|sh ' |awk '{print \$2}'`
            if [ ! ${JAR_PID_1} ];then
                echo 'stop jar: success.' >> ${LOG_FILE}
            else
                /bin/kill -9 ${JAR_PID_1}
            fi
        else
            echo -e "`date +%F' '%T` [\033[41;37mERROR\033[0m] stop jar process: failed." >> ${LOG_FILE}
            exit 1
        fi
    fi
}

if [ x${MODE} = x"" ]; then
    echo -e "`date +%F' '%T` [\033[41;37mERROR\033[0m] Usage: sh $0 {start|stop|restart}" && exit 1
else
    case ${MODE} in
    stop)
            stop_jar
            ;;
    start)
            stop_jar && start_jar
            ;;
    restart)
            stop_jar && start_jar
            ;;
    esac
fi

3、启动方式

4.远程连接

jvisualvm同jconsole都是一个基于图形化界面的、可以查看本地及远程的JAVA GUI监控工具,可以认为jvisualvm是jconsole的升级版,因此这里不再介绍jconsole,只介绍jvisualvm。jvisualvm是一个综合性的分析工具,可以认为其整合了jstack、jmap、jinfo等众多调试工具的功能,并以图形界面展示.

jvisualvm启动很简单,直接在命令行中输入"jvisualvm"即可。之后出现下图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值