摘要:原文地址在利用和遠程監控進程和利用連接的方法里介紹了如何使用監控遠程進程的方法。那么如何監控一個運行在集群中的進程呢其實大致方法也是類似的。
原文地址
在利用VisualVm和JMX遠程監控Java進程和VisualVm利用SSL連接JMX的方法里介紹了如何使用VisualVm+JMX監控遠程Java進程的方法。那么如何監控一個運行在K8S集群中的Java進程呢?其實大致方法也是類似的。
非SSL JMX連接如果采用非SSL JMX連接,那么你只需要這么幾步就可以讓你本地的VisualVm連接到K8S集群里的Java進程了。
Step1 修改Deployment.yaml,添加以下System Properties
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1100 -Dcom.sun.management.jmxremote.rmi.port=1100 -Djava.rmi.server.hostname=localhost
注意,-Djava.rmi.server.hostname一定要設置成localhost
Step2 修改Deployment.yaml,添加Container Port
containers: - name: ... image: ... ports: - containerPort: 1100 name: tcp-jmx
Step3 部署Deployment
Step4 利用kubectl轉發端口
kubectl -nport-forward 1100
Step5 啟動VisualVm,創建JMX連接localhost:1100
SSL JMX連接啟用SSL JMX連接,那么需要增加三個步驟,步驟就稍微復雜一些,假設你已經根據VisualVm利用SSL連接JMX的方法創建好了java-app和visualvm的keystore和truststore。
Step1 創建一個Secret包含java-app.keystore和java-app.truststore
kubectl -ncreate secret generic jmx-ssl --from-file=java-app.keystore --from-file=java-app.truststore
Step2 修改Deployment.yaml,把Secret掛載到容器內的/jmx-ssl目錄下
containers: - name: ... image: ... volumeMounts: - name: jmx-ssl-vol mountPath: /jmx-ssl volumes: - name: jmx-ssl-vol secret: secretName: jmx-ssl
Step3 修改Deployment.yaml,添加以下System Properties
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1100 -Dcom.sun.management.jmxremote.rmi.port=1100 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=true -Dcom.sun.management.jmxremote.registry.ssl=true -Dcom.sun.management.jmxremote.ssl.need.client.auth=true -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
Step4 修改Deployment.yaml,添加Container Port
containers: - name: ... image: ... ports: - containerPort: 1100 name: tcp-jmx ...
Step5 部署Deployment
Step6 利用kubectl轉發端口
kubectl -nport-forward 1100
Step7 啟動VisualVm,創建JMX連接localhost:1100
jvisualvm -J-Djavax.net.ssl.keyStore=K8S樣例配置文件-J-Djavax.net.ssl.keyStorePassword= -J-Djavax.net.ssl.trustStore= -J-Djavax.net.ssl.trustStorePassword=
相關K8S樣例配置文件在這里(用tomcat做的例子)。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32734.html
摘要:原文地址在利用和遠程監控進程和利用連接的方法里介紹了如何使用監控遠程進程的方法。那么如何監控一個運行在集群中的進程呢其實大致方法也是類似的。 原文地址 在利用VisualVm和JMX遠程監控Java進程和VisualVm利用SSL連接JMX的方法里介紹了如何使用VisualVm+JMX監控遠程Java進程的方法。那么如何監控一個運行在K8S集群中的Java進程呢?其實大致方法也是類似的...
摘要:為了安全考慮有些服務器會被限制登錄本文介紹如何獲取遠程服務器上進程的運行狀態啟動服務在服務器端啟動服務后遠程的機器可以通過協議獲取服務器上程序的運行狀態在服務器上創建的授權文件假設文件路徑為內容如下如果你的目錄不是的話請改為正確的值接下來通 為了安全考慮, 有些服務器會被限制登錄. 本文介紹如何獲取遠程服務器上 Java 進程的運行狀態. 啟動 jstatd 服務 在服務器端啟動 ...
摘要:點擊進入我的博客命令行工具這些工具大多數是類庫的一層薄的包裝,它們的主要功能代碼是在類庫中實現的。可視化工具是到目前為止隨發布的功能最強大的運行監視和故障處理程序,并且可以預見在未來一段時間內都是官方主力發展的虛擬機故障處理工具。 點擊進入我的博客 3.1 JDK命令行工具 showImg(https://segmentfault.com/img/remote/14600000174...
摘要:引曾幾何時這句話總是在你的程序中出現,新手到是什么問題后就去改了內存大小還總是分不清楚,想的是總之設大點我就看不到這個錯誤了。稍微有點經驗的會翻翻看看什么地方會出現內存泄露,當然也會改參數,但會有節制的改了。 引 曾幾何時java.lang.OutOfMemoryError: Java heap space這句話總是在你的程序中出現,新手search到是什么問題后就去改了內存大小還總...
摘要:能夠提供被監控虛擬機的內存線程類的加載以及等信息,從而能夠對服務器的運行情況進行實時監控。目前支持兩種監控方法方法和基于的方法。下一篇博客講解以方式實現遠程監控。 轉自:http://www.cnblogs.com/catkin...介紹兩個jdk1.8自帶的可視化監視工具 Jconsole: Java 6.x采用JMX方式提供了一系列監視和管理虛擬機的API,隨SDK一起發布的JCo...
閱讀 1983·2021-11-24 09:39
閱讀 979·2021-11-11 16:55
閱讀 1426·2021-10-09 09:43
閱讀 1416·2021-10-08 10:17
閱讀 1648·2021-08-25 09:41
閱讀 424·2019-08-30 13:02
閱讀 628·2019-08-29 15:14
閱讀 1002·2019-08-29 13:53