Zabbix(四)使用模块JMX监控tomcat

JMX简单介绍

         全称Java Management Extensions,即Java管理拓展,是Java平台为应用程序,设备,系统等植入管理功能的框架。   

         优点: 可以详细的监控各类Java程序的运行状态

         缺点:被监控机上需要安装zabbix-java-gateway

(1)server2搭建环境--->被监听客户端

搭建Java的运行环境jdk+tomcat

rpm -ivh jdk-8u121-linux-x64.rpm                   ##下载Java的类库(运行环境)
tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/ ##下载Java运行的服务器
cd /usr/local/ ln -s apache-tomcat-8.5.24/ tomcat  ##制作软链接 -->便于升级
cd tomcat/bin/ 
vim catalina.sh                                    ##编辑配置                
## 编辑配置JMX参数(Java Management Extensions)      ## Windows和Linux略有区别!
CATALINA_OPTS='-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 ##指定端口 
-Dcom.sun.management.jmxremote.ssl=false           ##是否对链接开启ssl加密,默认开启 
-Dcom.sun.management.jmxremote.authenticate=false' ##是否开启用户验证,默认开启。 
cd /usr/local/tomcat/bin 
./startup.sh                                       ##开启tomcat服务 

(2)通过端口日志看是否开启

###netstat -antlupe### 关注:8888和8080端口是否开启!

tcp6       0      0 :::8080                 :::*                    LISTEN      0          28686      3560/java           
tcp6       0      0 :::45042                :::*                    LISTEN      0          28679      3560/java           
tcp6       0      0 :::22                   :::*                    LISTEN      0          14592      601/sshd            
tcp6       0      0 :::8888                 :::*                    LISTEN      0          28680      3560/java           
tcp6       0      0 ::1:25                  :::*                    LISTEN      0          15766      844/master          
tcp6       0      0 :::10050                :::*                    LISTEN      997        15079      614/zabbix_agentd   
tcp6       0      0 :::8009                 :::*                    LISTEN      0          28688      3560/java 

(3)测试首页

# 默认的站点目录 -->tomcat/webapps/ROOT

# vim test.jsp -->自己写的测试页面

<%= new java.util.Date()%>

(4)工作原理

        如下所示:当Zabbix-Server需要知道java应用程序某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程去连接Zabbix-JavaGateway请求数据,而ZabbixJavagateway收到请求后使用“JMXmanagementAPI”去查询特定的应用程序,而前提是应用程序这端在开启时需要“-Dcom.sun.management.jmxremote”参数来开启JMX远程查询就行。Java程序会启动自身的一个简单的小程序端口12345(我们在上面开启的是8888)向Zabbix-JavaGateway提供请求数据。

        补充:agent是不能探测JVM内部的参数信息,而tomcat对外表现就是一个进程,所以需要借助"Java网关"!

从上面的原理图中我们可以得出,配置Zabbix监控Java应用程序的关键点在于:配置Zabbix-JavaGateway、让Zabbix-Server能够连接Zabbix-JavaGateway、Tomcat开启JVM远程监控功能等(上步已经做好了)。

明确:各端口关系,以及监听的逻辑原理!

核心:在zabbix中,JMX数据的获取由zabbix-java-gateway代理程序来负责数据的采集。    

(5)开始部署

yum install zabbix-java-gateway.x86_64 -y  # 软件安装

vim /etc/zabbix/zabbix_java_gateway.conf   # 编辑配置文件

 # LISTEN_IP="0.0.0.0"  -->默认监听所有的IP

 # START_POLLERS=5      -->开启的线程数

 # LISTEN_PORT=10052    -->监听端口

systemctl start zabbix-java-gateway.service 

systemctl enable zabbix-java-gateway.service     # 开机自启是良好的习惯!

netstat -antlupe                                 # 端口开启

tcp6       0      0 :::10052        :::*         LISTEN      997        74074      27206/java

了解:tomcat并发能力不强,压力测试并发是10个左右,不是企业级别

注意:此时让Zabbix-Server还不能连接Zabbix-JavaGateway,你得让它知道,需要进行配置

vim zabbix_server.conf

# JavaGateway=172.25.2.1 #Gateway的地址

# JavaGatewayPort=10052  #Gateway开启的端口

# StartJavaPollers=5     # server开启5个线程与上面指定IP:端口进行通信,收集信息!

systemctl restart zabbix-server.service

ps -ax   ## 开启了五个关于java poller的线程

30019 ?        S      0:00 /usr/sbin/zabbix_server: java poller #1 [got 0 values in 0.000043 sec, idle 5 sec]
30020 ?        S      0:00 /usr/sbin/zabbix_server: java poller #2 [got 0 values in 0.000011 sec, idle 5 sec]
30021 ?        S      0:00 /usr/sbin/zabbix_server: java poller #3 [got 0 values in 0.000012 sec, idle 5 sec]
30022 ?        S      0:00 /usr/sbin/zabbix_server: java poller #4 [got 0 values in 0.000010 sec, idle 5 sec]
30023 ?        S      0:00 /usr/sbin/zabbix_server: java poller #5 [got 0 values in 0.000010 sec, idle 5 sec]

(6)zabbix监控页面进行相应的配置

说明:90%左右的都是使用agent的接口方式,tomcat选择JMX接口监听方式!

配置—> 主机—> server2—> 主机—> 添加JMX接口的信息 —> 添加

注意:端口要和配置文件中写的一样,最好在各个主机都做好本地解析

主机 —> server2—>模板—> 选择图中的模板 —> 添加 —> 更新

j即得刷新一下可以看到server2的JMX变绿

 tomcat8.5的官方文档

 mysql模板问题

主要:'历史数据(大存储)','性能瓶颈的最大可能出现在数据库中',当时经过考虑由于日志等相关数据(相对而言不是业务数据),所以就采用了'newsql新型的数据库tidb来承载数据',同时原来zabbix自带监控项有限,所以采用了mysql的第三方开发所提供的perconal的模版!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值