VisualVM监控远程主机
参考博客
https://blog.csdn.net/u010004317/article/details/82948040
https://blog.csdn.net/lienfeng6/article/details/78676760
一、在服务器上部署JMX服务
1.进入tomcat的bin目录,修改catalina.sh文件
#tomcat的bin目录,修改catalina.sh:
#vim catalina.sh
# 添加如下配置:
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access -Djava.rmi.server.hostname=149.129.124.xx"
# -Dcom.sun.management.jmxremote.ssl 是否开启ssl传输,设为false即可
# -Dcom.sun.management.jmxremote.authenticate 是否校验,设为false即可
# -Dcom.sun.management.jmxremote.password.file 远程登录的账号管理文件,下文会讲到如何获取 # -Dcom.sun.management.jmxremote.access.file 同上
# -Djava.rmi.server.hostname 这个很重要,如果不填的话,可以重启成功,按时客户端的jvisual是无法远程连接上的,这里的IP必须是公网IP,公网IP
2.进入tomcat的conf 编辑server.xml文件,添加jmx的端口监听
server.xml文件,添加jmx的端口监听
<!-- # 进入tomcat的conf: vim server.xml # 添加如下的监听配置。其中10001和10002是自定义的两个端口,用于远程连接需要 -->
<!-- 远程监控 -->
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />
3.添加jmx的访问控制文件
# 进入tomcat/conf的目录 # 执行以下命令 cp 复制两个文件
cp $JAVA_HOME/jre/lib/management/jmxremote.password.template jmxremote.password
cp $JAVA_HOME/jre/lib/management/jmxremote.access jmxremote.access
vi jmxremote.password
# 取消下面两行的注释,取消注释表示你可以使用这两个账号进行远程登录, 使用就打开,不使用可以不打开
#monitorRole QED
#controlRole R&D
# 也可以自定义账号,格式如 username passwd,如我想要添加一个名称叫root的账号,密码是root@123 vim jmxremote.password
# 在最后一行添加 root root@123
# 修改完jmxremote.password文件,还要修改jmxremote.access文件,添加权限 zexin readwrite chmod 600 jmxremote.password chmod 600 jmxremote.access
4.添加catalina-jmx-remote.jar包到tomcat的lib目录下
在maven仓库下载,找到对应的版本
https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina-jmx-remote
5.连接测试结果
二、安装jstat服务
1. 安装好JMX后,点击 Visual GC 会显示不受JVM支持,需要安装jstat服务
2. JDK的bin目录下,配置安全策略
cd $JAVA_HOME/bin
# 新建安全策略文件
vim jstatd.all.policy
# 添加如下内容:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
# 原文说明,我不么深入研究,有些文章会在$JAVA_HOME/jre/lib/security/java.policy直接修改,本人我是不推荐的,能不动 到原来的配置文件进来就不要碰到,而且在java.policy直接修改,赋予的权限太高,也不安全。
3.启动jstat
cd $JAVA_HOME/bin
# 启动命令:(启动成功后,没有报错且有日志输出就是正常的)
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=149.129.124.xx -J-Djava.rmi.server.logCalls=false
# 解释:
# -J-Djava.rmi.server.hostname=149.129.124.xx 这里要填的是公网IP # -J-Djava.rmi.server.logCalls=true 是否开启日志,第一次配置最好开启,可以确定是否启动成功,如果是已经配置很多次了,能确保成功的,建议就把该日志关掉,因为该日志的产生量不小,容易撑爆硬盘
# 在生产环境的配置如下(去掉日志打印,加入后台运行),这里我在监控的时候,通过输入pid发现不行,不知道怎么回事,后面再查看下问题所在: ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=149.129.124.xx &
4.查看效果(在非后台模式启动下查看的)
VisualVM监控远程主机的更多相关文章
- VisualVM监控远程主机上的JAVA应用程序
使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可 ...
- Jconsole或者VisualVM监控远程主机(阿里云,jdk11或者8)
准备: 1 一个war包或者jar包,这里我用springboot的 2 linux环境,安装tomcat,jdk,我用的jdk11和tomcat9,jdk11和8的拷贝权限文件路径有点不一样,这个需 ...
- VisualVM监控远程阿里云主机
一.前言 使用VisualVM监控远程主机,主要是要在远程主机上部署JMX服务和jstat服务,jstat服务的部署花了我半天的时间,而且,网上的资基本都是缺胳膊少腿的,没有一篇是一个整体(行得通的) ...
- Java虚拟机性能管理神器 - VisualVM(5) 监控远程主机上的JAVA应用程序【转】
Java虚拟机性能管理神器 - VisualVM(5) 监控远程主机上的JAVA应用程序[转] 标签: javajvm监控工具性能优化 2015-03-11 18:37 1394人阅读 评论(0) 收 ...
- visualvm 监控 远程 机器上的 Java 程序
JDK里面本身就带了很多的监控工具,如JConsole等. 我们今天要讲的这款工具visualvm,就是其中的一款.但是这款工具是在JDK1.6.07及以上才有的.它能够对JAVA程序的JVM堆.线程 ...
- 转:visualvm监控远程机器上的Java程序
转自:http://hanwangkun.iteye.com/blog/1195526 JDK里面本身就带了很多的监控工具,如JConsole等.我们今天要讲的这款工具visualvm,就是其中的一款 ...
- JVM探秘:VisualVM监控远程Java进程
VisualVM在Java 8中是JDK自带的一个图形化工具,项目主页 VisualVM,在后续版本中可能会从JDK移除. VisualVM可以监控Java进程的CPU与内存占用情况,可以监控Java ...
- Nagios监控远程主机
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; line-height: 150%; fon ...
- docker tomcat jvm 使用 visualVM监控
1. 建立基础镜像 FROM centos MAINTAINER fengjian <fengjian@senyint.com> ENV TZ "Asia/Shanghai&q ...
随机推荐
- SpringBoot整合MyBatis-Plus实现快速业务功能开发
概览:使用MybatisPlus和它的代码生成整合SpringBoot可以实现快速的业务功能开发,具体步骤如下 一.添加依赖 <dependency> <groupId>org ...
- Java文件处理之FileReader可输出中文字符
import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public ...
- 第六周作业—N42-虚怀若谷
一.自建yum仓库,分别为网络源和本地源 [root@centos7 ~]# cd /etc/yum.repos.d/ [root@centos7 yum.repos.d]# mkdir bak #建 ...
- B/S大文件断点续传
一. 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行上传:支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传.刷新页面后继续传输. ...
- 表单input中disabled提交后得不到值的解决办法
input的字段当为diabled时时无法获取数值得,所以最近不要用这个,我们可以用readonly带替代,即可解决这类问题.
- QT5 QTreeView添加右键菜单
C++ QT5学习--QTreeView控件创建右键菜单 QTreeView是QWidget的子类,我们再改写QTreeView类的时候,注意的是继承关系. 1.TreeView.h class Tr ...
- Apache启动报错:Invalid command 'AuthType', perhaps misspelled or defined by a module not included in it
在apache配置文件里面加了AuthType PFApacheAgent,,结果重启apache的时候歇菜了,,总是报上面的错, <Directory />AllowOverride n ...
- hdu6576Worker(最小公倍数)
Problem Description Avin meets a rich customer today. He will earn 1 million dollars if he can solve ...
- Recurrent Neural Network(2):BPTT and Long-term Dependencies
在RNN(1)中,我们将带有Reccurent Connection的node依照时间维度展开成了如下的形式: 在每个时刻t=0,1,2,3,...,神经网络的输出都会产生error:E0,E1,E2 ...
- HttpUrlConnection工具类
package com.ligotop.core.utils; import com.ligotop.core.exceptions.BusinessException; import java.io ...