首页 > 其他分享 >Zabbix监控tomcat

Zabbix监控tomcat

时间:2023-11-16 10:03:02浏览次数:27  
标签:opt java tomcat jar zabbix server Zabbix 监控

一、监控原理:

Java虚拟机(JVM)具有内置的插装,使您能够使用JMX监视和管理它。

您还可以使用JMX监视工具化的应用程序。

当Zabbix-Server需要知道java应用程序的某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程去连接Zabbix-JavaGateway请求数据

而ZabbixJavagateway收到请求后使用"JMXmanagementAPI"去查询特定的应用程序,而前提是应用程序这端在开启时需要"-Dcom.sun.management.jmxremote"参数来开启JMX远程查询就行。

Java程序会启动自身的一个简单的小程序端口12345向Zabbix-JavaGateway提供请求数据。

image
从上面的原理图中可以看出,配置Zabbix监控Java应用程序的关键点在于:
配置Zabbix-JavaGateway、让Zabbix-Server能够连接Zabbix-JavaGateway、Tomcat开启JVM远程监控功能等。

二、tomcat监控配置

1.tomcat服务配置

1.使用jps命令,查看java相关的进程资源
[root@tomcat-10 ~]#jps -lvm
4292 org.apache.catalina.startup.Bootstrap start -Djava.util.logging.config.file=/opt/tomcat-1/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat8/endorsed -Dcatalina.base=/opt/tomcat-1 -Dcatalina.home=/opt/tomcat8 -Djava.io.tmpdir=/opt/tomcat-1/temp
3739 org.apache.catalina.startup.Bootstrap start -Djava.util.logging.config.file=/opt/tomcat-2/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat8/endorsed -Dcatalina.base=/opt/tomcat-2 -Dcatalina.home=/opt/tomcat8 -Djava.io.tmpdir=/opt/tomcat-2/temp
4716 sun.tools.jps.Jps -lvm -Denv.class.path=.:/opt/jdk8/lib:/opt/jdk8/jre/lib:/opt/jdk8/lib/tools.jar -Dapplication.home=/opt/jdk1.8.0_221 -Xms8m

2.修改tomcat配置文件,添加jmx监控参数
[root@tomcat-10 ~]#vim /opt/tomcat8/bin/catalina.sh

100 CATALINA_OPTS="$CATALINA_OPTS
101 -Dcom.sun.management.jmxremote
102 -Djava.rmi.server.hostname=10.0.0.10
103 -Dcom.sun.management.jmxremote.port=12345
104 -Dcom.sun.management.jmxremote.ssl=false
105 -Dcom.sun.management.jmxremote.authenticate=false"

指定主机名或IP,是否开启远程管理,是否启动ssl,是否启用认证。

3. 目前只能实现监控一个实例,采用将war包放到webapp目录下的方式启动tomcat,再监控tomcat
[root@tomcat-10 ~]#bash /opt/tomcat8/bin/startup.sh

2.zabbix-server设置

zabbix想要监控tomcat,需要借助于zabbix-java-gateway工具
[root@zabbix-server-71 ~]#yum install zabbix-java-gateway -y

修改如下两个配置文件
[root@zabbix-server-71 ~]#grep -E '^[a-Z]' /etc/zabbix/zabbix_java_gateway.conf
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5

[root@zabbix-server-71 ~]#grep -E '^[a-Z]'  /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost 
DBName=zabbix
DBUser=zabbix
DBPassword=linux0224
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
AlertScriptsPath=/usr/lib/zabbix/alertscripts
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5

重启,检查
[root@zabbix-server-71 ~]#systemctl start zabbix-java-gateway.service
[root@zabbix-server-71 ~]#systemctl restart zabbix-server.service
[root@zabbix-server-71 ~]#ps -ef|grep java
zabbix     7259      1  3 22:29 ?        00:00:00 java -server -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml -classpath lib:lib/android-json-4.3_r3.1.jar:lib/logback-classic-1.2.9.jar:lib/logback-core-1.2.9.jar:lib/slf4j-api-1.7.32.jar:bin/zabbix-java-gateway-4.0.42.jar -Dzabbix.pidFile=/var/run/zabbix/zabbix_java.pid -Dzabbix.startPollers=5 -Dsun.rmi.transport.tcp.responseTimeout=3000 com.zabbix.gateway.JavaGateway
zabbix     7329   7297  0 22:29 ?        00:00:00 /usr/sbin/zabbix_server: java poller #1 [got 0 values in 0.000102 sec, idle 5 sec]
zabbix     7331   7297  0 22:29 ?        00:00:00 /usr/sbin/zabbix_server: java poller #2 [got 0 values in 0.000051 sec, idle 5 sec]
zabbix     7332   7297  0 22:29 ?        00:00:00 /usr/sbin/zabbix_server: java poller #3 [got 0 values in 0.000065 sec, idle 5 sec]
zabbix     7333   7297  0 22:29 ?        00:00:00 /usr/sbin/zabbix_server: java poller #4 [got 0 values in 0.000045 sec, idle 5 sec]
zabbix     7334   7297  0 22:29 ?        00:00:00 /usr/sbin/zabbix_server: java poller #5 [got 0 values in 0.000050 sec, idle 5 sec]

[root@zabbix-server-71 ~]#netstat -tunlp|grep java
tcp6       0      0 :::10052                :::*                    LISTEN      7259/java

3.页面添加监控

image

关联tomcat模板

image

监控jmx了

Java 管理扩展( JMX ) 是一种Java技术,它提供用于管理和监视应用程序、系统对象、设备(例如打印机)和面向服务的网络的工具。
image

4.手动采集tomcat实例运行数据

1. tomcat环境
[root@tomcat-10 ~]#/opt/tomcat8/bin/version.sh
Using CATALINA_BASE:   /opt/tomcat8
Using CATALINA_HOME:   /opt/tomcat8
Using CATALINA_TMPDIR: /opt/tomcat8/temp
Using JRE_HOME:        /opt/jdk8
Using CLASSPATH:       /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.27
Server built:   Sep 28 2015 08:17:25 UTC
Server number:  8.0.27.0
OS Name:        Linux
OS Version:     3.10.0-862.el7.x86_64
Architecture:   amd64
JVM Version:    1.8.0_221-b11
JVM Vendor:     Oracle Corporation

2. 下载jmx远程监控jar包
[root@tomcat-10 ~]#ls /opt/tomcat8/lib/
wget -O /opt/tomcat8/lib/catalina-jmx-remote.jar http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/extras/catalina-jmx-remote.jar

3.抓取tomcat数据测试
(1)下载cmdline-jmxclient-0.10.3.jar文件,下载地址
wget http://crawler.archive.org/cmdline-jmxclient/cmdline-jmxclient-0.10.3.jar

(2)本地执行如下命令查看tomcat的堆内存信息
[root@tomcat-10 /opt]#java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:12345 java.lang:type=Memory HeapMemoryUsage
07/17/2022 22:54:05 +0800 org.archive.jmx.Client HeapMemoryUsage: 
committed: 394264576
init: 62914560
max: 880279552
used: 172865216


java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:12345 java.lang:type=Threading TotalStartedThreadCount


[root@tomcat-10 /opt]#java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:12345 Catalina:type=Server serverInfo
07/17/2022 23:13:17 +0800 org.archive.jmx.Client serverInfo: Apache Tomcat/8.0.27

5.确认调通了

image

标签:opt,java,tomcat,jar,zabbix,server,Zabbix,监控
From: https://www.cnblogs.com/chunjeh/p/17835526.html

相关文章

  • Tomcat
    一、tomcat是什么Tomcat服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP程序的首选。除此之外,ApacheTomcat还可以很容易与ApacheHttpServer.Nginx等知名的Web服务器集成,以实现负载均衡和集群化部署。现在已经被广......
  • 【解决方案】危化品厂区安防系统EasyCVR+AI智能监控
    危化品属于危险、易燃易爆、易中毒行类,一旦在生产运输过程中发生泄漏后果不堪想象,所以危化品的生产储存更需要严密、精细的监控,来保障危化品的安全。EasyCVR+TSINGSEE青犀AI智能分析网关搭建的危化品智能监控方案就能很好的为危化品监管保驾护航。EasyCVR+TSINGSEE智能分析网关......
  • 智慧农业设备监控及与预警运维管理系统
    方案背景我国是传统农业大国,具备多种农作物的种植经验,但在智能设备的冲击下,农业的优势在慢慢降低,其根本问题在于效率不高,各生产要素缺乏集中管理与应用,表现为农业数据资源薄弱、缺乏数据标准、设备联网能力差等问题。 目前,物联网远程监控系统逐渐应用到农业生产中,打造智慧灌溉农业......
  • 安防监控系统EasyCVR平台调用hls地址生成流的时间过长,该如何解决?
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台可拓展性强、视频能力灵活,能对外分发RTMP、RTSP、HTTP-......
  • 冷藏箱监控运维在线管理系统解决方案
    近年来,城市消费不断升级,消费者对食品安全意识也在不断加强,对食品新鲜健康的要求也越来越高,同时社区电商、生鲜电商等新业态的快速发展,都为冷链运输行业注入强大的发展动力。 冷链运输的火热要求冷藏设备与管理模式协同进步,冷藏箱作为重要的冷链运输设备,受到很多厂商的重视。对于,数......
  • 基于 Sentinel 实现历史监控数据回看
    Sentinel对监控数据的做法是定时落盘在客户端,然后Sentinel提供接口去拉取日志文件。所以Sentinel在监控数据上理论上是最少存储1天以上的数据;然而作为控制台展示,则仅在内存中聚合5分钟以内的统计数据,不进行持久化。官方鼓励大家对 Dashboard 进行改造实现指标信息的持......
  • Prometheus 黑盒 blackbox的简单-监控web服务是否正常以及证书过期时间
    下载blackboxhttps://github.com/prometheus/blackbox_exporter可以在release里面下载amd64和arm64的东西解压缩之后将二进制和.yml文件都放到/usr/bin目录下面,然后开启nohupblackbox_exporter--config.file="/usr/bin/blackbox.yml"--web.listen-address=:9115&配置......
  • 容器部署zabbix,相关资料
    Zabbix各组件docker镜像地址,以及使用说明,zabbix容器用环境变量替代配置文件#dockersearch--limit50zabbix/zabbix|sed's@^zab@https://hub.docker.com/r/zab@'NAMEDESCRIPTIONSTARSOFFICIA......
  • zabbix运维告警处理-磁盘读写
    1、https://zhuanlan.zhihu.com/p/617685164?utm_id=0服务器相关告警:Diskread/writerequestresponsesaretoohighvda:Diskread/writerequestresponsesaretoohigh(read>20msfor15morwrite>20msfor15m)表达式解释为:最近15分钟的对应磁盘的Diskread......
  • CentOs安装Tomcat
    首先需要安转java下载Linux版本的Tomcat,jdk1.8最好安装Tomcat8,9和10没有装成功。ApacheTomcat®-ApacheTomcat9SoftwareDownloads右键复制链接使用wget下载下载后解压将tomcat移动到/usr/local启动Tomcat进入解压的tomcat的bin目录下cd/usr/local/apache-t......