kaywang 发表于 2019-1-20 12:57:33

zabbix 监控jvm

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

  被监控的主机,需要运行JDK环境
# 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程序,每个程序启动关闭用的都是不同的脚本,如下:
  

http://s4.运维网.com/wyfs02/M02/7E/50/wKioL1b8mqyBmDS2AAAPuWcAkww205.png
/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加密就可以直接监控了。
  

重启脚本
# sh plat-interface restart


重启后发现端口开了,9999
http://s3.运维网.com/wyfs02/M01/7E/50/wKioL1b8mIeRg0EVAABdcCcmt_U640.png


  

http://s1.运维网.com/wyfs02/M02/7E/54/wKiom1b8lx3DG_TxAAHrtZ7Z8VY209.png
  

  

  

  




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