使用Zabbix的JMX功能监控应用
Zabbix是一款功能强大的开源监控平台,目前最高版本1.9.3。最新版已经内置了对JMX的支持。官方网站:http://www.zabbix.com。具体的安装请大家google吧,需要提醒的是server端配置文件需要加上:
JavaProxy=192.168.6.3 #Java Proxy部署的主机地址JavaProxyPort=10051 #Java Proxy 部署的端口StartJavaPollers=5 #接收的线程数量
???
1。应用要能被JMX监控,首先开启JMX功能。开启的方法很简单,启动虚拟机时增加参数,已启动tomcat为例,,在startup.sh里增加:
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote"export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=9999" #export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=true" #export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
??? 通过JAVA自带的Jconsole可以查看下是否开启成功。
?
2。打开Zabbix,在系统配置--主机选择某个主机后,进入监控项列表,选择新建监控项。以监控“虚拟机打开的线程数量”为列,需要填写的如下,其余的默认,配置好后保存。
Username:如JMX未配置认证的话,置空。password:同上key: jmx["java.lang:type=Threading","ThreadCount"]

?
3。查看结果,默认没30秒刷新一次:
???
4。通过进一步设置可以增加触发器报警,如果线程数量超过规定数量发短信通知维护人员。
1 楼 iCaca 2011-12-21 兄弟,能否介绍下监控的原理,特别是zabbix_server, zabbix_java我装了最新的1.9.8的虚拟机,没有找到zabbix_java,另外JavaProxy在新版本中也改名叫javagateway了 2 楼 ruijf 2011-12-22 Zabbix监控java应用的原理就是利用了JMX功能。JMX是java虚拟机集成的管理功能。只要业务实现JMX的接口,就能通过远程调用管理接口。比如tomcat服务已经实现了JMX功能。zabbix也集成了tomcat模板,可以很好的监控tomcat。
zabbix server 由于不是java写的,所以zabbix要获取监控对象的状态是通过JavaProxy的JMX远程调用获取的。