zabbix JVM 的一些问题

调研了下,几乎所有的 JVM 的监控都是通用的,无外乎这么几个 item:
* JVM Heap & Non Heap Memory Usage
* Garbage Collection Information
* Class Loading and Unloading Information
* Running Thread Information
* Server Response Time
* Enterprise JavaBeans (EJBs)
* Metrics of all web applications
* Java Database Connectivity (JDBC) Pools

上面的这些可以在启动 java 进程的通过 jmx 开启。
JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9999"


在 2.0 上已经是原生支持 JMX 的监控了,所以部署好 zbx java gateway 之后,直接添加需要的 item 就好了。其 zabbix_java_gateway.conf 的配置说明可以在这里找到。
JMX 的 item: jmx[,]跟普通的有点小区别,分为 object name 和 attribute name。这些跟什么 key => value 都很类似,个人觉得不过是换了个说法罢了。

需要注意的是,每一台 server/proxy 上只能部署一个 java gateway。

如果要 debug 的话,需要在 logback.xml 里面开启 debug 的开关

有一个叫 jmxtrans 的项目,可以通过 JMX 将获取到的数据通过 json 的格式导入到  Graphite, StatsD, Ganglia, cacti/rrdtool 里面。

由于 2.0 原生就支持 JMX,因此供了大量的 JMX 的 item、trigger 以及 graph,最上面提到的一些 item 其默认都有支持,这个根据实际应用,进行一定的修改应该就能满足日常的需求了。