Zabbix JMX Tomcat监控

时间:2014-07-21 10:31:52

标签: zabbix

我一直在尝试设置Zabbix来监控2台不同的Amazon EC2机器上的2台tomcat服务器,但是徒劳无功。

主机上的Z为绿色,但是JMX为红色且出现这些错误 - ZBX_TCP_READ()失败:[4]系统调用中断
- 另一个错误[111]连接被拒绝 和许多这样的错误,一个接一个,在某种意义上我解决了一个错误,看到又出现了一个新的错误。


这些是一些假设 所有机器都运行Ubuntu 12.10及更高版本 服务器的IP地址:66.55.12.120(运行Zabbix服务器v2.2.4(修订版46772)(2014年6月23日))
代理的IP地址:87.52.45.198(运行Zabbix代理v2.2.2(修订版42525)(2014年2月12日))
我本地计算机的IP地址: 76.89.54.111

这是我到目前为止所做的。

在服务器端:
1)使用sudo apt-get install zabbix-server-mysql.安装Zabbix_server 2)已经安装并配置了GUI,mysql数据库。
3)以下是我在文件中/etc/zabbix/zabbix_server.conf

所做的唯一3次更改
  ... 
  JavaGateway=localhost
  JavaGatewayPort=10052
  StartJavaPollers=5
  ...

4)使用sudo apt-get install zabbix-java-gateway.来安装Zabbix Java网关 5)以下是我在文件中做出的唯一3次更改   /etc/zabbix/zabbix_java_gateway.conf   

  ... 
  LISTEN_IP="127.0.0.1"
  LISTEN_PORT=10052
  START_POLLERS=5
  ...


在客户端: 1)使用安装的Zabbix客户端    sudo apt-get install zabbix-agent
2)以下是我在文件中进行的仅有的3次更改

  /etc/zabbix/zabbix_agentd.conf 
  ... 
  Server=66.55.12.120
  StartAgents=5
  ServerActive=66.55.12.120:10051
  Hostname=Security-test-JMX-EC2
  ... <br />

3)主机名与在GUI上创建主机时提到的主机名相同。

我认为IP和端口存在一些问题。因此,以下是从机器的Amazon EC2安全组获取的两台计算机的出站规则

OUTBOUND RULES for SERVER SECURITY GROUP:
Type      Protocol  Port   Source           Reasoning
Custom-   TCP       8080   0.0.0.0/0
TCP Rule    

All ICMP  All       N/A    0.0.0.0/0    

Custom-   TCP       10052  27.52.52.128/32   For access from Agent
TCP Rule

Custom-   TCP       8081   76.84.120.130/32  To access Zabbix GUI from-
TCP Rule                                     -my local machine's web browser

Custom-   TCP       10051  27.52.52.128/32   As the agent responds to- 
TCP Rule                                     -the server on Port 10051TCP Rule-
                                             -Must allow inbound communications-
                                             - from the agent.

Custom-   TCP       11000  27.52.52.128/32   The agent's JMX reporting-
TCP Rule                                     -happens on port 11000(not on 12345).

OUTBOUND RULES for CLIENT SECURITY GROUP:
Type    Protocol Port   Source
HTTPS     TCP   443     0.0.0.0/0

Custom-   TCP   10050   66.55.12.120/32
TCP Rule

Custom-   TCP   10052   66.55.12.120/32
TCP Rule

Custom-   TCP   11000   66.55.12.120/32
TCP Rule

HTTP      TCP   80  76.89.54.111/32

Custom-   TCP   8080    76.89.54.111/32
TCP Rule

Custom-   TCP   8443    76.89.54.111/32
TCP Rule


我错过了什么?请指导我。 任何帮助表示赞赏。

谢谢你 Goutham

5 个答案:

答案 0 :(得分:7)

如果可以,则在zabbix主机上运行VisualVm(可能使用隧道X会话),看看是否可以使用它连接到目标JVM。如果您无法连接,则无法从Zabbix连接。

尝试使用以下CATALINA_OPTS,替换为您希望JMX监听的目标上的IP:

export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.local.only=falseom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<LOCAL_IP>"

这将禁用所有JMX安全性,因此请注意!

一旦你希望连接它,Zabbix中的“Tomcat JMX”项目也都是错误的!例如

Zabbix默认值不正确:

jmx["Catalina:type=GlobalRequestProcessor,name=http-8080",bytesReceived]

正确录入:

jmx["Catalina:type=ThreadPool,name=\"http-bio-8080\"", bytesReceived]

请注意转义的引号和错误的主题名称。将Mbeans插件添加到VisualVM,并使用它来浏览目标VM上的MBean,并检查Zabbix名称。

它最终确实有效,但设置真的很痛苦。然而,Zabbix是为数不多的支持JMX的开源监控工具之一!

答案 1 :(得分:0)

默认情况下,JMX对防火墙的效果不佳。您可能会发现有关Zabbix跟踪器的相关错误报告非常有用:ZBX-5326ZBX-6815。第一个包含可能适合您的Tomcat的解决方法。

答案 2 :(得分:0)

@gvatreya写道:

  

服务器:(运行Zabbix服务器)

     

代理人:(运行Zabbix代理人)

看起来你必须启动 Zabbix Java网关以及安装它的主机(它是一个守护进程/服务)。

我配置如下:

  

服务器:(运行Zabbix服务器,Zabbix Java网关)

     

代理人:(运行Zabbix代理人)

我认为可以将它安装在专用主机上。

答案 3 :(得分:0)

您是否尝试将-Djava.net.preferIPv4Stack=true添加到VM选项中?

答案 4 :(得分:0)

使其工作将下一个java_opts添加到您的tomcat启动脚本

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.port=2345 
-Dcom.sun.management.jmxremote.rmi.port=12345 
-Djava.rmi.server.hostname=<tomcat_hostname>