Zabbix4.0經過JMX監控多實例java運行

(一)簡介
一、JMX簡介
JMX的全稱是Java Management Extensions,即Java管理擴展(Java Management Extensions,即Java管理擴展,是一個爲應用程序、設備、系統等植入管理功能的框架,JMX能夠跨越一系列異構操做系統平臺、系統體系結構和網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用)。Java程序會開放一些端口,用來獲取運行情況。Zabbix 2.0開始,內置了監控JMX的功能,叫作「Zabbix Java Gateway」,在Zabbix Server和Zabbix Proxy上啓動名爲「Zabbix Java Gateway」的進程,當須要獲取JMX數據時,Zabbix Server會「問」JMX Gateway,而後JMX Gateway根據JMX管理API去查詢須要的數據。在使用時,Java程序不須要在代碼中新增任何東西,只須要在啓動的時候加上一些JVM參數,使得它能夠支持使用端口監控JMX。java

二、監控原理:當Zabbix-Server須要知道java應用程序的某項性能的時候,會啓動自身的一個Zabbix-JavaPollers進程去鏈接Zabbix-JavaGateway請求數據,而ZabbixJavagateway收到請求後使用"JMXmanagementAPI"去查詢特定的應用程序,而前提是應用程序這端在開啓時須要"-Dcom.sun.management.jmxremote"參數來開啓JMX遠程查詢就行。Java程序會啓動自身的一個簡單的小程序端口12345向Zabbix-JavaGateway提供請求數據。
Zabbix4.0經過JMX監控多實例java運行
從上面的原理圖中能夠看出,配置Zabbix監控Java應用程序的關鍵點在於:配置Zabbix-JavaGateway、讓Zabbix-Server可以鏈接Zabbix-JavaGateway、Tomcat開啓JVM遠程監控功能等mysql

三、監控架構
Zabbix4.0經過JMX監控多實例java運行sql

*(二)須要安裝服務:
JDK環境部署 (略)小程序

  • zabbix-server端編譯安裝Zabbix-Java-gateway選項
  • 修改zabbix_server配置文件
  • 重啓zabbix_server
  • 修改JAR包的啓動文件(agent端)
  • 下載相應的JMX的jar包,在zabbix-server端進行驗證
  • 修改相應的模板在zabbix Web頁面進行修改
    **

(三)、具體安裝配置
一、JDK環境部署(略)
二、Zabbix-Java-gateway安裝和配置
方法1、編譯安裝。編譯是須要加上 --enable-java來啓用經過JMX監控tomcat的支持,zabbix server安裝請看站內相應文檔
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-java --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
方法2、yum直接安裝。
yum -y install zabbix-java-gateway
三、修改zabbix java配置vim

[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf

JavaGateway=172.19.152.247
JavaGatewayPort=10052
StartJavaPollers=5

四、重啓zabbix-server,並查看端口是否啓動tomcat

[root@zabbix-server ~]# systemctl restart zabbix-server
[root@zabbix-server ~]# systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
   Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2019-05-21 15:03:20 CST; 8s ago
  Process: 5974 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 5977 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
 Main PID: 5979 (zabbix_server)
   CGroup: /system.slice/zabbix-server.service
           ├─6067 /usr/sbin/zabbix_server: java poller #1 [got 0 values in 0.000018 sec, idle 5 sec]
           ├─6068 /usr/sbin/zabbix_server: java poller #2 [got 0 values in 0.000010 sec, idle 5 sec]
           ├─6069 /usr/sbin/zabbix_server: java poller #3 [got 0 values in 0.000016 sec, idle 5 sec]
           ├─6070 /usr/sbin/zabbix_server: java poller #4 [got 0 values in 0.000013 sec, idle 5 sec]
           ├─6071 /usr/sbin/zabbix_server: java poller #5 [got 0 values in 0.000011 sec, idle 5 sec]
[root@zabbix-server ~]# netstat -lntp|grep java
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      3646/java           
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      3646/java           
tcp        2      0 127.0.0.1:32000         0.0.0.0:*               LISTEN      2477/java           
tcp        0      0 172.19.152.247:10052    0.0.0.0:*               LISTEN      8809/java           
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      3646/java

五、被監控的客戶端添加JMX支持。給啓動腳本添加參數,開啓JMX網絡

######## 在 Execute The Requested Command 前加入以下代碼(未採用認證加密方式):
 -Dcom.sun.management.jmxremote  
 -Djava.rmi.server.hostname=172.19.195.148  
 -Dcom.sun.management.jmxremote.port=10053 
 -Dcom.sun.management.jmxremote.ssl=false 
 -Dcom.sun.management.jmxremote.authenticate=false

從新啓動查看端口是否運行架構

[appuser@preuser195147 ~]$ netstat -lntp|grep 10053
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:10053           0.0.0.0:*               LISTEN      25200/java

六、下載相應的JMX的jar包(連接:https://pan.baidu.com/s/1FzslYQZ7snw38EMDsh2c9A 提取碼:g3ie),在zabbix-server端進行驗證app

[root@zabbix-server opt]# cd /data/tomcat/
[root@zabbix-server tomcat]# java -jar cmdline-jmxclient-0.10.3.jar - 172.19.195.148:10053 java.lang:type=Memory NonHeapMemoryUsage
05/21/2019 17:15:55 +0800 org.archive.jmx.Client NonHeapMemoryUsage: 
committed: 212074496
init: 2555904
max: 1862270976
used: 201090744

七、導入模板添加監控並添加監控。主機
Zabbix4.0經過JMX監控多實例java運行
Zabbix4.0經過JMX監控多實例java運行框架

查看監控圖形
Zabbix4.0經過JMX監控多實例java運行

相關文章
相關標籤/搜索