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"即可。之后出现下图: