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