java visualVM(jconsole)远程监控服务器java进程
监控普通的java进程 . 设置hostname
在/etc/hosts中添加hostname解析,解析地址可以不是外网ip(可通过hostname命令查看hostname是多少)
. 启动时添加参数
如:
java -Djava.rmi.server.hostname=xxx.xxx.xxx -Dcom.sun.management.jmxremote.port= -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false Hello
其中xxx.xxx.xxx为本机外网ip,22334为提供jmx访问的端口,可自己指定
如果没有配置hostname解析可能会出现如下异常:
Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException:
. 在防火墙中开放端口
使用命令:
lsof -i | grep java | grep “启动的java进程pid”(可通过jps查看)
将查看上一步查看到的tcp监听端口全部在防火墙中进行开放,注意关闭该java进程后重新启动需要重新配置开发的端口,因为监听的端口会发生变化
. 打开visualVm或jconsole输入ip(2中配置的xxx.xxx.xxx)和端口()进行连接即可查看监控,无需输入用户名和密码
监控普通的tomcat
. 下载catalina-jmx-remote.jar,放在tomcat/lib目录下面
地址示例:http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.35/bin/extras/
请根据自己的tomcat版本选择对应的包
. 配置conf/server.xml
在server.xml中添加如下监听配置
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="" rmiServerPortPlatform="" />
有了该可使得每次重启tomat不需要重新在防火墙中开放端口,因为会使用配置的22334端口
. 修改bin/catalina.sh
添加配置:
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=服务器的外网ip地址"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote=true"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.ssl=false"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false"
. 在防火墙中开放端口
在防火墙中开发22334端口
. 打开visualVm或jconsole输入ip(3中配置的服务器的外网ip地址)和端口()进行连接即可查看监控,无需输入用户名和密码
. 添加账号
进入/usr/lib/jvm/java-1.7.-openjdk-1.7.0.91.x86_64/jre/lib/management/目录(可通过jinfo pid|grep java.home的查看自己的java.home)
执行命令:
mv jmxremote.password.template jmxremote.password
chmod jmxremote.password
vim jmxremote.password
将被注释的monitorRole,和controlRole放开,并修改密码123456
monitorRole
controlRole
.修改之前的启动配置
修改配置:
-Dcom.sun.management.jmxremote.authenticate=true
添加配置:
-Dcom.sun.management.jmxremote.password.file=/usr/lib/jvm/java-1.7.-openjdk-1.7.0.91.x86_64/jre/lib/management/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=/usr/lib/jvm/java-1.7.-openjdk-1.7.0.91.x86_64/jre/lib/management/jmxremote.access
. 启动
打开visualVm或jconsole输入ip+端口,然后输入之前设置的账号controlRole 和密码 123456即可连上
、开启权限
在/usr/lib/jvm/java-1.7.-openjdk-1.7.0.91.x86_64/jre/lib/security/java.policy中添加
permission java.security.AllPermission;
、启动
rmiregistry &jstatd -J-Djava.security.policy=all.policy -J-Djava.rmi.server.logCalls=true -J-Djava.rmi.server.hostname=服务器外网ip -p
、开放端口
通过netstat -ntlp|grep jstatd查看监听的端口(注意有两个监听端口),在防火墙中进行开放该端口
如果出现:
java.rmi.NotBoundException: JStatRemoteHost
一般等一段时间就恢复正常了
、打开visualVm添加远程主机会自动加载远程java进程
java visualVM(jconsole)远程监控服务器java进程的更多相关文章
- 使用Java VisualVM监控远程JVM
我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualV ...
- Java VisualVM监控远程JVM
我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualV ...
- 如何利用JConsole观察分析JAVA程序的运行
今天在CSDN看到一朋友说关于对JVM的研究,正好看到有关于jconsole的文章,特意找了下资料,留着备用 ps:jconsole建议用JDK1.6的1.5的界面太简陋了,另外还有增强版jvisua ...
- VisualVM连接远程Java进程
jstatd是一个RMI(Remove Method Invocation)的server应用,用于监控jvm的创建和结束,并且提供接口让监控工具(如VisualVM)可以远程连接到本机的jvms . ...
- 利用VisualVm和JMX远程监控Java进程
自Java 6开始,Java程序启动时都会在JVM内部启动一个JMX agent,JMX agent会启动一个MBean server组件,把MBeans(Java平台标准的MBean + 你自己创建 ...
- visualvm 监控 远程 机器上的 Java 程序
JDK里面本身就带了很多的监控工具,如JConsole等. 我们今天要讲的这款工具visualvm,就是其中的一款.但是这款工具是在JDK1.6.07及以上才有的.它能够对JAVA程序的JVM堆.线程 ...
- 转:visualvm监控远程机器上的Java程序
转自:http://hanwangkun.iteye.com/blog/1195526 JDK里面本身就带了很多的监控工具,如JConsole等.我们今天要讲的这款工具visualvm,就是其中的一款 ...
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
原文链接:http://jiajun.iteye.com/blog/810150 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
- 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行
利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
随机推荐
- T-SQL中的APPLY用法
原文出处:http://www.sqlservercentral.com/articles/Stairway+Series/121318/ 从SQL Server 2005开始,微软添加了一个新的运算 ...
- 数据库设计,表与表的关系,一对一。One-To-One(1)
如何处理对象间one-to-ont的映射关系:one-to-one: 处理一对一关联的方式有两种: 1.主键关联使用主键关联处理一对一的关系. 主键关联不需要额外的表字段:两行是通过这种一对一关系相关 ...
- MySQL二进制日志(binary log)总结
本文出处:http://www.cnblogs.com/wy123/p/7182356.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...
- cdnbest独立主控用户如何开通日志分析
1.cdn独立主控用户开通日志分析,先用授权的帐号在官网平台登陆,然后购买日志套餐 2.在自已的主控平台还要做两步操作: 1.增加个日志套餐,内容随便,因为设置是无效的,只是需要一个套餐 2. 给用户 ...
- tomcat/Java指定加载jar包的路径
背景:部署的web站点,应用默认加载工程的/webapps/工程名/WEB-INF/lib下的jar包 但是我需要提供一个和web工程没关系的的jar包管理目录 解决方法: 执行java方法时 ...
- spring整合mybatis在使用.properties文件时候遇到的问题
在spring里使用org.mybatis.spring.mapper.MapperScannerConfigurer 进行自动扫描的时候,设置了sqlSessionFactory 的话,可能会导致P ...
- js学习(4) 函数
JavaScript有三种声明函数的方法 (1)function命令 function print(s) { console.log(s); } (2)函数表达式 1.var print = func ...
- node.js中使用 http-proxy 创建代理服务器
代理,也称网络代理,是一种特殊网络服务,允许一个终端通过代理服务与另一个终端进行非直接的连接,这样利于安全和防止被攻击. 代理服务器,就是代理网络用户去获取网络信息,就是信息的中转,负责转发. 代理又 ...
- node.js中通过dgram数据报模块创建UDP服务器和客户端
node.js中 dgram 模块提供了udp数据包的socket实现,可以方便的创建udp服务器和客户端. 一.创建UDP服务器和客户端 服务端: const dgram = require('dg ...
- centos 7 一些命令
su 切换到管理员账户cd 'wo shi mu lu'ls 查看 当前目录或者文件tar -xvzf pip-10.0.1.tar.gz 解压 文件systemctl restart network ...