您的位置:首页 > 运维架构 > Tomcat

Zabbix之JMX监控Tomcat 推荐

2014-08-15 18:04 411 查看
############################################
# Version 1.0.1 #
# Copyright GPLV2 #
# Date Aug 25, 2014 #
# Author Jeffrey.Su #
# Mail jeffrey.su@suzf.net #
# Website http://blog.suzf.net #
# 如需重新发行,请注明以上信息,谢谢合作 #
############################################


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监控Tomcathttp://tomcat.apache.org/tomcat-6.0-doc/monitoring.html
二.安装Javagateway软件包在zabbix自带的有,目前暂时只支持从zabbix软件包中获得1.先安装jdk这里不做过多介绍检测Java 是否成功安装# java -versionjava version "1.6.0_33"Java(TM) SE Runtime Environment (build 1.6.0_33-b04)Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode) #出现此界面,说面jdk安装成功 2.安装Javagatewaytar zxvf zabbix-2.2.3.tar.gzcd zabbix-2.2.3./configure --enable-java --prefix=/usr/local/zabbixmake && make install 3.修改Javagateway的配置文件# ll /usr/local/zabbix/sbin/zabbix_java/总用量 20drwxr-xr-x 2 root root 4096 8月 15 14:05 bindrwxr-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.shLISTEN_IP="0.0.0.0" #可以不配置,采用默认值即可LISTEN_PORT=10052 #可以不配置,采用默认值即可PID_FILE="/tmp/zabbix_java.pid"START_POLLERS=5 #必须配置,启动的进程数 4.修改zabbix server的配置文件,使支持javagateway#sed -e '/^#/d;/^$/d' /usr/local/zabbix/etc/zabbix_server.confLogFile=/tmp/zabbix_server.logDBName=zabbixDBUser=zabbixDBPassword=x13vviQtlJ=%StartVMwareCollectors=5VMwareFrequency=60VMwareCacheSize=8MFpingLocation=/usr/sbin/fpingJavaGateway=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 10052tcp 0 0 :::10052 :::* LISTEN 10179/java ******************************************************************************* 下面的配置以监控tomcat为例 A.server 端1.tomcat安装好后,在tomcat下载页面的Extras目录中下载catalina-jmx-remote.jar并放到tomcat/lib下面# wget wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.42/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文件测试是否恩能够取得数据# wget http://repo.typesafe.com/typesafe/repo/cmdline-jmxclient/cmdline-jmxclient/0.10.3/cmdline-jmxclient-0.10.3.jar 6.测试# java -jar /root/cmdline-jmxclient-0.10.3.jar - localhost:12345 java.lang:type=Memory NonHeapMemoryUsage08/15/2014 16:52:42 +0800 org.archive.jmx.Client NonHeapMemoryUsage: committed: 205651968init: 136773632max: 318767104used: 104091408 B.client端【及其他非zabbix server tomcat】下面配置测试其他主机上的tomcat。首先 要安装好zabbix-java然后修改配置文件 该文件默认全部注释的,启用下面几项即可# sed -e '/^#/d;/^$/d' /usr/local/zabbix/sbin/zabbix_java/settings.shLISTEN_IP="0.0.0.0" #可以不配置,采用默认值即可LISTEN_PORT=10052 #可以不配置,采用默认值即可PID_FILE="/tmp/zabbix_java.pid"START_POLLERS=5 #必须配置,启动的进程数 其次 server.xml文件不做任何配置,仅配置catalina.shCATALINA_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 NonHeapMemoryUsage09/21/2013 05:53:13 +0800 org.archive.jmx.Client NonHeapMemoryUsage:committed: 15138816init: 12746752max: 100663296used: 12474280 C.server 获取client值 java -jar /root/cmdline-jmxclient-0.10.3.jar - 172.16.99.214:12345 java.lang:type=Memory NonHeapMemoryUsage08/15/2014 05:07:13 -0400 org.archive.jmx.Client NonHeapMemoryUsage: committed: 205062144init: 136773632max: 318767104used: 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

*************************************************************************************************************************添加监控主机********************************* 创建主机

关联模板

查看

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp Tomcat JMX Zabbix