我试图让Zabbix Java Gateway插入一个启用了Java Management Extensions的JVM。
我已经配置了基本项目检查(来自Zabbix文档)......
jmx["java.lang:type=Memory","HeapMemoryUsage.used"]
...但是引发了以下异常:
2015-09-28 15:00:37.702 [pool-1-thread-1] WARN com.zabbix.gateway.SocketProcessor - error processing request
com.zabbix.gateway.ZabbixException: java.net.SocketTimeoutException: connection timed out: service:jmx:rmi:///jndi/rmi://192.168.10.10:9010/jmxrmi
at com.zabbix.gateway.JMXItemChecker.getValues(JMXItemChecker.java:97) ~[zabbix-java-gateway-2.4.6.jar:na]
at com.zabbix.gateway.SocketProcessor.run(SocketProcessor.java:63) ~[zabbix-java-gateway-2.4.6.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_51]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_51]
Caused by: java.net.SocketTimeoutException: connection timed out: service:jmx:rmi:///jndi/rmi://192.168.10.10:9010/jmxrmi
at com.zabbix.gateway.ZabbixJMXConnectorFactory.connect(ZabbixJMXConnectorFactory.java:123) ~[zabbix-java-gateway-2.4.6.jar:na]
at com.zabbix.gateway.JMXItemChecker.getValues(JMXItemChecker.java:89) ~[zabbix-java-gateway-2.4.6.jar:na]
... 4 common frames omitted
两台主机之间有完美的连接,并且未启用防火墙过滤。我已将超时阈值增加到30秒。
Java应用程序已在Tomcat(应用程序容器/服务器)中启动,其中包含以下参数:
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.net.preferIPv4Stack=true
-Djava.rmi.server.hostname=192.168.10.10
根据我的研究,这似乎是启用JMX的正确方法。
(我不确定异常中的JMX URL是否为提示 - IP地址来自Zabbix主机定义,但我不知道URL的其余部分定义在哪里)。
你能帮助我找出导致Zabbix物品检查破坏的原因吗?