JavaVisualVM配置远程调试jmx之踩坑日记

  懒散了许久,很久没有写博客了。因疫情过后新换工作,正式投入的ERP的开发与学习中。也正式入坑外包公司,发现外包似乎并没有传说中的:'你是外包不可以偷吃公司零食'。总体来说,国企上班制度还是挺好的,有更多的时间去思考之后的规划及职业发展了。本着技术人不断学习的精神,最近又开始学习java生产环境的课程了,之后会分享一系列相关的知识总结,共勉。

  回归正题,如何配置远程监控程序的运行状态呢?这里推荐使用jdk自带的jvisualvm软件。

  1、在服务器的Tomcat的bin目录下,修改catalina.sh配置文件。

  找到JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"(PS:vim中查找字符方式为/字符)。在此之上补充对JAVA_OPTS的设置。

 

 

  2、ps -ef | grep tomcat 得到pid

  3、kill -9 pid,杀死tomcat进程

  4、./startup.sh重新启动tomcat

  5、打开jvisualvm软件,右键远程,添加远程服务器

 

 

  6、在远程服务器上右键添加jmx连接

 

   7、自信满满的点击了确定,以为能够成功了。(PS:因使用的服务器为阿里云的,所以需要配置安全组规则,否则无法访问对应的端口)天不遂人愿,连接失败,报错信息为:jvisualvm来连接VM的时候,报无法使用错误:service:jmx:rmi:....连接到ip:port

  8、上网百度,各种猜测,网上的解决方案大概为:排查防火墙是否关闭、catalina.sh配置不生效。

  9、查看防火墙的状态:systemctl status firewalld

 

 

 

   10、配置不生效不好排查了,头疼了咋办呢?

  11、往往一条路走不通的时候,可以试试另一条路,那么我们换个思路来排查。查下tomcat 进程占用的端口号

    根据进程查端口号:netstat -antup | grep pid 

    根据端口号查看进程:netstat -ntlp | grep port

 

 

   12、发现配置了8080和9004的端口号,我们已经在安全组中添加了,但是37231和42108的没有添加,问题是不是这个导致的呢,百度一下。发现如下:

 

 

   13、那么我们在安全中把这两个被监听的端口号配置上,再试一下。功夫不负有心人,结果就成功了。

 

 

posted @ 2020-05-24 23:56  虫虫低语  阅读(1009)  评论(0编辑  收藏  举报