日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jconsole 使用_我的Wiki:使用JConsole对WildFly(或JBoss AS7)进行远程JMX访问

發(fā)布時間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jconsole 使用_我的Wiki:使用JConsole对WildFly(或JBoss AS7)进行远程JMX访问 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

jconsole 使用

與以前的版本相比,JBoss AS7的目標(biāo)之一是使其在默認(rèn)情況下更加安全。 受此目標(biāo)直接影響的領(lǐng)域之一是,您不再期望服務(wù)器在端口上公開某些服務(wù),而無需任何身份驗(yàn)證/授權(quán)即可訪問它。 請記住,在以前的JBoss AS版本中,只要打開了這些端口以進(jìn)行遠(yuǎn)程通信,就可以訪問JNDI端口,JMX端口而無需任何身份驗(yàn)證/授權(quán)。 在JBoss AS7中,此類端口上用于通信的更細(xì)粒度的授權(quán)允許服務(wù)器控制誰可以通過該端口調(diào)用操作。

當(dāng)然,這不僅限于JBoss AS7,而且仍然是WildFly(這是JBoss Application Server的重命名)的目標(biāo)。 實(shí)際上,WildFly向前邁了一步,現(xiàn)在具有“一個單一端口”的功能來進(jìn)行所有通信。

JBoss AS7和WildFly中的JMX通信

在此背景下,我們現(xiàn)在將重點(diǎn)關(guān)注JBoss AS7和WildFly中的JMX通信。 在本文的其余部分,我將使用WildFly(8.2.0 Final)作為參考,但是相同的細(xì)節(jié)(略有變化)適用于JBoss AS7和WildFly的其他主要版本,這些版本到目前為止已經(jīng)發(fā)布。

WildFly服務(wù)器由“子系統(tǒng)”組成,每個子系統(tǒng)都具有一組特定的功能。 例如,有支持Java EE功能集的EE子系統(tǒng)。 然后是支持Web / HTTP服務(wù)器功能的Undertow子系統(tǒng)。 同樣,有一個JMX子系統(tǒng)公開了服務(wù)器上的JMX功能集。 眾所周知,我敢肯定,JMX服務(wù)通常用于監(jiān)視甚至管理Java服務(wù)器,其中包括遠(yuǎn)程管理服務(wù)器。 WildFly中的JMX子系統(tǒng)允許遠(yuǎn)程訪問JMX服務(wù),并且端口9990是用于該遠(yuǎn)程JMX通信的端口。

JConsole用于針對JBoss AS7和WildFly的遠(yuǎn)程JMX訪問

Java(JDK)與JConsole工具捆綁在一起,該工具允許連接到公開JMX服務(wù)的本地或遠(yuǎn)程Java運(yùn)行時。 該工具易于使用,您所要做的就是運(yùn)行jconsole命令,它將顯示一個圖形菜單,列出所有本地Java進(jìn)程,以及一個用于指定遠(yuǎn)程URL以連接到遠(yuǎn)程進(jìn)程的選項(xiàng):

# Start the JConsole $JAVA_HOME/bin/jconsole

假設(shè)您已經(jīng)在本地啟動了WildFly獨(dú)立服務(wù)器。 現(xiàn)在,當(dāng)您啟動jconsole時,您會注意到WildFly Java進(jìn)程在您可以連接到的本地運(yùn)行進(jìn)程中列出。 選擇WildFly Java實(shí)例時,將自動連接到它,并且您會注意到服務(wù)器公開的MBean。 但是,在本文的上下文中,JConsole中的這種“本地過程”模式不是我們感興趣的。

讓我們使用該JConsole菜單中的“遠(yuǎn)程進(jìn)程”選項(xiàng),該菜單允許您指定用于連接到Java運(yùn)行時的遠(yuǎn)程URL以及用于連接到該實(shí)例的用戶名和密碼。 即使我們的WildFly服務(wù)器在本地運(yùn)行,我們也可以使用此“遠(yuǎn)程進(jìn)程”選項(xiàng)嘗試并連接到它。 因此,讓我們嘗試一下。 在此之前,讓我們考慮以下幾點(diǎn):

  • 請記住,WildFly中的JMX子系統(tǒng)允許在端口9990上進(jìn)行遠(yuǎn)程訪問
  • 對于遠(yuǎn)程訪問JMX,URL的格式為– service:jmx:[vendor-specific-protocol]:// [host]:[port]。 供應(yīng)商特定的協(xié)議在這里很有趣。 對于WildFly,特定于供應(yīng)商的協(xié)議是http-remoting-jmx。
  • 請記住,WildFly在默認(rèn)情況下是安全的,這意味著僅因?yàn)镴MX子系統(tǒng)公開了9990端口以進(jìn)行遠(yuǎn)程通信,并不意味著它已開放給任何人通信。 為了允許通過此端口進(jìn)行通信,必須對調(diào)用方客戶端進(jìn)行身份驗(yàn)證和授權(quán)。 這由WildFly中的“ ManagementRealm”支持。 允許對此領(lǐng)域進(jìn)行身份驗(yàn)證和授權(quán)的用戶訪問該端口。
  • 牢記這些要點(diǎn),讓我們首先在管理領(lǐng)域中創(chuàng)建一個用戶。 可以使用添加用戶命令行腳本(位于JBOSS_HOME / bin文件夾中)完成此操作。 由于有足夠的文檔資料,因此我將不做詳細(xì)介紹。 讓我們假設(shè)我在管理領(lǐng)域中創(chuàng)建了一個名為“ wflyadmin”的用戶,并使用了適當(dāng)?shù)拿艽a。 要驗(yàn)證是否已正確創(chuàng)建用戶,請在正確的領(lǐng)域中訪問URL http:// localhost:9990 / console的WildFly管理控制臺。 系統(tǒng)將要求您輸入用戶名和密碼進(jìn)行訪問。 使用與新創(chuàng)建的用戶相同的用戶名和密碼。 如果登錄有效,那么您就很好。 如果不是,那么請確保您在添加新用戶時做得正確(正如我說的,我將不贅述添加新用戶的細(xì)節(jié),因?yàn)檫@只會不必要地延長本文的篇幅)。

    因此,在這一點(diǎn)上,我們已經(jīng)創(chuàng)建了一個名為ManagementManager的名為“ wflyadmin”的用戶。 我們將使用相同的用戶帳戶通過JConsole訪問WildFly上的JMX服務(wù)。 現(xiàn)在讓我們照常啟動jconsole:

    $JAVA_HOME/bin/jconsole

    在JConsole菜單上,讓我們再次選擇“遠(yuǎn)程進(jìn)程”選項(xiàng),并在URL文本框中使用以下URL:

    service:jmx:http-remoting-jmx://localhost:9990

    注意:對于JBoss AS 7.x和JBoss EAP 6.x ,供應(yīng)商特定的協(xié)議是remoting-jmx,并且通信端口是9999 。 因此,URL為service:jmx:remoting-jmx:// localhost:9999

    在用戶名和密碼文本框中,使用與新創(chuàng)建的用戶/密碼相同的密碼。 最后,單擊“連接”。 你看到了什么? 這是行不通的! 連接失敗。 那么出了什么問題呢?

    為什么JConsole對WildFly的遠(yuǎn)程訪問不起作用?

    您做了所有顯而易見的事情來遠(yuǎn)程訪問WildFly JMX服務(wù),但您仍然看到JConsole無法連接到它。 可能是什么原因? 記住,在前面的幾點(diǎn)中,我注意到“特定于供應(yīng)商的協(xié)議”很有趣嗎? 我們使用http-remoting-jmx,該協(xié)議內(nèi)部依賴于某些WildFly / JBoss特定的庫,主要用于遠(yuǎn)程通信以及身份驗(yàn)證和授權(quán)。 這些庫特定于WildFly服務(wù)器,因此不是標(biāo)準(zhǔn)Java運(yùn)行時環(huán)境的一部分。 啟動jconsole時,它將使用標(biāo)準(zhǔn)類路徑,該類路徑僅包含JDK / JRE中的相關(guān)庫。

    要解決此問題,您需要做的是將WildFly服務(wù)器特定的庫引入JConsole的類路徑中。 在研究如何做之前,讓我們看一下需要哪些WildFly特定的庫。 工作所需的所有必要類均在JBOSS_HOME / bin / client /文件夾中的jboss-cli-client.jar中。 因此,我們需要做的所有事情就是將此jar包含在jconsole工具的類路徑中。 為此,我們使用jconsole工具的-J選項(xiàng),該選項(xiàng)允許將參數(shù)傳遞給jconsole的Java運(yùn)行時。 執(zhí)行該命令的命令是:

    $JAVA_HOME/bin/jconsole -J-Djava.class.path=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/jconsole.jar:/opt/wildfly-8.2.0.Final/bin/client/jboss-cli-client.jar

    (請注意,對于Windows,classpath分隔符是分號而不是冒號)


    注意,針對JBoss AS 7.x和JBoss EAP 6.x的服務(wù)器特定的jar名為jboss-client.jar,并且位于相同的JBOSS_HOME / bin / client目錄位置。

    因此,我們使用-J選項(xiàng)將-Djava.class.path作為參數(shù)傳遞給jconsole Java運(yùn)行時。 注意,我們在該類路徑中指定的不僅僅是服務(wù)器特定的jar。 這是因?yàn)?#xff0c;使用-Djava.class.path應(yīng)該包含完整的類路徑。 我們包括JConsole所需的Java JDK lib文件夾中的jar,以及該類路徑中服務(wù)器特定的jar。

    運(yùn)行該命令應(yīng)該像往常一樣啟動JConsole,讓我們繼續(xù)并選擇“ Remote process”選項(xiàng)并指定與以前相同的URL:

    service:jmx:http-remoting-jmx://localhost:9990

    并使用與以前相同的用戶名和密碼,然后單擊“連接”。 這次您應(yīng)該能夠連接,并且應(yīng)該開始看到通過JMX公開的MBean和其他服務(wù)。

    如何提供執(zhí)行此必要的類路徑設(shè)置的腳本?

    由于嘗試使用JConsole進(jìn)行針對WildFly的遠(yuǎn)程訪問是很平常的事情,因此可以合理地期望擁有一個設(shè)置類路徑的腳本(如上所述),然后可以使用該腳本。 這就是為什么WildFly會提供這樣的腳本的原因。 它位于JBOSS_HOME / bin文件夾中,稱為jconsole.sh(對于Windows,稱為jconsole.bat)。 這只是一個包裝腳本,在適當(dāng)設(shè)置了類路徑之后,該腳本內(nèi)部調(diào)用Java JDK中存在的jconsole工具。 您所要做的就是運(yùn)行:

    $JBOSS_HOME/bin/jconsole.sh

    在真正的遠(yuǎn)程計算機(jī)上針對WildFly使用JConsole怎么辦?

    到目前為止,我們使用的是與WildFly實(shí)例在同一臺計算機(jī)上的jconsole工具,這意味著我們可以訪問文件系統(tǒng)上WildFly安裝目錄中存在的WildFly服務(wù)器特定jar的文件系統(tǒng)。 這使我們可以設(shè)置jconsole的類路徑以指向本地文件系統(tǒng)上的jar?

    如果要從一臺遠(yuǎn)程計算機(jī)對另一臺計算機(jī)上安裝并運(yùn)行的WildFly服務(wù)器運(yùn)行jconsole,該怎么辦。 在這種情況下,您的遠(yuǎn)程客戶端計算機(jī)將無法訪問WildFly安裝目錄的文件系統(tǒng)。 因此,要使jconsole在這種情況下運(yùn)行,您必須將JBOSS_HOME / bin / jboss-cli-client.jar復(fù)制到遠(yuǎn)程客戶端計算機(jī)上,并復(fù)制到您選擇的目錄中,然后按照說明設(shè)置jconsole工具的類路徑并將其指向該jar位置。 這樣一來,您就可以從遠(yuǎn)程計算機(jī)上的jconsole訪問WildFly的JMX服務(wù)。

    翻譯自: https://www.javacodegeeks.com/2014/12/my-wiki-remote-jmx-access-to-wildfly-or-jboss-as7-using-jconsole.html

    jconsole 使用

    總結(jié)

    以上是生活随笔為你收集整理的jconsole 使用_我的Wiki:使用JConsole对WildFly(或JBoss AS7)进行远程JMX访问的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。