您的位置:首页 > 运维架构 > Tomcat

添加jstatd、jmx启动远程java监控或tomcat监控

2016-03-12 14:21 549 查看

1 jstatd配置

需要jdk支持,jre不支持。(可以用jre运行,单独安装jdk,只用jstatd)

新建文件jstatd.all.policy(可自定义文件名),内容如下:

grant codebase "file:${java.home}/../lib/tools.jar" {

    permission java.security.AllPermission;

};

执行命令(文件名与上一步相同):

jstatd -J-Djava.security.policy=jstatd.all.policy 

查看1099端口是否正常开启。

2 jmx配置

添加如下jvm参数(根据情况填入相应的内网或外网ip地址和端口):

-Dcom.sun.management.jmxremote 

-Dcom.sun.management.jmxremote.port=9008 

-Dcom.sun.management.jmxremote.ssl=false 

-Dcom.sun.management.jmxremote.authenticate=false 

-Djava.rmi.server.hostname=192.168.1.111

参照如下两个例子:

2.1 监控普通java程序

可在~/.bash_profile最后追加如下配置:

export JAVA_OPTS="-Dcom.sun.management.jmxremote 

-Dcom.sun.management.jmxremote.port=9008 

-Dcom.sun.management.jmxremote.ssl=false 

-Dcom.sun.management.jmxremote.authenticate=false 

-Djava.rmi.server.hostname=192.168.1.111"

使上述配置生效:

source ~/.bash_profile

启动想要监控的java程序。

2.2 监控tomcat

在tomcat的bin目录下的catalina.sh中约236行处(搜索# ----- Execute The Requested Command ----)添加如下配置:

# ----- Execute The Requested Command -----------------------------------------

[ $1 != "stop" ] && JAVA_OPTS="-Dcom.sun.management.jmxremote \

-Dcom.sun.management.jmxremote.port=9008 \

-Djava.rmi.server.hostname=192.168.1.111 \

-Dcom.sun.management.jmxremote.ssl=false \

-Dcom.sun.management.jmxremote.authenticate=false $JAVA_OPTS"

export JAVA_OPTS

启动tomcat即可。

3 iptables配置

需把jstatd和jmx用到的端口添加例外,由于JMX还额外启动了一个随机端口,所以需要设置第三条的端口范围。

在/etc/sysconfig/iptables中添加如下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 1099 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 9008 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 10080:65535 -j ACCEPT

重启iptables:

service iptables restart

4 测试是否启动成功

远程机器上启动jvisualvm或者jconsole,添加远程主机,添加JMX连接,输入上述配置的ip和端口,连接成功即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat jdk jmx jstatd