gpt4 book ai didi

tomcat - 使用 jvisualvm 调试远程 Grails 应用程序

转载 作者:行者123 更新时间:2023-11-28 23:39:24 25 4
gpt4 key购买 nike

我在 Tomcat 7 上部署了一个 Grails 2 应用程序,在 Amazon EC2 Ubuntu 实例上运行。通过 SSH 连接远程调试/监控应用程序所需的最少步骤是什么,例如使用 jvisualvm(JDK 附带)?

最佳答案

我找到了一个可行的解决方案,因此将其记录下来以备后用。请注意,此示例在 Tomcat 端未使用任何身份验证或 SSL。稍微调整一下,这也应该适用于非 Ubuntu 实例。

<强>1。在远程机器上,通过添加到 Tomcat 的 JAVA_OPTS 来启用 JMX:

/etc/default/tomcat7 , 附加现有的 JAVA_OPTS:

JAVA_OPTS = "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1098"

然后重新启动 Tomcat 以应用更改:

sudo service tomcat7 restart

2.在本地机器上:

通过 SSH 连接到远程机器并在本地端口 10000 中创建一个 SOCKS 隧道。(这将向远程机器打开一个看起来正常的 SSH 提示符,但也会在 session 中打印额外的调试日志。)

ssh -v -D 10000 <hostname>

启动 jvisualvm。这些参数用于增加内存并使 jvisualvm 知道已编译的 Grails 类,target/classes 相对于 Grails 应用程序目录:

jvisualvm -J-Xms1G -J-Xmx1G -cp:a target/classes

配置 jvisualvm 以使用我们创建的代理:

Prefences > Network
Add SOCKS proxy: hostname: localhost, port: 10000
No Proxy hosts: (make empty)

这里我使用“本地连接”只是为了避免本地和远程连接之间的主机名冲突。

Right-click on Local > "Add JMX connection" > localhost:1098

就是这样——现在您应该能够监控您的远程 Grails 应用程序了。

关于tomcat - 使用 jvisualvm 调试远程 Grails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21399732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com