我一直在尝试设置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)安装Zabbix_server使用sudo apt-get install zabbix-server-mysql.
2)已经安装和配置了GUI,mysql数据库.
3)以下是我在文件中进行的仅有的3次更改
/etc/zabbix/zabbix_server.conf
...
JavaGateway=localhost
JavaGatewayPort=10052
StartJavaPollers=5
...
Run Code Online (Sandbox Code Playgroud)
4)使用sudo apt-get install zabbix-java-gateway.
5)安装Zabbix Java网关以下是我在文件中进行的仅有的3次更改
/etc/zabbix/zabbix_java_gateway.conf
...
LISTEN_IP="127.0.0.1"
LISTEN_PORT=10052
START_POLLERS=5
...
Run Code Online (Sandbox Code Playgroud)
在客户端:
1)使用sudo apt-get install zabbix-agent
2)安装的Zabbix客户端
以下是我在文件中进行的仅有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 />
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我错过了什么?请指导我.任何帮助表示赞赏.
谢谢
Goutham
如果可以,然后在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>"
Run Code Online (Sandbox Code Playgroud)
这将禁用所有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的开源监控工具之一!