zabbix監控——利用JMX監控Tomcat
阿新 • • 發佈:2018-12-26
環境說明
- 已關閉防火牆、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 yum源:https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
- apache-tomcat下載地址:http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
原理圖
- 當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端配置