一、概要
什么是JMX:
JMX是一个java管理扩展框架,可以实现对java应用和程序的管理。 Zabbix Java gateway的介绍:
Zabbix Java gateway是一个守护进程用Java编写的。 功能实现:
Zabbix 2.0增加了本地支持监控JMX应用程序,引入了新的Zabbix守护进程称为“Zabbix Java gateway”(需要单独启动)。
当Zabbix服务器想从被监控的JMX主机上得到一个特定的值,它会要求Zabbix Java网关使用JMX管理API,远程查询应用程序上面需要的数据,来返回给zabbix_server,而java gateway不会缓存任何数据。
注:应用程序不需要任何额外的软件安装,只需要在java程序启动的时候开启
-Dcom.sun.management.jmxremote功能。
二、要实现JMX监控的条件
被监控端java应用启动的时候,开启了jmxremote功能 编译zabbix_server的时候加上--enable-java参数
(可以追加编译,也可以安装在与zabbix_server不同的机器上)
zabbix_server的配置文件(zabbix_server.conf)中添加了连接java gateway的参数
三、使用JMX监控java应用的具体配置
(一) 从源码包编译获得JMX监控功能(也可以从zabbix官网下载相应模块) A. zabbix_server已经安装完毕,后期添加JMX监控功能,或者装在其他机器上
# cd zabbix 2.0.4
# ./configure --enable-java --prefix=/usr/local/zabbix # make install
B. 最开始安装zabbix_server的时候就加上JMX监控功能
#./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --enable-java --with-mysql=/usr/local/mysql-5.1.56/bin/mysql_config --with-net-snmp --with-libcurl
C. JMX扩展功能的目录
$zabbix_java=/usr/local/zabbix/sbin/zabbix_java/ $zabbix_java/bin/zabbix-java-gateway-$VERSION.jar $zabbix_java/lib
主目录: jar包: 依赖包目录:
启动和停止脚本:$zabbix_java/startup.sh
$zabbix_java/shutdown.sh
启动相关的配置文件:$zabbix_java/settings.sh
(二)
启动java gateway
启动java gateway进程
# cd /usr/local/zabbix/sbin/zabbix_java/ # ./startup.sh
检查java gateway的端口
# netstat -anlp | grep 10052
tcp 0 0 :::10052 :::* LISTEN 4959/java
查看java gateway的进程
# ps -ef | grep java-gateway
root 4959 1 0 Jan15 ? 00:00:23 java -server -classpath lib:lib/logback-classic-0.9.27.jar:lib/logback-core-0.9.27.jar:lib/org-json-2010-12-28.jar:lib/slf4j-api-1.6.1.jar:bin/zabbix-java-gateway-2.0.4.jar -Dzabbix.pidFile=/tmp/zabbix_java.pid com.zabbix.gateway.JavaGateway root 6971 29891 0 14:16 pts/1 00:00:00 grep java-gateway
(三) 配置zabbix_server连接java gateway的信息 编译zabbix_server.conf文件
# vim /etc/zabbix/zabbix_server.conf
# IP address (or hostname) of Zabbix Java gateway. # Only required if Java pollers are started. # # Mandatory: no # Default: # JavaGateway= JavaGateway=172.16.82.168 ### Option: JavaGatewayPort # Port that Zabbix Java gateway listens on. # # Mandatory: no # Range: 1024-32767 # Default: # JavaGatewayPort=10052 JavaGatewayPort=10052 ### Option: StartJavaPollers # Number of pre-forked instances of Java pollers. # # Mandatory: no # Range: 0-1000 # Default: # StartJavaPollers=0 StartJavaPollers=5
重启zabbix_server服务,让配置生效
# service zabbix_server restart
(四) 启动java应用(并开启jmxremote功能) 下面是启动java应用的三个范例: A. 没有任何的安全限制的启动方式
java \\
-Dcom.sun.management.jmxremote \\
-Dcom.sun.management.jmxremote.port=12345 \\
-Dcom.sun.management.jmxremote.authenticate=false \\ -Dcom.sun.management.jmxremote.ssl=false \\
-jar /usr/share/doc/openjdk-6-jre-headless/demo/jfc/Notepad/Notepad.jar
B.
增加用户名和密码限制的启动方式(建议)
java \\
-Djava.rmi.server.hostname=192.168.3.14 \\ -Dcom.sun.management.jmxremote \\
-Dcom.sun.management.jmxremote.port=12345 \\ -Dcom.sun.management.jmxremote.authenticate=true \\
-Dcom.sun.management.jmxremote.password.file=/etc/java-6-openjdk/management/jmxremote.password \\
-Dcom.sun.management.jmxremote.access.file=/etc/java-6-openjdk/management/jmxremote.access \\
-Dcom.sun.management.jmxremote.ssl=false \\
-jar /usr/share/doc/openjdk-6-jre-headless/demo/jfc/Notepad/Notepad.jar
C. 增加用户名、密码以及SSL双重安全限制的启动方式(安全性高,但是配置稍繁琐)
(注意:如果您希望使用SSL,您必须修改startup.sh脚本添加Java -Djavax.net.ssl.*选项,以便让java gateway知道在哪里找到密钥和信任存储。)
java \\
-Djava.rmi.server.hostname=192.168.3.14 \\ -Dcom.sun.management.jmxremote \\
-Dcom.sun.management.jmxremote.port=12345 \\ -Dcom.sun.management.jmxremote.authenticate=true \\
-Dcom.sun.management.jmxremote.password.file=/etc/java-6-openjdk/management/jmxremote.password \\
-Dcom.sun.management.jmxremote.access.file=/etc/java-6-openjdk/management/jmxremote.access \\
-Dcom.sun.management.jmxremote.ssl=true \\ -Djavax.net.ssl.keyStore=$YOUR_KEY_STORE \\
-Djavax.net.ssl.keyStorePassword=$YOUR_KEY_STORE_PASSWORD \\ -Djavax.net.ssl.trustStore=$YOUR_TRUST_STORE \\
-Djavax.net.ssl.trustStorePassword=$YOUR_TRUST_STORE_PASSWORD \\ -Dcom.sun.management.jmxremote.ssl.need.client.auth=true \\
-jar /usr/share/doc/openjdk-6-jre-headless/demo/jfc/Notepad/Notepad.jar
(五) A.
配置JMX端口和添加JMX监控项目 配置JMX端口
B. 添加JMX监控项目
C.
当添加了JMX监控端口,并添加了JMX监控项目后,状态中的JMX会变绿
这就说明JMX监控已经成功开启了
因篇幅问题不能全部显示,请点此查看更多更全内容