43234 发表于 2016-4-1 10:11:06

zabbix 监控jvm

在Java JDK环境下,没有运行任何容器,如tomcat,weblogic,等等,只有一个JVM运行,是一样可以监控堆和栈等内存参数的。

被监控的主机,需要运行JDK环境

1
2
3
4
5
# 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)
#





由于我们这边启动java程序用的是一个脚本,脚本中包含了允许zabbix,或java自带的jconsole监控的参数。我有好几个java程序,每个程序启动关闭用的都是不同的脚本,如下:



1
2
3
4
5
6
7
8
/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 &






注意,我是加了这几行:

1
2
3
4
5
-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





其中第二行

1
Djava.rmi.server.hostname=192.168.1.234




这个如果不加,用cmdclint 或者是jconsole远程连接,你是连不上的。
同时authenticate和ssl都被我关闭了--false,这样远程监控就不需要用户名和密码,也不需要ssl加密就可以直接监控了。

重启脚本# sh plat-interface restart
重启后发现端口开了,9999






页: [1]
查看完整版本: zabbix 监控jvm