总结:原地址演示了如何使用远程监控进程和连接来监控远程进程。 那么如何监控集群中运行的进程呢?其实一般方法是类似的。
原文地址
如何使用 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-app 和 visualvm 创建了密钥库和信任库。
第 1 步包含 java-app.keystore 和 java-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 创建的示例)。
评论前必须登录!
注册