Zabbix 3.2 通過JMX監控Tomcat性能狀態


一. 服務端(zabbix_server)配置

1.由於zabbix_java_gateway插件需要依賴於jdk,故首先安裝jdk

#tar -zxf jdk-7u80-linux-x64.tar.gz
#mv /root/jdk-7u80-linux /usr/local/java
#vi /etc/profile 添加如下內容:
     export JAVA_HOME=/usr/local/java
      export PATH=$JAVA_HOME/bin:$PATH
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

 

2.下載並安裝對應zabbix版本的zabbix-java-gateway插件

#rpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-java-gateway-3.2.4-1.el7.x86_64.rpm

 

3. 由於此次zabbix_server與java_gateway在同一台機器上,故IP設置均為本地,編輯/etc/zabbix/zabbix_java_gateway.conf

# This is a configuration file for Zabbix Java Gateway.
# It is sourced by startup.sh and shutdown.sh scripts.

### Option: zabbix.listenIP
#       IP address to listen on. 
#
# Mandatory: no
# Default:
LISTEN_IP="127.0.0.1"   #設置IP地址

### Option: zabbix.listenPort
#  Port to listen on. 
#
# Mandatory: no
# Range: 1024-32767
# Default:
LISTEN_PORT=10052   #設置監聽端口

### Option: zabbix.pidFile
#       Name of PID file.
#       If omitted, Zabbix Java Gateway is started as a console application.
#
# Mandatory: no
# Default:
# PID_FILE=

PID_FILE="/var/run/zabbix/zabbix_java.pid"

### Option: zabbix.startPollers
#       Number of worker threads to start.
#
# Mandatory: no
# Range: 1-1000
# Default:
START_POLLERS=5    #設置工作線程

### Option: zabbix.timeout
#       How long to wait for network operations.
#
# Mandatory: no
# Range: 1-30
# Default:
# TIMEOUT=3

TIMEOUT=3

 

4.查看zabbix-java-gateway安裝后的啟動腳本/配置文件位置等

# rpm -ql zabbix-java-gateway-3.2.4-1.el7.x86_64

/etc/zabbix/zabbix_java_gateway.conf
/etc/zabbix/zabbix_java_gateway_logback.xml
/usr/lib/systemd/system/zabbix-java-gateway.service
/usr/lib/tmpfiles.d/zabbix-java-gateway.conf
/usr/sbin/zabbix_java_gateway                   #啟動腳本
/usr/share/doc/zabbix-java-gateway-3.2.4
/usr/share/doc/zabbix-java-gateway-3.2.4/AUTHORS
/usr/share/doc/zabbix-java-gateway-3.2.4/COPYING
/usr/share/doc/zabbix-java-gateway-3.2.4/ChangeLog
/usr/share/doc/zabbix-java-gateway-3.2.4/NEWS
/usr/share/doc/zabbix-java-gateway-3.2.4/README
/usr/share/zabbix-java-gateway
/usr/share/zabbix-java-gateway/bin
/usr/share/zabbix-java-gateway/bin/zabbix-java-gateway-3.2.4.jar
/usr/share/zabbix-java-gateway/lib
/usr/share/zabbix-java-gateway/lib/android-json-4.3_r3.1.jar
/usr/share/zabbix-java-gateway/lib/logback-classic-0.9.27.jar
/usr/share/zabbix-java-gateway/lib/logback-core-0.9.27.jar
/usr/share/zabbix-java-gateway/lib/slf4j-api-1.6.1.jar
/var/log/zabbix
/var/run/zabbix

 

5.修改/app/zabbix/etc/zabbix_server.conf中java_gateway部分的配置項

### Option: JavaGateway
#       IP address (or hostname) of Zabbix Java gateway.
#       Only required if Java pollers are started.
#
# Mandatory: no
# Default:
JavaGateway=127.0.0.1              #配置java gateway的機器IP
### Option: JavaGatewayPort
#       Port that Zabbix Java gateway listens on.
#
# Mandatory: no
# Range: 1024-32767
# Default:
JavaGatewayPort=10052                #java gateway監聽端口
### Option: StartJavaPollers
#       Number of pre-forked instances of Java pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
StartJavaPollers=5

 

6.服務端配置后可直接啟動java gateway 

#sh /usr/sbin/zabbix_java_gateway
#netstat -antlp | grep :10052

 

二. 客戶端(Tomcat)配置

1.編輯/usr/local/tomcat/bin/catalina.sh 添加如下內容:

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345          #JMX端口
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=<tomcat server IP>"     #Tomcat Server IP

 

2.重啟Tomcat

#/usr/local/tomcat/bin/shutdown.sh
#/usr/local/tomcat/bin/startup.sh

 

3.測試java gataway 通過客戶端工具jmxcmd,有正常輸出即為配置正確

#java -jar cmdline-jmxclient-0.10.3.jar - 172.16.3.126:12345 java.lang:type=Memory NonHeapMemoryUsage

07/19/2017 10:11:16 +0800 org.archive.jmx.Client NonHeapMemoryUsage: 
committed: 185073664
init: 2555904
max: -1
used: 179324752

 

三. zabbix配置

1.由於使用系統默認自帶模板Template JMX Generic/Template JMX Tomcat會出現很多item項無數據中,經分析后發現默認定義的application/item項與實際tomcat部署的版本中關於Catalina MBean Name存在差異,故需要進行修改

2.如何查看不同Tomcat版本中支持的MBean Object Name以及屬性值

  ①. 可通過使用jconsole遠程連接jmx接口,查看對應的MBean Name/Attribute值

 

  ②.使用前面測試返回數據用的cmdline-jmxclient-0.10.3.jar,如下圖:

由於MBean Name返回數據很多可以根據需要過濾出所需的Name值

 

3.根據上述方式查詢到的Object Name以及Attribute值對默認jmx模版中的Item項進行修改

jmx["Catalina:type=GlobalRequestProcessor,name=\"http-apr-80\"",bytesReceived]

zabbix中key值參數間需要',' 分隔,'\'進行轉義,name值必須包含""

 

4.監控數據如圖:

 

 

 Reference: http://www.fblinux.com/?p=616#堆內存

                    https://www.topjishu.com/2993.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM