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)在遠程的時候, 輸入賬號密碼即可