当前位置: 首页 > news >正文

zabbix监控jvm内存

Zabbix自带监控系统的内存利用率和CPU利用率,但是系统内存并不能反应JVM内存情况

在本地我们可以通过jconsole或者jvisualvm进行监控jvm内存情况

不过正是环境一般都是部署在linux上,且不是桌面版,这个时候想监控,可以通过zabbix集成jmx实现

jvisualvm使用方式,参考 https://www.cnblogs.com/gossip/p/6141941.html

效果:

这是使用的jdk自带的监控工具

当然,如果需要远程监控的话,需要在catalina文件设置下启动参数,这里不做账号密码限定,所以authenticate=false

windows修改catalina.bat

通过set设置,引用变量使用 %%
在 rem ----- Execute The Requested Command --------------------------------------- 下面添加
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

linux修改catalina.sh

不用添加set,引用变量使用 $
在 rem ----- Execute The Requested Command --------------------------------------- 下面添加
CATALINA_OPTS=”$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=127.0.0.1
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

java直接运行jar包

java -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar chy.jar

 之后就可以通过远程连接并且监控jvm详情了,如上效果图

linux测试

需要下载cmdline-jmxclient-0.10.3.jar包

通过上述方式启动之后如下

再通过命令进行查看,比如查看非堆内存使用情况

java -jar cmdline-jmxclient-0.10.3.jar - 39.105.97.50:12345 java.lang:type=Memory NonHeapMemoryUsage

 

zabbix的jmx监测

具体查看官方文档

https://www.zabbix.com/documentation/4.2/manual/config/items/itemtypes/jmx_monitoring

zabbix可以集成jmx,用于监控jvm内存情况集成jmx步骤逻辑

  1. 在zabbix服务器上安装配置zabbix-java-gateway,并且配置相关参数。
  2. 配置tomcat服务器,JMX服务相关参数,上传依赖包(如果是jar包运行,直接添加参数即可)
  3. zabbix web端添加监控
  4. 启动tomcat服务,查看zabbix web端监控运行状态,排错(java -jar运行)
  5. 自定义图形和监控项

1.安装zabbix-java-gateway并配置

安装

yum -y install zabbix-java-gateway

配置

grep "^[A-Z]" /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"        #监听本机所有ip
LISTEN_PORT=10052            #在10052端口提供服务
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5

启动服务

systemctl start zabbix-java-gateway

 

配置zabbix-server

  grep "^[A-Z]" /etc/zabbix/zabbix_server.conf|grep Java

JavaGateway=127.0.0.1     #JavaGateway所在服务器的IP
JavaGatewayPort=10052     #JavaGateway的默认端口
StartJavaPollers=5         #JVM进行监控轮询实例数,默认是0

 重启zabbix-server

systemctl restart zabbix-server 

 

 2.配置tomcat服务器

 由于我是直接jar包运行,直接通过启动参数设置即可,如果是tomcat的话,修改catalina文件即可

java -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=39.105.97.50 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar tale-latest.jar --server.port=80

 3.zabbix web端添加监控

配置jmx接口 配置→主机→创建主机

添加链接模板 template app apache tomcat jmx和template APP generic java jmx

 

 

4.查看zabbix web端监控运行状态 

添加完毕,查看jmx是否是绿色

 

 如果是红色,查看具体原因,可能是端口暴露问题,或者是启动的参数设置问题

5.自定义图形和监控项

jmx为绿色,标志着添加成功,之后自定义图形,设置监控项即可

第一步创建图形

 

第二步,添加你需要的监控项即可

这里选取四项,查看效果图

 ok,其余的配置再摸索,监控多个java进程的jvm还须研究

 

转载于:https://www.cnblogs.com/chywx/p/11496528.html

相关文章:

  • 约瑟夫环算法的几种实现方式,最简单方式,一行代码实现
  • NPM——npm|cnpm如何升级
  • Nginx——报错汇总
  • 贪心算法基础
  • ElementUI——报错汇总
  • ElementUI——动态表单验证
  • CSP-S 46 题解
  • maven引入本地jar包的方法
  • jmap错误:unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap
  • nginx retryfiles
  • gitlab 构建常见错误
  • PS——使用切片工具切出透明图片
  • 从零开始部署CloudSim4.0云计算仿真平台
  • Ubuntu 16.04 64位 安装NVIDIA驱动 CUDA9.1和PyTorch
  • 从零开始部署Guns V4.0 (SpringBoot开源框架)教程
  • GitUp, 你不可错过的秀外慧中的git工具
  • Java-详解HashMap
  • python学习笔记-类对象的信息
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 对象管理器(defineProperty)学习笔记
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 数据库巡检项
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #、%和$符号在OGNL表达式中经常出现
  • #stm32整理(一)flash读写
  • (4)事件处理——(7)简单事件(Simple events)
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (十三)Maven插件解析运行机制
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .NET 常见的偏门问题
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [C#]winform部署PaddleOCRV3推理模型
  • [C++][数据结构][算法]单链式结构的深拷贝
  • [COGS 622] [NOIP2011] 玛雅游戏 模拟
  • [CSS]盒子模型
  • [CTO札记]如何测试用户接受度?
  • [CVPR2021]Birds of a Feather: Capturing Avian Shape Models from Images
  • [Docker]十.Docker Swarm讲解
  • [Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具
  • [javaee基础] 常见的javaweb笔试选择题含答案
  • [MZ test.16]P2 math 乘方e
  • [oeasy]python0002_终端_CLI_GUI_编程环境_游戏_真实_元宇宙
  • [ORM]register db Ping `default`, Error 1130: Host '' is not allow connect to this MySQL server
  • [Paper]Cardiologist-Level Arrhythmia Detection with Convolutional Neural Networks
  • [POJ2728] Desert King
  • [Silverlight]通过MVVM模式实现本地化/全球化(1)
  • [Spark][Python][RDD][DataFrame]从 RDD 构造 DataFrame 例子
  • [Vue 配置] Vite + Vue3 项目配置和使用 NProgress