1. 准备好springboot 的jar包
2. 编写启动脚本.
这是改动之前的脚本:
jarname='eureka-server'
pid=`ps aux | grep $jarname | grep -v grep | awk '{print $2}'`
echo $pid
if [ "$jarname" != "" ]
then
kill -9 $pid
fi
kill -9 $pid
#!/bin/sh --spring.profiles.active=dev
nohup java \
-jar $jarname.jar \
--spring.profiles.active=local \
-server -Xms512m -Xmx1024m -Xss256k > ./$jarname.log 2>&1 &
echo "start successed!!!"
这是改动之后的
jarname='eureka-server'
pid=`ps aux | grep $jarname | grep -v grep | awk '{print $2}'`
echo $pid
if [ "$jarname" != "" ]
then
kill -9 $pid
fi
kill -9 $pid
#!/bin/sh --spring.profiles.active=dev
nohup java \
-Djava.rmi.server.hostname=20.21.1.147 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar $jarname.jar \
--spring.profiles.active=local \
-server -Xms512m -Xmx1024m -Xss256k > ./$jarname.log 2>&1 &
echo "start successed!!!"
主要是增加这段启动参数:
-Djava.rmi.server.hostname=192.168.2.39 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
其中hostname是主机内网ip, port是端口开放, authenticate我这边选择不用验证.
3. 使用jconsole 或jvisualVM 监控远程 spring boot程序
博主这边使用了jvisualVM做例子:
3.1先命令行输入 jvisualvm 打开jvisualVM 程序
3.2 添加远程主机
这里填写你的hostname
3.3 添加JMX连接
右键远程主机, 点击添加jmx连接
补上端口号, 我这里是1009
点击确定.
连接成功;
3.4 验证登录
(1)将authenticate 改成true
Dcom.sun.management.jmxremote.authenticate=true
(2)并且添加额外的两行启动参数
Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access -
Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password"
(3) 在../conf 目录下添加如下文件jmxremote.access和jmxremote.password
jmxremote.access 文件
guest readonly
manager readwrite
jmxremote.password 文件
guest guest
manager manager
(4)授予权限 : chmod 600 *jmxremot*
(5)在远程的时候, 输入账号密码即可