2021-08-25

tomcat啟用jstatd及jmx (VisualVM)

因為jmx及jstatd二個用VisualVM連線時,jmx無法使用Visual GC,jstatd無法使用Mbeans(怎麼這麼煩啊),所以二個乾脆都給它同時啟用。


1.新增 /usr/lib/systemd/system/tomcat-jstatd.service:(jstatd預設port開在1099)
#Tomcat jstatd monotor service
[Unit]
Description=jstatd monitor for tomcat
Wants==tomcat.service
After=tomcat.service

[Service]
Type=simple
ExecStartPre=/bin/bash -c "echo -e 'grant { permission java.security.AllPermission; };' > /tmp/jstatd.policy"
ExecStart=/usr/bin/jstatd -p 1099 -J-Djava.security.policy=/tmp/jstatd.policy -J-Djava.rmi.server.hostname=<your_public_ip>
ExecStopPost=/bin/bash -c "rm /tmp/jstatd.policy"
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

2.修改  /usr/lib/systemd/system/tomcat.service: (rmi port固定在1100,若不設定的話會隨機; jmx port開在1101,一定要設)

[Service]
...
#JMX form VisualVMEnvironment='JAVA_OPTS=-Djava.rmi.server.hostname=<your_public_ip> -Dcom.sun.management.jmxremote.rmi.port=1101 -Dcom.sun.management.jmxremote.port=1100 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'


3.防火牆規則記得修改開通1099, 1100, 1101,不過我是直接把自已的網段加入zone=trusted,這樣所有的port都可以連:

sudo firewall-cmd --zone=trusted --add-source=100.101.102.0/24 --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all --zone=trusted

沒有留言:

張貼留言