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 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监控——利用JMX监控Tomcat_第1张图片

  • 当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,解压并使用
[root@localhost ~]# yum -y install zabbix-java-gateway    ##源码编译加--enable-java
[root@localhost ~]# yum -y install java-openjdk
java-1.8.0-openjdk.x86_64
[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
[root@localhost ~]# tar -xf apache-tomcat-9.0.14.tar.gz 
[root@localhost ~]# mv apache-tomcat-9.0.14 /usr/local/tomcat
  • 设置环境变量
[root@localhost ~]# vim /etc/profile.d/tomcat.sh
[root@localhost ~]# source /etc/profile.d/tomcat.sh
[root@localhost ~]# echo $PATH
/usr/local/tomcat/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • 启动tomcat
[root@localhost ~]# 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配置文件
[root@localhost 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
[root@localhost 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
[root@localhost 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服务
[root@localhost tomcat]# systemctl restart zabbix-java-gateway
[root@localhost 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配置文件
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
## java gateway地址
JavaGateway=192.168.91.134
## java gateway默认端口10052
JavaGatewayPort=10052
## 启动进程轮询java gateway
StartJavaPollers=5
  • 重启zabbix-server服务
[root@localhost ~]# systemctl restart zabbix-server

Zabbix Web端配置

zabbix监控——利用JMX监控Tomcat_第2张图片
zabbix监控——利用JMX监控Tomcat_第3张图片
zabbix监控——利用JMX监控Tomcat_第4张图片
zabbix监控——利用JMX监控Tomcat_第5张图片

你可能感兴趣的:(zabbix监控)