如果我打开jvisualvm并转到“ File >> Add Remote Host jvisualvm提示我创建一个新的远程服务器条目。 我输入主机名myapp01.example.org ,然后看到该服务器显示在左侧“ Applications树的“ Remote部分下。 右键单击该服务器,然后单击Add JMX Connection ,我看到以下对话框:

在此处输入图片说明

假设我在myapp01.example.org:8443运行了一个Java应用程序(将WAR部署到Tomcat)。 要通过SSH进入服务器,我使用用户名skroob和密码12345 (嘿,这是我的行李箱!):

ssh skroob@myapp01.example.org
skroob@myapp01.example.org's password: 12345

当我如下填写对话框时:

  • 连接: myapp01.example.org:8443 : myapp01.example.org:8443
  • 用户名: skroob
  • 密码: 12345

我收到以下错误:

无法使用service:jmxLrmi:/// jndi / rmi://myapp01.example.org:8443 / jmxrmi连接到skroob@myapp01.example.org:8443

我相信这可能是因为我没有将JMX配置为在Tomcat本身上公开。 也许我只是输入了错误的信息。 也许两者都有。 无论哪种方式:

  • 我需要怎么做才能使用正确的JMX信息进行配置?
  • 我需要怎么做才能为jstatd正确配置呢?

#1楼 票数:2 已采纳

这不是指定JMX连接的方式。 对于tomcat,最好的方法是创建bin / setenv.sh文件。这是最好的方法,因为已经设置了Apache脚本来查找它并在存在时调用它。

在这里可以设置任何特定于安装的参数。

您将走得像这样:

#
# PORT for debug
export JPDA_ADDRESS='8000'

echo start with 'jpda start' parameters to enable debugging.  Tomcat will listen on $JPDA_ADDRESS

CATALINA_OPTS="\
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1299 \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password \
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access \
-Dcom.sun.management.jmxremote.ssl=false 

jmxremote.access:

monitorRole readonly
controlRole readwrite

jmxremote.password:此文件必须由启动Tomcat或JMX的ID进行只读处理! 即chmod 400 jmxremote.password

monitorRole  readpass
controlRole  changepass

基本上,您将设置2个JMX用户ID。 可以访问暴露的吸气剂的一种。 另一个也可以使用setter和mbean的方法。 在实践中,通常需要提供后者,因此您不仅可以外观。

所以...在上面的对话框中

  • 连接:myapp01.example.org:1299
  • 用户名:controlRole
  • 密码:changepass

  ask by smeeb translate from so

未解决问题?本站智能推荐:

1回复

visualvm中jstats和jmx之间的区别

我正在使用visualvm监视具有jmx和jstatd的生产服务器。 我在视觉虚拟机中尝试了两种协议,但看起来非常相同,使用jmx或jstatd监视服务器有什么区别(在监视可能性,带宽使用,cpu使用等方面)? 我是否应该优先选择一种解决方案? 谢谢 !
2回复

调试VisualVM远程连接

我在亚马逊云中的 Linux 服务器上运行 Tomcat 6。 我正在尝试从我办公室的 Mac 上使用 VisualVM 连接到它。 我已经允许打开我的桌面和服务器之间的所有 TCP 端口,但是我无法让 VisualVM 做任何事情。 在 linux 机器上,我已经启动了 Tomcat: 在我的 M
1回复

使用visualvm远程分析neo4j

我正在尝试使用VisualVM从本地笔记本电脑监控GC信息,并连接到运行ubuntu 16的远程EC2实例上运行在Oracle JDK 8上的Neo4j(企业)应用程序。我能够使用JMX连接进行连接,但问题是我无法查看VisualGC(插件)上的任何内容。 消息“此JVM不支持”。 基于此
2回复

VisualVM显示“此JVM不支持”

我正在尝试使用VisualVM 1.4分析远程JVM。 我正在使用以下OpenJDK版本在本地运行macOS High Sierra 10.13.6: 服务器使用以下OpenJDK运行Debian Stretch: 当我在本地监视JVM进程时,会看到所有这些选项卡,并且性能分析正常。
1回复

如何在包装为.exe的Java应用程序上运行分析?

我想使用jstatd和visualvm对已包装为.exe的第三方Java应用程序进行性能分析。 有人对如何实现这一目标有意见吗?
1回复

visualvm可以通过JMX自动连接到远程进程吗?

我有一个在远程计算机上运行的Java进程,该进程设置了一些mbeans。 我还在该机器上运行jstatd作为与Java进程相同的用户。 (mbeans可以通过编程方式设置或使用-Dcom.sun.management.jmxremote...等,这似乎没有区别)。 VisualVM能够与
2回复

通过jstadt在JavaVisualVM中使用VisualGC进行远程Tomcat

我正在尝试使用Java VisualVM中的Visual GC可视化远程Tomcat的内存布局。 在托管Tomcat的Linux服务器上,jstatd正在运行(包括tools.policy和正确的[-J] -Djava.rmi.server.hostname = [SERVER_IP],该文件
2回复

避免需要设置jmxremote端口(以远程使用VisualVM)?

我们共享一个用于开发各种Java应用程序的远程Linux机器,我们通过ssh使用VisualVM来对应用程序进行配置, 如此处所述 。 有什么方法可以在我们的Java进程上启用JMX /分析,而无需在我们的进程/用户之间分配/设置端口号? 必须始终确保仅指定(唯一)端口号才能启用性能分析,这