JAVA 利用 jmc或jvisualvm 监控 本地或者远程JVM
2024-08-31 23:27:06
本地检测之间到$JAVA_HOME/bin 下的目录点击jmc 或者jvisualvm,然后选择你要监控的app
可是一般我们生产环境项目都是部署在远程,这个时候想要监控怎么办
1、监控tomcat
找到tomcat的catalina.sh,然后在第一行加上:(最后的位置加上本机ip)
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=tru
e -Djava.rmi.server.hostname="
或者可以配置为
JAVA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.80.50.81 -Dcom.sun.management.jmxremote.port=8764 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
或者这两个配合使用
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.80.50.81 -Dcom.sun.management.jmxremote.port=8765 -Dcom.sun.managem#ent.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
2、监控其他java程序
修改启动参数
如果你原来启动的脚本 java -jar demo.jar
添加参数
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=
启动程序以后:点击连接 然后创建新连接 就可以远程监控
把服务器ip和刚才开放的端口填上就好了,测试一下连接
效果图
上面的是不需要密码的 生产环境不安全 如果想设置密码
1.进入服务器$JAVA_HOME/jre/lib/management
把jmxremote.password文件的后缀去掉,然后修改至600权限
chmod 600 jmxremote.access
打开编辑到最后
#monitorRole ROF
#controlRole R&D
去掉# 保存 (前面是用户名,后面是密码 可自己修改 用户在同目录 jmxremote.access文件内定义,默认有2个用户,可定义权限)
2.将刚才的启动参数中的
-Dcom.sun.management.jmxremote.authenticate=false 修改为 true 或者直接去掉(默认true)
3.创建新连接的时候输入用户名和密码
最新文章
- CozyRSS开发记录1-原型图与Grid
- 【BZOJ-2818】Gcd 线性筛
- IOS学习之路十八(通过 NSURLConnection 发送 HTTP 各种请求)
- 纯CSS3实现loading正在加载。。。
- redis内存消耗详解
- linux vi/vim编辑文件显示行号
- 【fhq Treap】bzoj1500(听说此题多码上几遍就能不惧任何平衡树题)
- Android Multimedia框架总结(九)Stagefright框架之数据处理及到OMXCodec过程
- js重点--原型链
- C#事件の.net下的EventArgs和EventHandler
- SSM集成activiti6.0错误集锦(二)
- 【其他】【服务器】【2】把jar包做成服务,在Service中管理
- 【Android开发】Android应用程序目录结构
- php 四种基础排序
- java代码中存在的Big Endian 和 Little Endian
- HDU 2176 基础NIM 输出方案
- JS日期、时间 格式化转换方法
- 《C++ Primer Plus》第11章 使用类 学习笔记
- 使用Git【转】
- django+ajax用FileResponse文件下载到浏览器过程中遇到的问题