Zabbix 监控 Tomcat 服务

发布时间 2023-08-14 17:38:40作者: m_zhuang

一、Zabbix 监控 Tomcat 的方式

zabbix通过部署jmx来监控tomcat

zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。

二、 实例部署

节点 主机IP 安装软件
客户端 192.168.23.40 zabbix-agent
JDK
tomcat
服务端 192.168.23.35 zabbix-server
zabbix-agent
mariadb-server
mariadb

注:Zabbix服务端(zabbix-server)与客户端(zabbix-server)已配置

点击查看

1. 客户端配置

(1)安装 JDK

cd /opt
rpm -ivh jdk-8u371-linux-x64.rpm 

image-20230814145222526

(2)设置 JDK 变量环境

vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0-x64
export CLASSPATH=.$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

:wq!

source /etc/profile.d/java.sh

(3)安装tomcat

# 解压 tomcat 包
tar -xf /opt/apache-tomcat-8.5.16.tar.gz

# 切换 tomcat 位置
mv /opt/apache-tomcat-8.5.16 /usr/local/tomcat

# 开启 tomcat 
/usr/local/tomcat/bin/startup.sh 

image-20230814145440039

image-20230814145555646

(4)修改配置文件

vim /usr/local/tomcat/bin/catalina.sh 
# 第103行
CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false"

-Dcom.sun.management.jmxremote 表示开启JMX远程管理功能。

-Dcom.sun.management.jmxremote.port=8888 表示指定JMX远程连接的端口号为8888。

-Dcom.sun.management.jmxremote.ssl=false 表示禁用JMX远程连接的SSL安全传输。

-Dcom.sun.management.jmxremote.authenticate=false 表示禁用JMX远程连接的身份验证。

image-20230814172331159

(5)重启

image-20230814151244385

2. 服务端配置

(1)安装 zabbix-java-gateway

yum -y install zabbix-java-gateway.x86_64

image-20230814160058921

(2)修改配置文件

vim /etc/zabbix/zabbix_java_gateway.conf

LISTEN_IP="0.0.0.0"  # 9行,监听地址
LISTEN_PORT=10052  # 17行,监听端口
PID_FILE="/var/run/zabbix/zabbix_java.pid"  # 27行,PID_FILE文件路径
START_POLLERS=5  # 35行,开启的工作线程数量

systemctl start zabbix-java-gateway.service 
systemctl enable zabbix-java-gateway.service 

image-20230814160208921

vim /etc/zabbix/zabbix_server.conf 

JavaGateway=192.168.23.35 # 297行,IP地址
JavaGatewayPort=10052  # 305行,端口
StartJavaPollers=5  # 313行,采集数据的进程数

systemctl restart zabbix-server
ps ax | grep java # 查看server开启的java进程是否为5个

image-20230814172452379

image-20230814163113004

3. Web 页面操作

image-20230814163255236

image-20230814162606527

image-20230814172608231