zabbix通過jmx監控tomcat
阿新 • • 發佈:2017-10-20
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