1. 程式人生 > >zabbix通過jmx監控tomcat

zabbix通過jmx監控tomcat

zabbix通過jmx監控tomcat

通過jmx監控tomcat
一、服務端配置
1、安裝jdk(版本1.8.0_91)
[root@iZ25kscmkn3Z ~]# rpm -ivh jdk-8u91-linux-x64.rpm
[root@iZ25kscmkn3Z ~]# vi /etc/profile
最後添加:
JAVA_HOME=/usr/java/jdk1.8.0_91
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
[root@iZ25kscmkn3Z ~]# source /etc/profile
安裝與配置比較簡單,過程省略。執行java -version命令,出現類似界面表示成功。
[root@iZ25kscmkn3Z ~]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
2、安裝Zabbix-Java-gateway 
[root@iZ25kscmkn3Z ~]# cd /usr/src/zabbix-3.0.0/
[root@iZ25kscmkn3Z zabbix-3.0.0]# ./configure --enable-java -prefix=/usr/local/zabbix/zabbix_java
[root@iZ25kscmkn3Z zabbix-3.0.0]# make && make install

[root@iZ25kscmkn3Z ~]# cd /usr/local/zabbix/zabbix_java/sbin/zabbix_java/
[root@iZ25kscmkn3Z zabbix_java]# ls
bin  lib  settings.sh  shutdown.sh  startup.sh
3、修改Java-gateway的配置文件並啟動它
配置文件路徑為/data/zabbix/zabbix_java/sbin/zabbix_java/settings.sh
啟用以下參數:
[root@iZ25kscmkn3Z zabbix_java]# vi settings.sh
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
START_POLLERS=5
4、修改zabbix_server的配置文件並重啟
[root@iZ25kscmkn3Z ~]# vi /usr/local/zabbix/etc/zabbix_server.conf
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
啟動zabbix_java
[root@iZ25kscmkn3Z ~]# cd /usr/local/zabbix/zabbix_java/sbin/zabbix_java/
[root@iZ25kscmkn3Z zabbix_java]# ./startup.sh
重啟zabbix_server
# /etc/init.d/zabbix_server restart
二、Tomcat服務端
1、給tomcat啟動腳本添加參數,開啟JMX
[root@qxg-image ~]# vi /usr/local/site/bin/catalina.sh
添加如下內容:
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=10.44.21.14"  ----備註(10.44.21.14是客戶端ip地址)
CATALINA_OPTS="${CATALINA_OPTS} -Djavax.management.builder.initial="
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote=true"
#CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.port=12345"#端口配置不用了
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.ssl=false"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false"  
[root@qxg-image site]# vi conf/server.xml(tomcat8.5版本不要在conf/server.xml增加以下內容,tomcat會起不來) 
省略...  
<Server port="8005" shutdown="SHUTDOWN">  
	 <Listener className="org.apache.catalina.startup.VersionLoggerListener" />  
	 <!-- Security listener. Documentation at /docs/config/listeners.html  
	 <Listener className="org.apache.catalina.security.SecurityListener" />  
	 -->  
	 <!--APR library loader. Documentation at /docs/apr.html -->  
	 <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />  
	 <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->  
	 <Listener className="org.apache.catalina.core.JasperListener" />  
	 <!-- Prevent memory leaks due to use of particular java/javax APIs-->  
	 <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />  
	 <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />  
	 <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />  
	 <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"  
	          rmiRegistryPortPlatform="10052" rmiServerPortPlatform="10053" />     ----默認添加最後兩行
省略..

2、下載catalina-jmx-remote.jar
wget  http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.56/bin/extras/catalina-jmx-remote.jar  #我的tomcat版本是7.0.56
將下載後後的jar包放到被監控的tomcat實例的lib目錄下。
3、重啟tomcat
[root@qxg-image ~]# /usr/local/site/bin/shutdown.sh
[root@qxg-image ~]# /usr/local/site/bin/startup.sh
4、測試是否可以獲取數據
下載cmdline-jmxclient-0.10.3.jar工具
在服務器端進行測試
[root@iZ25kscmkn3Z ~]# java -jar cmdline-jmxclient-0.10.3.jar -  10.44.21.143:10052 java.lang:type=Memory NonHeapMemoryUsage
08/29/2016 17:40:15 +0800 org.archive.jmx.Client NonHeapMemoryUsage: 
committed: 105644032
init: 2555904
max: -1
used: 101895192

問題:
web界面上顯示cannot connect to [[192.168.18.20]:10052]: [111] Connection refused  ,192.168.18.20是我一個agent端的ip地址。debug級別已經調整為4,沒有看到報錯。 
 
tomcat8.5只需要在bin/catalina.sh增加,重啟tomcat服務
CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=12345
-Djava.rmi.server.hostname=10.27.242.110"


本文出自 “個人博客” 博客,請務必保留此出處http://lgs6666.blog.51cto.com/10845239/1974342

zabbix通過jmx監控tomcat