一. 服務端(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