zabbix3.0部署jmx監控tomcat
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
我這裏也上傳了7.0.67 版本的和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-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在一臺主機上面最後的監控效果如下: