• 博客访问: 466180
  • 博文数量: 111
  • 博客积分: 660
  • 博客等级: 上士
  • 技术积分: 1796
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-08 11:39
文章分类

全部博文(111)

文章存档

2017年(50)

2016年(7)

2015年(3)

2014年(3)

2013年(31)

2012年(2)

2011年(1)

2006年(1)

2005年(13)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题

分类: 系统运维

JMX监听端口的继续探索和分析

接上篇zabbix监控tomcat出现"Connection refused to host: 127.0.0.1"的故障解决继续了解相关的jmx的知识,上次故障解决后,又发现了新的情况。

新的现象

tomcat监听了5个端口

其中
51024 是http访问端口
52024 是jmx监听端口
53024 是shutdown端口
剩余两个端口不知用处,和开发沟通,开发也未在程序内监听,又观察其他主机上部署的该应用,
发现也有两个不知用途的端口在监听。 

如下所示

.....
ps -ef | grep tripWeb

tomcat   20994     1  4 Jun05 ?        01:08:31 /usr/java/default/bin/java -Xms1024M -Xmx2048M -server -XX:PermSize=256M -XX:MaxPermSize=512M -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
......
lsof -p 20994 |grep LISTEN
java    20994 tomcat   16u  IPv4          247485728        0t0       TCP *:52373 (LISTEN)
java    20994 tomcat   17u  IPv4          247485729        0t0       TCP *:52024 (LISTEN)
java    20994 tomcat   18u  IPv4          247485730        0t0       TCP *:57373 (LISTEN)
java    20994 tomcat   37u  IPv4          247478500        0t0       TCP *:51024 (LISTEN)
java    20994 tomcat   68u  IPv4          247485737        0t0       TCP localhost:53024 (LISTEN)

尝试分析

抓包看看两个端口通讯内容

发现52373端口通讯内容是jmx相关的数据,具体本例是zabbix的java-gateway和tomcat之间监控数据通讯。

  • 如下示例
tcpdump -X -nnn port 52373

......
17:11:23.903009 IP 10.0.1.2.43200 > 10.0.1.22.52373: Flags [P.], seq 4074:4215, ack 10549, win 376, options [nop,nop,TS val 3942015991 ecr 4132106950], length 141
    0x0000:  4500 00c1 04bb 4000 4006 1f65 0a00 0102  E.....@.@..e....
    0x0010:  0a00 0116 a8c0 cc95 0c50 7768 9869 36e9  .........Pwh.i6.
    0x0020:  8018 0178 b3f4 0000 0101 080a eaf6 63f7  ...x..........c.
    0x0030:  f64a f2c6 50ac ed00 0577 2200 3f44 6763  .J..P....w".?Dgc
    0x0040:  3853 7066 4c16 4400 0001 5c77 0823 cd57  8SpfL.D...\w.#.W
    0x0050:  66ff ffff fff0 e050 0a39 4d72 1573 7200  f......P.9Mr.sr.
    0x0060:  1b6a 6176 6178 2e6d 616e 6167 656d 656e  .javax.managemen
    0x0070:  742e 4f62 6a65 6374 4e61 6d65 0f03 a71b  t.ObjectName....
    0x0080:  eb6d 15cf 0300 0070 7870 7400 2a6a 6176  .m.....pxpt.*jav
    0x0090:  612e 6c61 6e67 3a74 7970 653d 4d65 6d6f  a.lang:type=Memo
    0x00a0:  7279 506f 6f6c 2c6e 616d 653d 5053 2050  ryPool,name=PS.P
    0x00b0:  6572 6d20 4765 6e78 7400 0555 7361 6765  erm.Genxt..Usage
    0x00c0:  70                                       p
......

57373的抓包数据,持续抓包半小时一直无数据

tcpdump -X -nn dst host 10.0.1.22 and dst port 57373 

既然发现和jmx的联系后,求助于google后总结如下

  • -Dcom.sun.management.jmxremote.port

    该参数指定端口后java会开两个随机端口,一个作为jmx的数据通讯端口,另外一个作为jconsole的本地连接端口,如上面 52373为jmx通讯端口,57373为jconsole通讯端口

  • jmx的监听和数据通讯端口合并方法,下面两个参数设置相同端口即可(java7 update25起有效)

 com.sun.management.jmxremote.port
    com.sun.management.jmxremote.rmi.port
  • jconsole 端口禁止监听方法

    启动参数加上 -XX:+DisableAttachMechanism

致谢与参考

Why Java opens 3 ports when JMX is configured?

tomcat 7 jmx配置访问



阅读(6734) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

hu_yuchuang2017-06-12 11:44:02

mark

评论热议
请登录后评论。

登录 注册