#####zabbix使用JMX监控tomcat####

本文介绍如何在已有Zabbix监控平台上,通过JMX协议监控Tomcat。Zabbix Java Gateway作为中介,从Zabbix Server获取请求,收集JMX数据。首先确保Tomcat和JDK安装配置正确,然后在Zabbix Server端配置主机和JMX监控项。通过SNMP和IPMI协议也可采集数据,但各有优缺点。
摘要由CSDN通过智能技术生成

这个实验是在zabbix监控平台已搭建的基础上进行的,并且由一个监控主机server2(zabbix-agent)
一、agent采集监控数据方式(键值对)
agent采集数据是以键值对的方式进行采集,一个键对应一个值。

二、通过jmx协议监控java程序

JMX 全称是Java Management Extensions,即Java管理扩展。Java程序会开放一些端口,用来获取运行状况。

从Zabbix2.0开始,内置了监控JMX的功能,叫做"Zabbix Java Gateway ",在Zabbix Serve上会启动名为"Zabbix Java Gateway "的进程,当需要获取JMX数据时,Zabbix Server会"问 "JMX Gateway,然后JMX Gateway 根据JMX管理API去查询需要的数据。在使用时,Java程序不需要在代码中新增任何东西,只需要在启动时加上一些JVM参数,使得它可以支持使用监控端口监控JMX。
数据采集过程:
zabbix server --------->zabbix java gatetway------------>java app

zabbix使用JMX监控tomcat
1.配置server2(agent客户端),安装tomcat和jdk,并打开tomcat
https://tomcat.apache.org #可以查看tomcat的官方文档

[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm   #下载kdk插件
[root@server2 ~]# tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/  #解压tomcat到指定位置
[root@server2 ~]# cd /usr/local/
[root@server2 local]# ls
apache-tomcat-8.5.24  etc    include  lib64    nginx  share
bin                   games  lib      libexec  sbin   src
[root@server2 local]# ln -s apache-tomcat-8.5.24/ tomcat   ##将解压的包做个软连接方便用
[root@server2 ~]# vim /usr/local/tomcat/bin/catalina.sh
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'  ##是否开启用户验证
[root@server2 ~]# cd /usr/local/tomcat/bin/
[root@server2 bin]# ./startup.sh 
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.
[root@server2 bin]# systemctl restart zabbix-agent
[root@server2 bin]# netstat -antlp
tcp6       0      0 :::8888                 :::*                    LISTEN      2867/java 
tcp6       0      0 :::10050                :::*                    LISTEN      2920/zabbix_agentd  

在这里插入图片描述

这时可以访问到tomcat:
在这里插入图片描述
2.zabbix-server端

[root@server1 zabbix]# yum install -y zabbix-java-gateway.x86_64  ##安装JMX插件
[root@server1 zabbix]# cd /etc/zabbix/
[root@server1 zabbix]# vim zabbix_java_gateway.conf #修改配置文件
 9 LISTEN_IP="0.0.0.0"
 17 LISTEN_PORT=10052
 35 START_POLLERS=5
[root@server1 zabbix]# systemctl start zabbix-java-gateway  #开启服务
[root@server1 zabbix]# systemctl enable zabbix-java-gateway #设置开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-java-gateway.service to /usr/lib/systemd/system/zabbix-java-gateway.service.
[root@server1 zabbix]# netstat -antlp | grep  10052
tcp6       0      0 :::10052                :::*                    LISTEN      17655/java   
[root@server1 zabbix]# vim zabbix_server.conf    
288 JavaGateway=172.25.46.1
296 JavaGatewayPort=10052
304 StartJavaPollers=5
[root@server1 zabbix]# systemctl restart zabbix-server

ps aux #可以查看到运行的以下进程
在这里插入图片描述
配置->主机(server2)->JMX添加
在这里插入图片描述
配置->主机(server2)-模版
在这里插入图片描述

在这里插入图片描述server2的JMX图表变亮
在这里插入图片描述
在这里插入图片描述
如果JXM图表还是灰色,就检查以下两边的配置文件后重启服务

三、通过SNMP协议采集数据

即通过SNMP的查询和陷入进行监控数据的采集。适合对网络设备,如防火墙、交换机、路由器等的监控数据的采集。目前Zabbix系统支持SNMP v1 SNMP v2c和SNMP v3版本的协议。通过SNMP协议采集数据不需要在被监控设备上安装任何第三方软件,但是需要配置和开启SNMP服务,并允许监控服务器查询。这个是我们目前使用比较多的数据采集方法。缺点是,其通信协议走的UDP协议,传输为不可靠传输,所以存在丢数据的现象。同时,MIB库一般是跟被监控设备有关,不适合监控自定义的项目。
四、通过IPMI代理采集数据

智能平台管理接口(IPMI,Intelligent Platform Management Interface),是管理基于Intel架构的企业系统中所使用的外围设备所采用的一种工业标准。通过这种方法采集数据的优点是:它可以采集到其它方法无法采集到的硬件状态信息,例如CPU温度、风扇转数等等。缺点是,需要被监控硬件能够支持。而这个一般在购买服务器(这种方法一般只适用于服务器)时是需要单独购买控制卡的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值