gir 发表于 2013-9-26 09:28:55

Zabbix监控之JMX协议

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


2.安装Javagateway
软件包在zabbix自带的有,目前暂时只支持从zabbix软件包中获得
1.先安装jdk


http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html   #下载对应版本的jdk
# tar zxvf jdk-7u40-linux-i586.tar.gz
# mv jdk1.7.0_40/ /usr/local/jdk
# vim /etc/profile #在最后添加下面几行
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile
# java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)
#出现此界面,说面jdk安装成功
2.安装Javagateway


# tar zxvf zabbix-2.0.5.tar.gz
# cd zabbix-2.0.5
# ./configure --enable-java --prefix=/opt/zabbix_java_gatway
# make && make install
3.修改Javagateway的配置文件


# pwd
/opt/zabbix_java_gatway/sbin/zabbix_java
# ll
总计 20
drwxr-xr-x 2 root root 4096 09-21 05:18 bin
drwxr-xr-x 2 root root 4096 09-21 05:18 lib
-rw-r--r-- 1 root root665 09-21 05:18 settings.sh #java gateway的配置文件
-rwxr-xr-x 1 root root299 09-21 05:18 shutdown.sh #关闭脚本
-rwxr-xr-x 1 root root 1191 09-21 05:18 startup.sh #启动脚本


# vim settings.sh
LISTEN_IP="0.0.0.0"#可以不配置,采用默认值即可
LISTEN_PORT=10052#可以不配置,采用默认值即可
PID_FILE="/tmp/zabbix_java.pid" #该项必须配置,保存pid文件的位置
START_POLLERS=5 #必须配置,启动的进出数
4.修改zabbixserver的配置文件,使支持javagateway


JavaGateway=127.0.0.1 #指定Java gateway的ip地址或主机名,由于Java gateway是搭建在zabbix server所在的主机上所以可用127.0.0.1;
JavaGatewayPort=10052 #Java gateway监听的端口号
StartJavaPollers=5 #设定连接java gateway 的进程数,当设置为0时表示不具有抓取java信息的能力
5.启动javagateway


# ./startup.sh
# netstat -lntp | grep 10052
tcp      0      0 :::10052                  :::*                        LISTEN      10179/java
**********************************************************************************************************************************************
下面的配置以监控tomcat为例
1.tomcat安装好后,在tomcat下载页面的Extras目录中下载catalina-jmx-remote.jar并放到tomcat/lib下面


# wget wget http://mirror.bit.edu.cn/apache/ ... lina-jmx-remote.jar
# mv catalina-jmx-remote.jar /usr/local/tomcat/lib/
# cpcatalina-jmx-remote.jar /opt/zabbix_java_gatway/sbin/zabbix_java/lib/ #把catalina-jmx-remote.jar也放到zabbix_java/lib/下面,这是为了防止出现类没有发现的异常,有的文档上并没有这步操作
2.修改tomcatserver.xml配置文件,添加以下内容:


3.修改tomcat/bin目录下catalina.sh,添加以下内容:


CATALINA_OPTS="-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost"
#添加的位置一定不要在左后,由于是脚本文件,应添加在前面
4.启动tomcat


# cd /usr/local/tomcat/bin/
# ./startup.sh
5.下载cmdline-jmxclient-0.10.3.jar文件测试是否恩能够取得数据


# wget http://repo.typesafe.com/typesaf ... mxclient-0.10.3.jar
# java -jar /root/cmdline-jmxclient-0.10.3.jar - 192.168.70.133:12345 java.lang:type=Memory NonHeapMemoryUsage
09/21/2013 05:51:05 +0800 org.archive.jmx.Client NonHeapMemoryUsage:
committed: 15335424
init: 12746752
max: 100663296
used: 12345112
上面这个是测试zabbixserver上的tomcat
下面配置测试其他主机上的tomcat。
1.server.xml文件不做任何配置,仅配置catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
2。测试


# java -jar /root/cmdline-jmxclient-0.10.3.jar - 192.168.70.135:12345 java.lang:type=Memory NonHeapMemoryUsage
09/21/2013 05:53:13 +0800 org.archive.jmx.Client NonHeapMemoryUsage:
committed: 15138816
init: 12746752
max: 100663296
used: 12474280

sweli 发表于 2013-9-26 19:44:09

床上运动也可以减肥的,你们都不知道吗?

小时? 发表于 2013-9-27 08:21:56

如果有一双眼睛陪我一同哭泣,就值得我为生命受苦。

FXMAR 发表于 2013-9-28 12:27:20

避孕的效果:不成功,便成“人”。

张颢镡 发表于 2013-9-28 22:48:05

我是个凑数的。。。

zlzyp 发表于 2013-10-1 04:15:54

解释就是掩饰,掩饰就是编故事!

sonyet 发表于 2013-10-3 04:26:18

穿别人的鞋,走自己的路,让他们找去吧。
页: [1]
查看完整版本: Zabbix监控之JMX协议