zabbix5.0版本(zabbix监控Java项目+JMX与zabbix-Java-Gateway原理+监控Java项目流程原理)

目录

1.安装Tomcat服务并开启JMX协议和取值页面

2.安装并启动Zabbix-Java-Gateway

3.配置服务端连接Java-Gateway

4.通过JMX进行监控

5.监控Java项目流程

6.只是用JMX不使用Zabbix-Java-Gateway的尝试


本篇文章给大家介绍用Zabbix监控Java项目,在监控Java项目的时候,我们可以通过JMX和Java Gateway两种监控方式。

JMX是一种用于监视和管理Java应用程序的标准API,允许你收集应用程序的运行时信息,如内存使用情况、线程状态、CPU负载等,并且还可以通过JMX远程连接进行配置和管理。你可以使用JMX客户端来连接到运行JMX的Java应用程序,以收集信息和执行管理操作。

Java Gateway则是使用JMX技术来远程管理和监控分布式Java应用程序的代理。它位于Java应用程序和JMX客户端之间,充当中间件,将JMX请求转发到Java应用程序中的相应MBean,并返回结果给JMX客户端。Java Gateway可以处理与多个Java应用程序的连接,从而提供集中的监控和管理接口。

我们在10.0.0.71部署zabbix服务端,在10.0.0.7部署zabbix-java-gateway,同时在10.0.0.7部署tomcat进行监控测试。

1.安装Tomcat服务并开启JMX协议和取值页面

(1)安装JDK与Tomcat

# 安装JDK
[root@Web01 ~]# rpm -ivh jdk-8u181-linux-x64.rpm
[root@Web01 ~]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
 
# 安装Tomcat
[root@Web01 ~]# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz --no-check-certificate
[root@Web01 ~]# tar xf apache-tomcat-9.0.76.tar.gz -C /usr/local/
[root@Web01 ~]# ln -s /usr/local/apache-tomcat-9.0.76 /usr/local/tomcat

(2)开启JMX协议

# 搜索CATALINA_OPTS定位到eval定义这个变量的位置
# 在它定义的后面添加如下内容,有个else判断,所以需要添加两处
-Dcom.sun.management.jmxremote \
-Djava.rmi.server.hostname=172.16.1.7 \    # hostname为本机的IP
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \

(3)启动Tomcat

启动并查看JMX协议

[root@Web01 ~]# /usr/local/tomcat/bin/startup.sh 
[root@Web01 ~]# ss -ntl | grep 12345
LISTEN     0      50        [::]:12345                 [::]:*  
2.安装并启动Zabbix-Java-Gateway
[root@Web01 ~]# yum -y install zabbix-java-gateway
[root@Web01 ~]# systemctl enable --now zabbix-java-gateway.service
[root@Web01 ~]# netstat -tnulp|grep 10052
tcp6       0      0 :::10052                :::*                    LISTEN      95299/java      
3.配置服务端连接Java-Gateway
[root@Zabbix ~]# cat /etc/zabbix/zabbix_server.conf
...
JavaGateway=172.16.1.7
...
JavaGatewayPort=10052
...
StartJavaPollers=3
[root@Zabbix ~]# systemctl restart zabbix-server.service 
4.通过JMX进行监控

删除原主机后通过JMX再次添加主机

可以链接官网提供的tomcat的模板 

可以监控到数据 

5.监控Java项目流程

Zabbix Java Gateway是一个独立的Java应用程序,用于与Zabbix服务器进行通信,并代理与Java应用程序的JMX接口交互。Zabbix服务器通过与Java Gateway通信来获取Java应用程序的监控数据。

由于我们的Zabbix-Java-Gateway和要监控的Tomcat部署在了同一台主机,所以效果不明显,我这边简单说下,其实我们的zabbix服务端在配置文件中配置了Zabbix-Java-Gateway的主机,所以在监控JMX接口的服务的时候,都是通过Zabbix-Java-Gateway的主机去监控,相当于把Zabbix-Java-Gateway的主机变成了中间件,当Zabbix的监控接口传递给Zabbix-Java-Gateway后,Zabbix-Java-Gateway再去寻找这个接口(IP和端口),寻找到这个接口后再通过JMX去采集Tomcat所需要监控的数据;

这是因为zabbix是c语言写的,web端是php,不能直接与java进行通信,所以需要Zabbix-Java-Gateway这个中间件去做请求转发;

我们将Zabbix-Java-Gateway和要监控的Tomcat部署在了同一台主机了,其实完全可以部署在不同主机哈,我这边就是图省事儿,这个逻辑有点类似于分布式监控,分布式监控其实也是用的中间件Proxy;

6.只是用JMX不使用Zabbix-Java-Gateway的尝试

满足大家的好奇心,我们测试一下只使用JMX不使用Zabbix-Java-Gateway

(1)关闭Zabbix-Java-Gateway服务,zabbix服务端配置文件也取消调用,重启服务

[root@Web01 ~]# systemctl stop zabbix-java-gateway.service 
 
[root@Zabbix ~]# cat /etc/zabbix/zabbix_server.conf
...
# JavaGateway=172.16.1.7
...
# JavaGatewayPort=10052
...
# StartJavaPollers=3
[root@Zabbix ~]# systemctl restart zabbix-server.service 

(2)取消添加的主机重新添加

发现一直监控不到数据 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值