Chinaunix首页 | 论坛 | 博客
  • 博客访问: 928871
  • 博文数量: 177
  • 博客积分: 8613
  • 博客等级: 中将
  • 技术积分: 2835
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-12 04:16
文章分类
文章存档

2012年(12)

2011年(24)

2010年(24)

2009年(75)

2008年(42)

我的朋友

分类: Java

2008-11-14 21:17:07

今天弄出来了jconsole监控jvm,分享给大家,如果有需要的话,很有用处,主要的精华在于红体的地方,是灵光一现想到的办法,与大家共勉之^_^
 
内网配置jconsole 并通过外网连接:
 
内网192.168.0.37上:
 
JAVA_HOME=/home/jdk
mkdir $JAVA_HOME/jconsole
cp $JAVA_HOME/jre/lib/management/jmxremote.password.template $JAVA_HOME/jconsole/jmxremote.password
chmod 600 $JAVA_HOME/jconsole/jmxremote.password
vi jmxremote.password
 
去掉#monitorRole RED前的注释并将RED修改为你要设置的密码。(安全起见,只开放有只读权限的用户)
 
修改 $RESIN_HOME/bin/start.sh,添加以下参数:
 
-J-Dcom.sun.management.jmxremote.port=8858 -J-Dcom.sun.management.jmxremote.password.file=$JAVA_HOME/jconsole/jmxremote.password -J-Dcom.sun.management.jmxremote.ssl=false
 
在内网37上执行:hostname -->执行结果为:bj37.sina.com,则需要修改/etc/hosts文件,增加以下一行:
212.10.4.25  bj37.sina.com
212.10.4.25是从外网连接jconsole的服务器ip
,(如果resin服务器有外网,直接写外网真实ip即可)
 
外网212.10.4.25上的iptables设置DNAT,以便转发请求给后台的resin:
 
iptables -F
iptables -t nat -F
MY_SERVER_IP=212.10.4.25
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -d 0/0 -j MASQUERADE
iptables -t nat -A PREROUTING  -p tcp -d $MY_SERVER_IP -j DNAT  --to-destination 192.168.0.37
 
 
 
注意如果这个外网需要给不同的后台做DNAT的话,需要指定目的端口,如:
 
iptables -F
iptables -t nat -F
MY_SERVER_IP=212.10.4.25
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -d 0/0 -j MASQUERADE
iptables -t nat -A PREROUTING  -p tcp -d $MY_SERVER_IP --dport 520 -j DNAT  --to-destination 192.168.0.37:88
iptables -t nat -A PREROUTING  -p tcp -d $MY_SERVER_IP --dport 39959 -j DNAT  --to-destination 192.168.0.37:39959
 

注:
520--外面的客户连接37的jconsole的端口
39959--37上启动jmx以后随机分配的端口,这个需要继续研究,看能否让jmx固定地分配某个端口,否则的话,对iptables防火墙的规则是个小麻烦。
阅读(1346) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-11-29 18:18:57

我知道这是一个小小的收获,继续加油争取创造奇迹......