工作原理:
zabbixserver想知道一台主机上的特定的JMX值时,它向ZabbixJavagateway询问,而ZabbixJavagateway使用“JMXmanagementAPI”
去查询特定的应用程序,而前提是应用程序这端在开启时需要“-Dcom.sun.management.jmxremote”参数来开启JMX查询就行了。
Zabbixserver有一个特殊的进程用来连接Javagateway叫StartJavaPollers;Javagateway通过配置文件中START_POLLERS参数设置
启动多个线程,在zabbix服务器这边如果一个连接所用时间超过Timeout,将会被中断,但是Javagateway将继续从JMXcounter取数据。所以
StartJavaPollers设置的值要小于等于START_POLLERS设置的值。
ZabbixJavagateway就相当于一个代理。
Zabbix监控之JMX协议

zabbix-server端安装
yum -y install zabbix-java-gateway 
也可以通过源码安装,请参考官方文档。

zabbix-java-gateway的配置文件是/etc/zabbix/zabbix_java_gateway.conf,配置文件很简单,如下:
# 监听地址
LISTEN_IP=”0.0.0.0″
# 监听端口
LISTEN_PORT=10052
# PID_FILE文件
PID_FILE=”/var/run/zabbix/zabbix_java.pid”
# 开启的工作线程数
START_POLLERS=5

启动zabbix-java-gateway:
service zabbix-java-gateway start
再修改zabbix-server的配置,编辑/etc/zabbix/zabbix_server.conf ,修改下面几个参数:
# JavaGateway的服务器IP地址
JavaGateway=192.168.89.204
# JavaGateway的服务端口
JavaGatewayPort=10052
# 从javaGateway采集数据的进程数
StartJavaPollers=5
配置文件修改后,重启zabbix-server:
service zabbix-server restart


被监控端 
开启JMX
使用JMX前需要先开启JMX,默认是关闭的,在启动JAVA程序时,加入下面的参数,就可以开启JMX:
enableJMX

Apache Tomcat 
如果是windows版本,编辑TOMCAT_HOME/bin/catalina.bat,在开头加入下面几行:
set CATALINA_OPTS=%CATALINA_OPTS% -Djava.rmi.server.hostname=JMX_HOST
set CATALINA_OPTS=%CATALINA_OPTS% -Djavax.management.builder.initial=
set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote=true
set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.port=JMX_PORT 
set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.ssl=false
set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.authenticate=false

如果是linux版本,编辑TOMCAT_HOME/bin/catalina.sh,在开头加入下面几行:
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=JMX_HOST”
CATALINA_OPTS="${CATALINA_OPTS} -Djavax.management.builder.initial=“
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote=true” 
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.port=JMX_PORT“
CATALINA_OPTS=“${CATALINA_OPTS} -Dcom.sun.management.jmxremote.ssl=false”
CATALINA_OPTS=”${CATALINA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false“

注意JMX_HOST为tomcat的主机名或IP地址,由于zabbix-server访问,JMX_PORT为JMX端口,通常使用12345,然后重启tomcat,JMX就开启了。

下面的配置以监控tomcat为例
1.    在 tomcat 下载页面 Extras 类别中下载 JMX Remote jar 二进制包。放在 tomcat/lib 下面.
#wget  –S  http://mirror.bit.edu.cn/apache/tomcat/tomcat-6/v6.0.39/bin/extras/catalina-jmx-remote.jar
# mv catalina-jmx-remote.jar  /webapp/tomcat6/lib/
2. 修改 tomcat/bin 目录下 catalina.sh ,添加以下内容:
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=fa lse
-Djava.rmi.server.hostname=客户端ip地址"
3.启动tomcat
# cd /usr/local/tomcat/bin/
# ./startup.sh
4.下载cmdline-jmxclient-0.10.3.jar文件测试是否恩能够取得数据
#wget http://repo.typesafe.com/typesafe/repo/cmdline-jmxclient/cmdline-jmxclient/0.10.3/cmdline-jmxclient-0.10.3.jar
5.测试 有数据则表示成功
# java -jar cmdline-jmxclient-0.10.3.jar - localhost:12345 java.lang:type=Memory NonHeapMemoryUsage
01/26/2014 11:55:55 +0800 org.archive.jmx.Client NonHeapMemoryUsage:
committed: 52690944
init: 24313856
max: 136314880
used: 52454776

results matching ""

    No results matching ""