1. 程式人生 > >zabbix監控——利用JMX監控Tomcat

zabbix監控——利用JMX監控Tomcat

環境說明

  • 已關閉防火牆、selinux;
  • 已通過YUM安裝Zabbix,安裝方法請見zabbix官網
  • 所用IP地址、角色及安裝內容如下表:
IP地址 角色 安裝內容
192.168.91.134 server zabbix-server-mysql、zabbix-web-mysql、mariadb-server、mariadb
192.168.91.133 agent zabbix-java-gateway、java-openjdk、apache-tomcat

原理圖

在這裡插入圖片描述

  • 當Zabbix-Server需要知道java應用程式的某項效能的時候,會啟動自身的一個Zabbix-JavaPollers程序去連線Zabbix-JavaGateway請求資料,
  • ZabbixJavagateway收到請求後使用“JMXmanagementAPI”去查詢特定的應用程式,而前提是應用程式這端在開啟時需要“-Dcom.sun.management.jmxremote”引數來開啟JMX遠端查詢就行。
  • Java程式會啟動自身的一個簡單的小程式埠12345向Zabbix-JavaGateway提供請求資料。

配置

Agent(192.168.91.134)端配置

  • 安裝zabbix-java-gateway(此包在zabbix YUM源中),下載apache-tomcat,解壓並使用
[[email protected]
~]# yum -y install zabbix-java-gateway ##原始碼編譯加--enable-java [[email protected] ~]# yum -y install java-openjdk java-1.8.0-openjdk.x86_64 [[email protected] ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz [[email protected] ~]# tar -xf apache-tomcat-9.0.14.tar.gz [[email protected] ~]# mv apache-tomcat-9.0.14 /usr/local/tomcat
  • 設定環境變數
[[email protected] ~]# vim /etc/profile.d/tomcat.sh
[[email protected] ~]# source /etc/profile.d/tomcat.sh
[[email protected] ~]# echo $PATH
/usr/local/tomcat/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • 啟動tomcat
[[email protected] ~]# catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
  • 開啟tomcat的遠端jvm配置檔案
[[email protected] tomcat]# vim /usr/local/tomcat/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS
## 啟用遠端監控JMX
-Dcom.sun.management.jmxremote
## jmx啟用遠端埠,Zabbix新增時必須一致
-Dcom.sun.management.jmxremote.port=12345
## 不開啟使用者認證
-Dcom.sun.management.jmxremote.authenticate=false
## 不啟用ssl加密傳輸
-Dcom.sun.management.jmxremote.ssl=false
## 執行tomcat主機的IP地址
-Djava.rmi.server.hostname=192.168.91.134"
  • 重新啟動tomcat
[[email protected] tomcat]# catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[[email protected] tomcat]# catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
  • 啟動zabbix-java-gateway服務
[[email protected] tomcat]# systemctl restart zabbix-java-gateway
[[email protected] tomcat]# ss -ntl
State      Recv-Q Send-Q   Local Address:Port      Peer Address:Port                         
LISTEN     0      50                  :::10052               :::*                  

Server(192.168.91.133)端配置

  • 修改zabbix_server.conf配置檔案
[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf
## java gateway地址
JavaGateway=192.168.91.134
## java gateway預設埠10052
JavaGatewayPort=10052
## 啟動程序輪詢java gateway
StartJavaPollers=5
  • 重啟zabbix-server服務
[[email protected] ~]# systemctl restart zabbix-server

Zabbix Web端配置

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述