Zabbix之JMX监控Tomcat

zabbix从2.0开始添加了支持用于监控JMX应用程序的服务进程,称为"ZabbixJavagateway";它是用java写的一个程序。

一.工作原理:

zabbixserver想知道一台主机上的特定的JMX值时,它向ZabbixJavagateway询问,而ZabbixJavagateway使用"XmanagementAPI"询特定的应用程序,而前提是应用程序这端在开启时需要&l"com.sun.management.jmxremote&r"来开启JMX查询就行了。

Zabbixserver有一个特殊的进程用来连接Javagateway叫StartJavaPollers;Javagateway通过配置文件中START_POLLERS参数设置启动多个线程,在zabbix服务器这边如果一个连接所用时间超过Timeout,将会被中断,但是Javagateway将继续从JMXcounter取数据。所以

StartJavaPollers设置的值要小于等于START_POLLERS设置的值。

ZabbixJavagateway就相当于一个代理。



Zabbix之JMX监控Tomcat

http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html


二.在server端安装Javagateway(zabbix_java)

软件包在zabbix自带的有,目前暂时只支持从zabbix软件包中获得

1.先安装jdk

这里不做过多介绍

检测Java 是否成功安装

# java -version


2.安装Javagateway

tar zxvf zabbix-2.4.5.tar.gz

cd zabbix-2.4.5

./configure --enable-java --prefix=/usr/local/zabbix

make && make install

3.修改Javagateway的配置文件

# ll /usr/local/zabbix/sbin/zabbix_java/

总用量 20

drwxr-xr-x 2 root root 4096 8月 15 14:05 bin

drwxr-xr-x 2 root root 4096 8月 15 14:05 lib

-rw-r--r-- 1 root root 659 8月 15 14:14 settings.sh #java gateway的配置文件

-rwxr-xr-x 1 root root 554 8月 15 14:05 shutdown.sh

-rwxr-xr-x 1 root root 1881 8月 15 14:05 startup.sh


该文件默认全部注释的,启用下面几项即可

# sed -e '/^#/d;/^$/d' /usr/local/zabbix/sbin/zabbix_java/settings.sh

LISTEN_IP="0.0.0.0" #可以不配置,采用默认值即可

LISTEN_PORT=10052 #可以不配置,采用默认值即可

PID_FILE="/usr/local/zabbix/pid/zabbix_java.pid"

START_POLLERS=5 #必须配置,启动的进程数


4.修改zabbix server的配置文件,使支持javagateway

#sed -e '/^#/d;/^$/d' /usr/local/zabbix/etc/zabbix_server.conf

LogFile=/usr/local/zabbix/logs/zabbix_server.log

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

StartVMwareCollectors=5

VMwareFrequency=60

VMwareCacheSize=8M

FpingLocation=/usr/sbin/fping

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为例

A.server 端

1.tomcat安装好后,在tomcat下载页面的Extras目录中下载catalina-jmx-remote.jar并放到tomcat/lib下面

# wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.24/bin/extras/catalina-jmx-remote.jar

# mv catalina-jmx-remote.jar /usr/local/tomcat/lib/

# cp catalina-jmx-remote.jar /usr/local/zabbix/sbin/zabbix_java/lib/ #把catalina-jmx-remote.jar也放到zabbix_java/lib/下面,这是为了防止出现类没有发现的异常,有的文档上并没有这步操作

2.修改tomcat server.xml配置文件,添加以下内容[可选]

<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="12345" rmiServerPortPlatform="12346"/>

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

############### JMX #######################

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 -Djava.rmi.server.hostname=localhost"

#-Djava.rmi.server.hostname 值可以是主机名或IP

#添加的位置一定不要在左后,由于是脚本文件,应添加在前面

4.启动tomcat

# cd /usr/local/tomcat/bin/

# ./startup.sh

5.下载cmdline-jmxclient-0.10.3.jar文件测试是否恩能够取得数据

下载地址: http://download.csdn.net/detail/ltz3210/8438493


6.测试

# java -jar /root/cmdline-jmxclient-0.10.3.jar - localhost:12345 java.lang:type=Memory NonHeapMemoryUsage

08/15/2014 16:52:42 +0800 org.archive.jmx.Client NonHeapMemoryUsage:

committed: 205651968

init: 136773632

max: 318767104

used: 104091408



B.client端【及其他非zabbix server tomcat】

下面配置测试其他主机上的tomcat。

首先 要安装好zabbix-java

然后修改配置文件 该文件默认全部注释的,启用下面几项即可

# sed -e '/^#/d;/^$/d' /usr/local/zabbix/sbin/zabbix_java/settings.sh

LISTEN_IP="0.0.0.0" #可以不配置,采用默认值即可

LISTEN_PORT=10052 #可以不配置,采用默认值即可

PID_FILE="/tmp/zabbix_java.pid"

START_POLLERS=5 #必须配置,启动的进程数


其次 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"

测试

# java -jar /root/cmdline-jmxclient-0.10.3.jar - localhost: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

C.server 获取client值

java -jar /root/cmdline-jmxclient-0.10.3.jar - 172.16.99.214:12345 java.lang:type=Memory NonHeapMemoryUsage

08/15/2014 05:07:13 -0400 org.archive.jmx.Client NonHeapMemoryUsage:

committed: 205062144

init: 136773632

max: 318767104

used: 103795424

***********************************************************************************

防火墙配置实例

cat /etc/sysconfig/iptables


-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 10052 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 12345 -j ACCEPT

***********************************************************************************

zabbix_agentd 端重启zabbix_java、zabbix_agentd、tomcat等

zabbix_server端重启zabbix_java、zabbix_agentd、zabbix_server、tomcat等

**************************************添加监控主机*********************************

创建主机


关联模板


正常会显示绿色状态


查看


转自:http://oceanszf.blog.51cto.com/6268931/1540782

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值