您的当前位置:首页正文

zabbix的JMX监控配置

2020-02-20 来源:爱go旅游网
ZABBIX的JMX监控配置

一、概要

 什么是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监控已经成功开启了

因篇幅问题不能全部显示,请点此查看更多更全内容