在Java JDK环境下,没有运行任何容器,如tomcat,weblogic,等等,只有一个JVM运行,是一样可以监控堆和栈等内存参数的。
被监控的主机,需要运行JDK环境
[root@locahost lxs]# java -version java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) [root@locahost lxs]#
由于我们这边启动java程序用的是一个脚本,脚本中包含了允许zabbix,或java自带的jconsole监控的参数。我有好几个java程序,每个程序启动关闭用的都是不同的脚本,如下:
/usr/jdk/jdk1.8.0_25/bin/java -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.1.234 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Xmx2560M -Xms512M -XX:PermSize=64M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError com.haochedai.inter.app.InterfaceApplication --server.port=$PORT ${SPRING_PROFILE_OPTS} >/root/j.log 2>&1 &
注意,我是加了这几行:
-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.1.234 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
其中第二行
Djava.rmi.server.hostname=192.168.1.234
这个如果不加,用cmdclint 或者是jconsole远程连接,你是连不上的。
同时authenticate和ssl都被我关闭了--false,这样远程监控就不需要用户名和密码,也不需要ssl加密就可以直接监控了。
重启脚本
[root@locahost lxs]# sh plat-interface restart
重启后发现端口开了,9999
本文出自 “清晰明了” 博客,请务必保留此出处http://duanyexuanmu.blog.51cto.com/1010786/1758762
原文地址:http://duanyexuanmu.blog.51cto.com/1010786/1758762