【发布时间】:2017-09-21 12:10:59
【问题描述】:
感谢 zabbix 服务器的 JMX 探测,我一直在尝试使用 Tomcat6 监控服务器。
在zabbix server端有:zabbix-server3.4 / zabbix-java-gateway 在Tomcat服务器端有:zabbix-agent / tomcat6
zabbix_java_gateway.conf的配置:
LISTEN_IP="11.11.150.99"
START_POLLERS=5
我在一些教程上看到我添加了修改catalina.sh文件的配置所以我替换了:
CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
与
CATALINA_OPTS="$CATALINA_OPTS\
-Dcom.sun.management.jmxremote \
-Djava.rmi.server.hostname=11.11.150.152 \
-Dcom.sun.management.jmxremote.port=10052 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=11.11.150.152"
使用Tomcat6进行监控的主机(我们称他为T6):11.11.150.152 操作系统:Ubuntu 10.01.4 LTS
T6在Zabbix服务器上的主机配置:
Agents: Zabix Agent is enable, SNMP too, JMX is red:" cannot connect to [[11.11.150.152]:10052]: [111] Connection refused"
T6的配置:
Name: T6
Agent interface: 11.11.150.152:10050 -working (green)
Agent interface: 11.11.150.152:161 -working (green)
Agent interface: 11.11.150.152:10052 -not working (red)
Zabbix Server的配置:
Name: Zabbix server
Agent interface: 11.11.150.99:10050 -working (green)
我尝试使用 tcpdump 进行调试: tcpdump -i eth0 主机 11.11.150.99 和端口 10052 我得到:
14:01:11.365982 IP (tos 0x0, ttl 64, id 32717, offset 0, flags [DF], proto TCP (6), length 60)
zabbix.eco.local.34636 > sva2.eco.local.10052: Flags [S], cksum 0x0224 (correct), seq 1624311701, win 29200, options [mss 1460,sackOK,TS val 23820376 ecr 0,nop,wscale 7], length 0
14:01:11.366002 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
sva2.eco.local.10052 > zabbix.eco.local.34636: Flags [R.], cksum 0x55c7 (correct), seq 0, ack 1624311702, win 0, length 0
所以他们正在通信,但 T6 拒绝了我的 zabbix 服务器请求。
我错过了什么?
更新: 我将 catalina conf 文件中的端口更改为 12345。 现在我收到此错误消息:
java.io.IOException:无法检索 RMIServer 存根:javax.naming.ServiceUnavailableException [根异常是 java.rmi.ConnectException:连接拒绝主机:11.11.150.152;嵌套异常是: java.net.ConnectException: Connexion refusée (Connection denied)]
我的 JMX 接口是:[IP] 11.11.150.152 [PORT] 12345
【问题讨论】:
-
您的 JMX 接口详细信息是什么?
-
JMX 接口:[IP] 11.11.150.152 [端口] 12345,你还需要别的吗?我真的很想让它工作
-
但是在你的 Tomcat 配置中,你说你有
-Dcom.sun.management.jmxremote.port=10052。您应该将您的 JMX 接口端口与任何 Tomcat 监听的端口相匹配,并确保您实际上可以从您的 Zabbix 服务器(或 Java 网关)系统访问该端口。 -
我更改了它并在 JAVA_OPTS 和 CATALINA_OPTS 中指定了它(我不知道我必须使用哪个)。仍然收到相同的错误消息。我怎样才能确保我可以到达它?上面没有iptable或selinux
-
首先,检查Tomcat是否监听你配置的端口。然后,检查与该端口的 TCP 连接(telnet 通常是最简单的方法)。然后,使用
jmxterm之类的 CLI 工具检查访问权限。如果一切正常,那么它就变成了 Zabbix 问题 :)