簡體   English   中英

在Java VisualVM中添加遠程VM

[英]Adding remote VMs in Java VisualVM

如果我打開jvisualvm並轉到“ File >> Add Remote Host jvisualvm提示我創建一個新的遠程服務器條目。 我輸入主機名myapp01.example.org ,然后看到該服務器顯示在左側“ Applications樹的“ Remote部分下。 右鍵單擊該服務器,然后單擊Add JMX Connection ,我看到以下對話框:

在此處輸入圖片說明

假設我在myapp01.example.org:8443運行了一個Java應用程序(將WAR部署到Tomcat)。 要通過SSH進入服務器,我使用用戶名skroob和密碼12345 (嘿,這是我的行李箱!):

ssh skroob@myapp01.example.org
skroob@myapp01.example.org's password: 12345

當我如下填寫對話框時:

  • 連接: myapp01.example.org:8443 : myapp01.example.org:8443
  • 用戶名: skroob
  • 密碼: 12345

我收到以下錯誤:

無法使用service:jmxLrmi:/// jndi / rmi://myapp01.example.org:8443 / jmxrmi連接到skroob@myapp01.example.org:8443

我相信這可能是因為我沒有將JMX配置為在Tomcat本身上公開。 也許我只是輸入了錯誤的信息。 也許兩者都有。 無論哪種方式:

  • 我需要怎么做才能使用正確的JMX信息進行配置?
  • 我需要怎么做才能為jstatd正確配置呢?

這不是指定JMX連接的方式。 對於tomcat,最好的方法是創建bin / setenv.sh文件。這是最好的方法,因為已經設置了Apache腳本來查找它並在存在時調用它。

在這里可以設置任何特定於安裝的參數。

您將走得像這樣:

#
# PORT for debug
export JPDA_ADDRESS='8000'

echo start with 'jpda start' parameters to enable debugging.  Tomcat will listen on $JPDA_ADDRESS

CATALINA_OPTS="\
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1299 \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password \
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access \
-Dcom.sun.management.jmxremote.ssl=false 

jmxremote.access:

monitorRole readonly
controlRole readwrite

jmxremote.password:此文件必須由啟動Tomcat或JMX的ID進行只讀處理! 即chmod 400 jmxremote.password

monitorRole  readpass
controlRole  changepass

基本上,您將設置2個JMX用戶ID。 可以訪問暴露的吸氣劑的一種。 另一個也可以使用setter和mbean的方法。 在實踐中,通常需要提供后者,因此您不僅可以外觀。

所以...在上面的對話框中

  • 連接:myapp01.example.org:1299
  • 用戶名:controlRole
  • 密碼:changepass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM