zabbix提供一個java gateway的應用去監控jmx(Java Management Extensions,即Java管理擴展)是一個為應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平台、系統體系結構和網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用。
- 一. Zabbix 的JMX監控架構
-

一:部署環境
| Centos 6.7
Zabbix 3.0.3 Tomcat 7.0.55 |
服務端配置
1、安裝jdk(版本1.7.0_79)
JDK 各自的版本7.0 還是8.0 版本官網下載:JDK
並上傳到zabbix server
直接解壓下載下來的包到自定義的目錄:
| tar -zxvf jdk1.7.0_67.tar.gz -C /srv/ |
安裝成功之後添加系統環境變量
|
cd /etc/profile.d vim java.sh export JAVA_HOME=/srv/jdk1.7.0_67 export CLASS_PATH=”$JAVA_HOME/lib:$JAVA_HOME/jre/lib” export PATH=$PATH:$JAVA_HOME/bin |
使配置生效
| source /etc/profile |
安裝與配置比較簡單。執行java -version命令,出現類似界面表示成功。
| java -version
java version “1.7.0_67” Java(TM) SE Runtime Environment (build 1.7.0_67-b01) Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode) |
如果出現問題,查看下環境變量是否設置。
2、安裝Zabbix-Java-gateway
Zabbix2.0起添加支持用於監控JMX應用程序的服務進程,稱為“Zabbix-Java-gateway”,它是用java寫的一個程序。
安裝gateway,需要java,java-devel依賴
| 安裝yum源:yum install -y http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
安裝gateway:yum install -y java java-devel zabbix-java-gateway |
測試是否成功:
第一:測試java是否成功
| java -version
java version “1.7.0_67” Java(TM) SE Runtime Environment (build 1.7.0_67-b01) Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode) |
第二:測試gateway是否安裝成功
| #:service zabbix-java-gateway status
zabbix-java-gateway is stopped |
3、修改Java-gateway的配置文件並啟動它
配置文件單獨安裝的路徑為/etc/zabbix/zabbix_java_gateway.conf
# 監聽地址
LISTEN_IP=”0.0.0.0″
# 監聽端口
LISTEN_PORT=10052
# PID_FILE文件
PID_FILE=”/var/run/zabbix/zabbix_java.pid”
# 開啟的工作線程數
START_POLLERS=5
啟動zabbix-java-gateway:
service zabbix-java-gateway start
4、修改zabbix_server的配置文件並重啟
修改zabbix-server的配置,編輯/etc/zabbix/zabbix_server.conf ,修改下面幾個參數:
# JavaGateway的服務器IP地址
JavaGateway=192.168.89.204
# JavaGateway的服務端口
JavaGatewayPort=10052
# 從javaGateway採集數據的進程數
StartJavaPollers=5
配置文件修改後,重啟zabbix-server:
service zabbix-server restart
好,現在zabbix-java-gateway就配置好。
以上步驟,服務端配置就已經完成。
客戶端配置
1、 添加tomact中JMX的參數
編輯tomcat服務中bin目錄下的catalina.sh
將以下參數,添加到CATALINA_OPTS的變量中:
-Djava.rmi.server.hostname=本地IP地址
-Djavax.management.builder.initial=
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
2.下載測試工具cmdline-jmxclient-0.10.3.jar
cmdline-jmxclient-0.10.3.jar為一個測試工具,可用來測試jmx是否配置正確,下載cmdline-jmxclient-0.10.3.jar(下載到任意目錄)
| wget http://crawler.archive.org/cmdline-jmxclient/cmdline-jmxclient-0.10.3.jar |
3.驗證tomcat中JMX配置是否生效
在本機上執行
| java -jar /tmp/cmdline-jmxclient-0.10.3.jar – 127.0.0.1:12345 java.lang:type=Memory NonHeapMemoryUsage |
如果有如下回顯表示jmx配置正確,如不正確,請檢查配置,看下端口啟動是否正常,server.xml 配置。
| 07/22/2016 14:45:28 +0800 org.archive.jmx.Client NonHeapMemoryUsage:
committed: 80347136 init: 24576000 max: 136314880 used: 46634984 |
二、導入模板到zabbix,並關聯到主機,添加監控
選擇配置:主機-模板-選擇-模板-:
Template JMX Tomcat
Template JMX Generic

從網上下載一個不錯的模板,導入後如下:


導入模板以後主機添加端口:

然後查看圖形:

就有。
三、如何監控單主機多個tomcat
監控多個tomcat實例,網上的詳細的配置文檔很少,幾乎沒有。比較好的辦法是使用自動發現,但剛使用zabbix,來不及研究,所以採用笨法,修改模板、監控項、圖形來達到最終目的。
關鍵配置:
1、添加主機時添加多個jmx端口

2、修改監控項、鍵值
在同一主機上,zabbix不允鍵值重複,但是監控的項目是一樣的,不可能鍵值寫的不重複,經過幾番搜索,找到方法如下:
只要在箭頭處添加1個空格就可以,也可以是多個。(注意位置不要錯,在逗到後面)

剩下的就是體力活,克隆監控項、修改監控項、克隆圖形、修改圖形。。。
以下是兩個tomcat實例的監控項:


多個tomcat在一台主機上面最後的監控效果如下:


以下文章點擊率最高
Loading…