声明:不要尽信文档,每个人的环境不同,关键是原理!原理不懂的,请找度娘或者谷歌搜索,懂原理你才会懂得如何排错!
经过我个人测试,zabbix监控java程序jvm堆的运行状态,其实本质都是一样的!
核心是 jdk开启JMXremote端口,来让zabbix进入采集数据,
我测试的对象为: tomcat / resin ,目前比较主流的java中间件
废话不多说,现在开始操作
一、zabbix服务器端部署zabbix_java
部署方法查看我的博客:
二、配置java环境 vi /etc/profile
JAVA_HOME=/opt/j2sdk
export JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:/usr/local/webserver/zabbix_java/sbin/zabbix_java/lib/catalina-jmx-remote.jar:/opt/j2sdk/jre/lib:/opt/j2sdk/lib
三、在java程度端,修改启动脚本catalina.sh或者httpd.sh。
jmx_config="-Dcom.sun.management.jmxremote.port -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.0.141"
说明:-Djava.rmi.server.hostname=192.168.0.141的使用是为了防止出现如图所示的错误
四、本地测试是否可以正常获取数据
1.获取测试的jar包
#wget
2.将cmdline-jmxclient转移到zabbix_java的lib目录下.
2.测试获取数据(在zabbix-server端执行下列命令)
# java -jar cmdline-jmxclient-0.10.3.jar - 192.168.0.141:12345 java.lang:type=Memory NonHeapMemoryUsage
更具体的,可以参考博文:http://blog.chinaunix.net/uid-29179844-id-4093754.html
本文出自 “” 博客,请务必保留此出处