关注分享主机优惠活动
国内外VPS云服务器

使用 VisualVm 和 JMX 远程监控 K8S 上的 Java 进程

总结:原地址演示了如何使用远程监控进程和连接来监控远程进程。 那么如何监控集群中运行的进程呢?其实一般方法是类似的。

原文地址

如何使用 VisualVm 和 JMX 远程监控 Java 进程以及使用 SSL 将 VisualVm 连接到 JMX 介绍一种方法。 使用VisualVm+JMX进行远程监控。 Java 处理方法。 那么如何监控K8S集群内运行的Java进程呢?其实大致方法是类似的。

非 SSL JMX 连接

如果您使用非 SSL JMX 连接,只需几个步骤即可将本地 VisualVm 连接到 K8S 集群中的 Java 进程。 。

步骤1修改Deployment.yaml并添加以下系统属性

-Dcom.sun.management.jmxremote-Dcom.sun。管理。    jmxremote.authenticate=假-Dcom.sun.management.jmxremote.ssl=假-Dcom.sun.management.jmxremote.port=1100-Dcom.sun.management.jmxremote.rmi.port=1100[ k4]Djava.rmi.server.hostname=localhost

-Djava.rmi.server.hostname必须设置为localhost

步骤2修改Deployment.yaml并添加容器端口

containers:- name: ... image: ... ports: -containerPort: 1100 name: tcp-jmx

第 3 步部署部署

第 4 步使用 kubectl 转发端口

kubectl -n  port-forward  1100

步骤 5 启动 VisualVm 并创建 JMX 连接。 localhost:1100

SSL JMX 连接

要启用 SSL JMX 连接,您需要添加以下三件事:有。 步。 情况有点复杂。 假设您已基于 VisualVm 使用 SSL 连接到 JMX 的方法为 java-appvisualvm 创建了密钥库和信任库。

第 1 步包含 java-app.keystorejava-app.truststore

kubectl -n  创建秘密通用 jmx-ssl --from-file=java-app.keystore --from- file=java-app.truststore

第2步修改Deployment.yaml并将Secret挂载到容器内的/jmx-ssl目录中。 。 包含 strong>

ers: - 名称: ... image: ... volumeMounts: - 名称: jmx-ssl-vol 挂载路径: /jmx-ssl 卷: - 名称: jmx[k4 ] ssl-vol Secret: SecretName: jmx-ssl

步骤 3 修改 Deployment.yaml 并添加以下系统属性

[k4 ]Dcom。    sun.management.jmxremote-Dcom.sun.management.jmxremote.port=1100-Dcom.sun.management.jmxremote.rmi.port=1100-Dcom.sun.management.jmxremote.authenticate=false[ k4]Dcom.sun.management.jmxremote.ssl=true-Dcom.sun.management.jmxremote.registry.ssl=true-Dcom.sun.management.jmxremote.ssl.need.client.auth=true[ k4]Djavax.net.ssl.keyStore=/jmx-ssl/java-app.keystore-Djavax.net.ssl.keyStorePassword=-Djavax.net.ssl trustStore=。 /jmx-ssl/java-app.truststore-Djavax.net.ssl.trustStorePassword=-Djava.rmi.server.hostname=localhost

-Djava.rmi.server.hostname 必须设置为 请请注意,有 >localhost

第4步修改Deployment.yaml并添加容器端口

containers:- name: .. image: ……  端口:- 容器端口:1100 名称:tcp-jmx ...

步骤 5 部署部署

步骤 6使用kubectl转发端口

kubectl -n  port-forward  1100

第7步启动VisualVm并创建 JMX 连接 localhost:1100

jvisualvm -J-Djavax.net.ssl.keyStore= [ k4]J[k4 ]Djavax.net.ssl.keyStorePassword= -J-Djavax.net.ssl.trustStore= -J-Djavax .net.ssl。   trustStorePassword=

K8S 示例配置文件

可以在此处找到关联的 K8S 示例配置文件(使用 Tomcat 创建的示例)。

未经允许不得转载:主机频道 » 使用 VisualVm 和 JMX 远程监控 K8S 上的 Java 进程

评论 抢沙发

评论前必须登录!