摘要:原文地址在利用和遠程監(jiān)控進程和利用連接的方法里介紹了如何使用監(jiān)控遠程進程的方法。那么如何監(jiān)控一個運行在集群中的進程呢其實大致方法也是類似的。
原文地址
在利用VisualVm和JMX遠程監(jiān)控Java進程和VisualVm利用SSL連接JMX的方法里介紹了如何使用VisualVm+JMX監(jiān)控遠程Java進程的方法。那么如何監(jiān)控一個運行在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轉發(fā)端口
kubectl -nport-forward 1100
Step5 啟動VisualVm,創(chuàng)建JMX連接localhost:1100
SSL JMX連接啟用SSL JMX連接,那么需要增加三個步驟,步驟就稍微復雜一些,假設你已經(jīng)根據(jù)VisualVm利用SSL連接JMX的方法創(chuàng)建好了java-app和visualvm的keystore和truststore。
Step1 創(chuàng)建一個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掛載到容器內(nèi)的/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轉發(fā)端口
kubectl -nport-forward 1100
Step7 啟動VisualVm,創(chuàng)建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做的例子)。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/33082.html
摘要:原文地址在利用和遠程監(jiān)控進程和利用連接的方法里介紹了如何使用監(jiān)控遠程進程的方法。那么如何監(jiān)控一個運行在集群中的進程呢其實大致方法也是類似的。 原文地址 在利用VisualVm和JMX遠程監(jiān)控Java進程和VisualVm利用SSL連接JMX的方法里介紹了如何使用VisualVm+JMX監(jiān)控遠程Java進程的方法。那么如何監(jiān)控一個運行在K8S集群中的Java進程呢?其實大致方法也是類似的...
摘要:為了安全考慮有些服務器會被限制登錄本文介紹如何獲取遠程服務器上進程的運行狀態(tài)啟動服務在服務器端啟動服務后遠程的機器可以通過協(xié)議獲取服務器上程序的運行狀態(tài)在服務器上創(chuàng)建的授權文件假設文件路徑為內(nèi)容如下如果你的目錄不是的話請改為正確的值接下來通 為了安全考慮, 有些服務器會被限制登錄. 本文介紹如何獲取遠程服務器上 Java 進程的運行狀態(tài). 啟動 jstatd 服務 在服務器端啟動 ...
摘要:點擊進入我的博客命令行工具這些工具大多數(shù)是類庫的一層薄的包裝,它們的主要功能代碼是在類庫中實現(xiàn)的。可視化工具是到目前為止隨發(fā)布的功能最強大的運行監(jiān)視和故障處理程序,并且可以預見在未來一段時間內(nèi)都是官方主力發(fā)展的虛擬機故障處理工具。 點擊進入我的博客 3.1 JDK命令行工具 showImg(https://segmentfault.com/img/remote/14600000174...
摘要:引曾幾何時這句話總是在你的程序中出現(xiàn),新手到是什么問題后就去改了內(nèi)存大小還總是分不清楚,想的是總之設大點我就看不到這個錯誤了。稍微有點經(jīng)驗的會翻翻看看什么地方會出現(xiàn)內(nèi)存泄露,當然也會改參數(shù),但會有節(jié)制的改了。 引 曾幾何時java.lang.OutOfMemoryError: Java heap space這句話總是在你的程序中出現(xiàn),新手search到是什么問題后就去改了內(nèi)存大小還總...
摘要:能夠提供被監(jiān)控虛擬機的內(nèi)存線程類的加載以及等信息,從而能夠?qū)Ψ掌鞯倪\行情況進行實時監(jiān)控。目前支持兩種監(jiān)控方法方法和基于的方法。下一篇博客講解以方式實現(xiàn)遠程監(jiān)控。 轉自:http://www.cnblogs.com/catkin...介紹兩個jdk1.8自帶的可視化監(jiān)視工具 Jconsole: Java 6.x采用JMX方式提供了一系列監(jiān)視和管理虛擬機的API,隨SDK一起發(fā)布的JCo...
閱讀 3156·2021-11-22 09:34
閱讀 2796·2021-09-22 15:28
閱讀 816·2021-09-10 10:51
閱讀 1853·2019-08-30 14:22
閱讀 2273·2019-08-30 14:17
閱讀 2734·2019-08-30 11:01
閱讀 2295·2019-08-29 17:19
閱讀 3653·2019-08-29 13:17