當前位置:首頁 » 密碼管理 » jmx訪問

jmx訪問

發布時間: 2022-06-24 19:36:36

❶ activemq spring jmx怎樣配置遠程訪問

spring所管理的bean默認是singleton,當初始化容器時創建,關閉時銷毀bean,即與容器有著同樣的生命周期

❷ 如何設置tomcat中JMX服務訪問密碼

Tomcat的JMX支持默認應該是關閉的,首先我們得打開Tomcat的JMX支持,同時指定遠程訪問的IP地址、介面、是否支持SSl,是否驗證訪問等信息。 在Tomcat啟動的VM arguments中加入下面的參數:Xml代碼 1.-Dcom.sun.management.jmxremote 2.-Dcom.sun.management.jmxremote.port=8060 3.-Dcom.sun.management.jmxremote.ssl=false 4.-Dcom.sun.management.jmxremote.authenticate=false 5.-Djava.rmi.server.hostname=172.16.100.114 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8060 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=172.16.100.114 在jdk1.6.0_20\jre\lib\management中將jmxremote.password.template復制一份重命為 jmxremote.password。修改最後兩行,將 #monitorRole QED #controlRole R&D 這個就是等一下需要用到的用戶名和密碼了。 然後,打開JDK/bin 目錄下的jconsole.exe, 在遠程進程中輸入:service:jmx:rmi:///jndi/rmi://172.16.100.114:8060/jmxrmi 就可以遠程訪問 172.16.100.114:8060 下面的jmx服務 用戶名:controlRole 密碼R&D 下面這個也可以, 用戶名:monitorRole 密碼QED 其實用的就是jmxremote.password文件裡面寫的用戶名和密碼,也可以添加幾個用戶的。

❸ 什麼是JMX

JMX是一套標準的代理和服務,實際上,用戶可以在任何Java應用程序中使用這些代理和服務實現管理。 JMX的前身是JMAPI。 JMX致力於解決分布式系統管理的問題,因此,能夠適合於各種不同的環境是非常重要的。為了能夠利用功能強大的Java計算環境解決這一的問題,Sun公司擴充了Java基礎類庫,開發了專用的管理類庫。 JMX是一種應用編程介面,可擴充對象和方法的集合體,可以用於跨越一系列不同的異構操作系統平台、系統體系結構和網路傳輸協議,靈活的開發無縫集成的系統、網路和服務管理應用它提供了用戶界面指導、Java類和開發集成系統、網路及網路管理應用的規范。 管理對象是JMX應用程序的核心。JMX結構包括:支持Java的Web瀏覽器用戶介面,管理運行模塊ARM(Admin Runtime Mole)和應用。這三個部件之間通過RMI(Remote Method Invocation)進行通信。這里需要說明的是,RMI是使得一個Java虛擬機(JVM)上運行的程序可以調用遠程伺服器上另一個JVM總的對象。 用戶介面用來發布管理操作,這些操作可以間接的通過瀏覽器或通過單獨的應用程序來激發。管理運行模塊用來給應用提供實例化的管理對象。它包括Agent對象介面,通知介面和被管數據介面。應用指的是那些被管設備單元。 JMX是一個完整的網路管理應用程序開發環境,它同時提供了:廠商需要收集的完整的特性清單,可生成資源清單表格,圖形化的用戶介面;訪問SNMP的網路API;主機間遠程過程調用;資料庫訪問方法。 JMX這一輕型的管理基礎結構,價值在於對被管理資源的服務實現了抽象,提供了低層的基本類集合,開發人員在保證大多數的公共管理類的完整性和一致性的前提下,進行擴展以滿足特定網路管理應用的需要。 JMX注重於構造管理工具的軟體框架,並盡量採用已成熟的技術。 JMX體系被分成三個層次 表現層 代理層 分布式服務層 表現層 表現層定義的是JMX可管理資源所在的層。 這些已管理的資源可以編寫或封裝為MBean。 MBean分為四種類型: 標准、動態、開放、模型 代理層 定義的是MBean向應用程序施加管理的層。包括MBean伺服器和代理服務的定義。還至少包括一個協議適配器或連接器。 代理的組成: 。

❹ jmeter中打開.jmx拒絕訪問

linux環境還是windows環境? 如果是linux環境,到bin目錄下:./jmeter.sh XX.jmx(所要運行的測試腳本,沒有的話,examples目錄下有個) 如果有進程啟動,且jmeter.log中沒有錯誤信息就安裝成功了; 如果是windows環境,雙擊「jmeter.bat」文件,如...

❺ ffmpeg推流為什麼報failed to update header with correct ration,錯誤

Wowza Media Server 的日誌

Code:
server ERROR 500 - server core failure: java.net.BindException: Address already in use
vhost WARN 200 _defaultVHost_ Bind failed, try again ([any]:1935): java.net.BindException: Address already in use
原因: 通常的原因是這台伺服器上已經有另一個Wowza Media Server正在運行。 wowzamediaserver_service.log 記錄了安裝的信息以及啟動信息。 關閉掉所有Wowza Media Server的實例,然後重新啟動。Wowza 可以作為一個服務運行,或作為獨立模式(standalone mode)運行,或者在Wowza IDE中運行,但是在同一個時間只能運行一個。 要對JMX訪問進行配置,請閱讀管理和監控(JMX 和 JConsole)。

Code:
comment server ERROR 500 - Failed to connect: org.apache.mina.common.RuntimeIOException: Failed to get the session[ConnectException: Connection refused].
comment server WARN 200 - .getStreamIn fo: RTSP/RTP re-streaming. Cannot connect to server: rtsp://[wowza-ip-address]/myStream.sdp
原因:試圖用不正確的憑證/授權去連接一個IP攝像頭(被拒絕連接了)。

Code:
server WARN 200 - .handlePacket[live/_definst_/myStream]: Fragment ration greater than suggested range of 1-4 seconds. Adjust keyframe interval accordingly: Fragment rations: [5.0,5.0,5.0]
原因: 對於Silverlight Smooth Streaming (僅針對直播流),關鍵幀的間隔(可以直接在一些編碼器上設置,或者是gop除以fps)需要在1到4秒之間,推薦2秒。任何超過4秒的設置就會引起播放暫停。 如果你沒有用Smooth Streaming,請在Streams/LiveStreamPacketizers中刪除smoothstreamingpacketizer。

Code:
comment server WARN 200 - RTPPacket.write: Bad packet: Incomplete NAL Units.
原因: 大多數是因為丟包。請打開丟包日誌記錄的功能以驗證是否是這個問題。(請閱讀Configure an RTP jitter buffer and packet loss logging (RTP/MPEG-TS over RTP).)

Code:
comment server ERROR 500 RTPDePacketizerMPEG4LATM.handleRTPPacket: Bad packet length: 200:105
原因: 這暗示著網路連接故障。請試著在你本機或本地區域網來測試相同的流,來排除網路問題。

Code:
ERROR server comment HTTPUtils.HTTPRequestToByteArray: java.io.FileNotFoundException: http://[ip-address]/latest/meta-data/proct-codes
WARN server comment Server.run: License key specified in [install-dir]/conf/Server.license file is malformed.
ERROR server comment error: java.lang.NullPointerException
ERROR server comment ERROR: Cannot write to license key file:
原因: 這個錯誤可能是由於您使用了錯誤的授權碼(license key)。例如,你將Wowza Media Server 2 的license key 用在了 Wowza Media Server 3 上。

Code:
ERROR: License key is not valid or license file does not exist and running as a service (exiting)
原因: 這個錯誤是由於使用了永久授權的插件,但沒有合法的Wowza伺服器永久授權。

Code:
server comment ERROR com.wowza.wms.server.LicensingException: Server.license
原因: 當使用性能測試工具時,在每一次性能測試腳本運行時,你會看到2個伺服器license 錯誤。這個問題在Wowza的性能測試工具文檔中有說明,可以忽略這個錯誤信息。

Code:
ERROR server comment - The Wowza Media Systems Software licensing system has determined that your serial number is not valid. Please validate that your are using the correct serial number. If this problem persists, please visit for up to date information.
ERROR server comment - system.exit
原因: 這個錯誤是由於你沒有購買合法的license。請聯系[email protected] 解決。

Code:
comment server ERROR 500 - invoke(): java.lang.NullPointerException: com.ptin.wms.mole.AbortSession.onHTTPCupertinoSt reamingSessionDestroy(EndSession.java:10)
原因: 在這個案例中,在用戶自定義模塊AbortSession的第10行有一個錯誤。必須由這個模塊的開發者來檢查這個錯誤。

Code:
Comment server WARN 200 Application folder ([install-location]/applications/_defapp_) is missing
原因: 這個錯誤發生在當你連接Wowza Media Server時,Wowza沒有找到對應的應用名。

Code:
comment server WARN 200 - Application folder ([install-location]/applications/:80) is missing
原因: 通常這是由於在使用ffmpeg作為編碼器時,它沒有正確的發送應用名。

Code:
comment server INFO 200 - RTPMediaCaster.create[9936743] - - - 2.469
comment server INFO 200 - RTPMediaCaster.init[9936743] - - - 2.47
comment server INFO 200 - RTPMediaCaster.Reconnector[9936743:live/_definst_:live/customer.stream]: start: 1 - - - 2.473
comment server INFO 200 - VHost.startStartupStreams: Stream successfully started [live/_definst_]: flv:live/customer.stream - - - 2.486
comment server ERROR 500 - Failed to connect: org.apache.mina.common.RuntimeIOException: Failed to get the session[java.net.NoRouteToHostException: No route to host]. - - - 5.603
comment server WARN 200 - .getStreamIn fo: RTSP/RTP re-streaming. Cannot connect to server: rtsp://[wowza-ip-address]/customer.mp4 - - - 5.618
comment server ERROR 500 - Failed to connect: org.apache.mina.common.RuntimeIOException: Failed to get the session[java.net.NoRouteToHostException: No route to host].
原因: 這個MediaCaster的問題通常是由於一些網路錯誤引起的。例如SHOUTcast伺服器沒有啟動。在這里我們看見有一個直播流啟動了,接下來的警告和錯誤暗示Wowza Media Server被它依賴的網路連接錯誤影響。

Code:
Application (vod) is not defined
原因: 如果是在使用例子播放器時遇到這個錯誤,並且應用'vod'是正確定義好的,那麼可能是有另外一個應用已經佔用了Wowza Media Server用的埠。在這種情況下, 不會向你期望的那樣返回build number 並且在日誌中不會有其它記錄,因為伺服器無法連接。

Code:
ERROR server comment RTSPConnecti on.connect[wowza-ip-address]:[port-number]: Failed to connect: org.apache.mina.common.RuntimeIOException: Failed to get the session[ConnectException: Connection refused: no further information].
WARN server comment LiveMediaStreamReceiver.doWatchdog: streamTimeout: Resetting connection
原因: Wowza Media Server無法連接到MediaCaster流。這可能是網路的問題或輸入流的問題。例如,攝像頭可以被訪問,但是拒絕連接。Wowza Media Server 將會繼續嘗試連接直到流重新可用了。

❻ JMX與JMS的概念,關系和作用。

JMX:
JMX--Java Management Extensions,即Java管理擴展,是一個為應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平台、系統體系結構和網路傳輸協議,靈活的開發無縫集成的系統、網路和服務管理應用。
JMX體系結構分為以下四個層次:
1)設備層(Instrumentation Level):主要定義了信息模型。在JMX中,各種管理對象以管理構件的形式存在,需要管理時,向MBean伺服器進行注冊。該層還定義了通知機制以及一些輔助元數據類。
2)代理層(Agent Level):主要定義了各種服務以及通信模型。該層的核心是一個MBean伺服器,所有的管理構件都需要向它注冊,才能被管理。注冊在MBean伺服器上管理構件並不直接和遠程應用程序進行通信,它們通過協議適配器和連接器進行通信。而協議適配器和連接器也以管理構件的形式向MBean伺服器注冊才能提供相應的服務。
3)分布服務層(Distributed Service Level):主要定義了能對代理層進行操作的管理介面和構件,這樣管理者就可以操作代理。然而,當前的JMX規范並沒有給出這一層的具體規范。
4)附加管理協議API:定義的API主要用來支持當前已經存在的網路管理協議,如SNMP、TMN、CIM/WBEM等。

JMS:
JMS(Java Message Service)是訪問企業消息系統的標准API,它便於消息系統中的Java應用程序進行消息交換,並且通過提供標準的產生、發送、接收消息的介面簡化企業應用的開發。
JMS是用於和面向消息的中間件相互通信的應用程序介面。它既支持點對點(point-to-point)的域,又支持發布/訂閱(publish /subscribe)類型的域,並且提供對下列類型的支持:經認可的消息傳遞,事務型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另一種方式來對您的應用與舊的後台系統相集成。

區別:
從以上的兩個概念很容易的就能看出兩者區別很大,JMS用於發送與接收消息,JMX用於為應用程序、設備、系統等植入管理功能。

❼ 如何在linux添加添加jmx埠

個人環境說明:JAVA
jdk1.6.0_20
IP地址:192.168.88.106
系統登陸用戶名:Administrator

1,設置密碼文件和許可權
在jdk1.6.0_20\jre\lib\management中將jmxremote.password.template復制一份重命為
jmxremote.password。修改最後兩行,將
#monitorRole
QED
#controlRole
R&D
前面的#號去掉。為什麼後面解釋。

然後修改jmxremote.password的文件許可權為僅當前用戶完全控制,所有者為當前用戶,具體步驟如下:
Windows系統需要3個步驟:

在jmxremote.password文件上右鍵->屬性,切換到安全選項卡。<XP系統可能看不到,請網路>
點「高級」按鈕,彈出「jmxremote.password的高級安全設置」窗口。
(1)刪除所有用戶對jmxremote.password文件的訪問許可權:
在「許可權」選項卡中點「更改許可權」,將「包括可從該對象的父項繼承的許可權」
復選框去掉,然後系統會彈出一個「Windows安全」警告,選擇「刪除」按鈕。
刪除成功後,許可權項目欄會變成:「所有組或用戶均不具有訪問此對象的許可權。但是該對象的所有者可以分配許可權。」

(2)指定當前登陸用戶對該文件有完全控制許可權
點「添加」按鈕,再點「高級」按鈕,再點「立即查找」,在搜索結果中找當前系統的登陸用戶雙擊添加進來。
注意不要選擇那些帶S結尾的,那個表示組,只能選擇用戶。我的是Administrator
返回後點確定,然後在彈出框中勾選「完全控制」。點確定返回剛開始的「jmxremote.password的高級安全設置」窗口。
(3)將所有者設置為當前系統的登陸用戶
切換到所有者選項卡,點擊「編輯」,雙擊選擇當前系統的登陸用戶,注意不要選擇那些帶S結尾的,那個表示組,只能選擇用戶。
最後一路確定。許可權修改完畢。

Linux系統:
chmod
600 jmxremote.password
這個沒試過,官方這么寫的。

2,啟動JMX服務端

下面這行命令我是在JDK的根目錄執行的,
這里指定的埠號是10089,主機名稱即當前計算機IP地址,不推薦設置成localhsot或者127.0.0.1,會導致在別的機子上連不上來。JAR包指定的是JDK自帶的一個DEMO
java
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=10089
-Djava.rmi.server.hostname=192.168.88.106 -jar
demo/jfc/Java2D/Java2Demo.jar

3,啟動JConsole
在JDK的bin目錄執行jconsole.exe

❽ 如何使用jconsole 遠程連接

根據oracle網站上的文檔,本地使用jconsole沒有問題。但當我從windows連接到linux時(centos5.4)時,老是連接不上)。原因是Linux上JVM給jconsole的RMI配置文件不對,

jvm使用了hostname -i的IP地址,我的/etc/hosts上127.0.0.1,所以遠程老是連接不上。

只要在java啟動參數中加入 -Djava.rmi.server.hostname=192.168.0.10 顯示說明JVM返回給jconsole的IP地址即可。

擋在java啟動參數中加入 -Dcom.sun.management.jmxremote.port=6666 時,jvm回去讀取 JRE_HOME/lib/management/jmxremote.password 和 JRE_HOME/lib/management/jmxremote.access文件。其中jmxremote.password 說明遠程訪問的用戶名和密碼, jmxremote.access說明用戶的訪問許可權,有readonly和readwrite選項。 jmxremote.password 可以有jmxremote.password.template生成,同時要注意修改jmxremote.password的訪問許可權為用戶只讀,組和others無許可權, chmod 0400 ./jmxremote.password。

否則會出現Error: Password file read access must be restricted: /root/jdk1.6.0_26/jre/lib/management/jmxremote.password

一下兩個選項分別禁止ssl驗證和無用戶名密碼訪問

-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

❾ jmx的入門准備工作

JMX學習總結 1.產生背景
要了解 JMX,我們就必須對當前的 IT 管理系統有一個初步的了解。隨著企業 IT 規模的不斷增長,IT 資源(IT resource)數量不斷增加,IT 資源的分布也越來越分散。可以想像,甚至對於一家只有幾百台 PC 公司的 IT 管理人員來說,分發一個安全補丁並且保證其在每台 PC 上的安裝,如果只依賴人工來完成那簡直就是一場噩夢。這樣,IT 管理系統就應運而生。
然而,CPU、網卡、存儲陣列是 IT 資源;OS、MS Office、Oracle database、IBM Websphere 也是 IT 資源。IT 管理系統若要對這些 IT 資源進行管理,就必須對這些管理對象有所了解:形形色色的 IT 資源就像是說著不同語言的人:Oralce 資料庫表達內存緊張的方式和 Window XP 是絕然不同的, 而 IT 管理系統就像建造通天塔的經理,必須精通所有的語言, 這幾乎是一個不可能完成的任務。

2.JMX(Java Management Extensions,即Java管理擴展)是一個為應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平台、系統體系結構和網路傳輸協議,靈活的開發無縫集成的系統、網路和服務管理應用。

3.

4.框架結構

圖 1. 管理系統構架

上圖分析了管理系統的基本構架模式。其中 Agent / SubAgent 起到的就是翻譯的作用:把 IT 資源報告的消息以管理系統能理解的方式傳送出去。

為什麼需要 Agent 和 SubAgent 兩層體系呢?這里有兩個現實的原因:

管理系統一般是一個中央控制的控制軟體,而 SubAgent 直接監控一些資源,往往和這些資源分布在同一物理位置。當這些 SubAgent 把狀態信息傳輸到管理系統或者傳達管理系統的控制指令的時候,需要提供一些網路傳輸的功能。
管理系統的消息是有一定規范的,消息的翻譯本身是件復雜而枯燥的事情。
一般來說,管理系統會將同一物理分布或者功能類似的 SubAgent 分組成一組,由一個共用的 Agent 加以管理。在這個 Agent 里封裝了 1 和 2 的功能。
JMX 和管理系統
JMX 既是 Java 管理系統的一個標准,一個規范,也是一個介面,一個框架。圖 2 展示了 JMX 的基本架構。
圖 2. JMX 構架

JMX 是管理系統和資源之間的一個介面,它定義了管理系統和資源之間交互的標准。
javax.management.MBeanServer 實現了 Agent 的功能,以標準的方式給出了管理系統訪問 JMX 框架的介面。
javax.management.MBeans 實現了 SubAgent 的功能,以標準的方式給出了 JMX 框架訪問資源的介面。
從類庫的層次上看,JMX 包括了核心類庫 java.lang.management 和 javax.management 包。
java.lang.management 包提供了基本的 VM 監控功能,
javax.management 包則向用戶提供了擴展功能。

圖 3 JMX 的操作模型

5.概念

>>>> MBeanManaged Bean的簡稱,是一個被管理的java對象,在JMX中MBean代表一個被管理的資源(設備,應用程序等)實例。通過操作MBean暴露一系列方法和屬性來操作資源。MBean包含4種類型的MBean1.Standard MBeans標准MBeans的設計和實現是最簡單的,MBean介面中定義需要暴露的屬性和操作,約定MBean介面名字後添加後綴MBean,例如NameMBean.java,實現類名稱 name.java2.Dynamic MBeans動態MBeans 在運行期暴露自己的管理介面,MBean實現類需要實現一個特定的介面DynamicMBean。介面中的方法用來動態獲取MBean的屬性和方法方法如圖:3.Open MBean Open MBean也是一種dynamic MBeans,實現DynamicMBean介面。與dynamicMBean 不同的是 Open MBean使用了幾種預定義的數據類型提供了更復雜的metadata數據。 Open MBean和dynamic MBean的區別在於是否返回OpenMBeanInfo,它是MBeanInfo的子類4.Model MBean Model MBean也是一種dynamic MBeans,它是預制的、通用的和動態的 MBean 類,已經包含了所有必要預設行為的實現,並允許在運行時添加或覆蓋需要定製的那些實現,JMX規范規定該類必須實現為javax.management.modelmbean.RequiredModelMBean,模型管理構件具有以下新的特點:
1)持久性
定義了持久機制,可以利用Java的序列化或JDBC來存儲模型MBean的狀態。
2)通知和日誌功能
能記錄每一個發出的通知,並能自動發出屬性變化通知。
3)屬性值緩存
具有緩存屬性值的能力MBeanServer MBeanServer是MBean 的容器。MBeanServer管理這些MBean,並且通過代理外界對它們的訪問。MBeanServer提供了一種注冊機制,通過注冊Adaptor和Connector,以及MBean到MBeanServer,並且通過代理外界對它們的訪問。外界可以通過名字來得到相應的MBean實例。JMX agentAgent只是一個Java進程,它包括這個MBeanServer和一系列附加的MbeanService。當然這些Service也是通過MBean的形式來發布。JMX Agent通過各種各樣的Adapter和Connector來與外界(JVM之外)進行通信。JMX Agent可以包含各種不同的協議適配器和連接器連接器 Connector連接器是可以連接MBeanServer,並使遠程的java client可以訪問該服務。連接器包含 客戶端連接器(connector client)和伺服器連接器(connector server).伺服器連接器鏈接MBean Server 和 監聽客戶端的連接請求。客戶端連接器任務是查找connector server服務並建立連接。client 和server通常在不同機器的不同JVM中。MX Remote API 定義了標準的連接器 RMI Connector,它通過 RMI 提供了對 MBeanServer 的遠程訪問。 使用 RMI 將客戶端請求傳輸到遠程 MBean 伺服器。MX Remote API 還定義了一個可選協議,名為 JMXMP(JMX 消息協議)。JMXMP 基於 TCP 連接上的序列化 Java 對象(在可選包 javax.management.remote.message 中定義)。實現此協議的連接器稱為 JMXMP Connector。也可以使用 JMXConnectorFactory 提供的用戶定義的連接器協議和可選的通用連接器RMI Connector 使用 RMI 將客戶端請求傳輸到遠程 MBean 伺服器,RMI Connector支持 RMI 的 JRMP(默認)和 IIOP 傳輸方式。連接器地址
伺服器生成的連接器地址
service:jmx:rmi://host:port 返回如下所示的 JMXServiceURL:service:jmx:rmi://host:port/stub/XXXX
service:jmx:iiop://host:port 返回如下所示的 JMXServiceURL:service:jmx:iiop://host:port/ior/IOR:XXXX
基於目錄條目的連接器地址
service:jmx:rmi://host:port/jndi/jndi-name
service:jmx:iiop://host:port/jndi/jndi-name
host 和 :port 均可忽略。
service:jmx:rmi://ignoredhost/jndi/rmi://myhost/myname
第一個 rmi: 指定 RMI 連接器,第二個 rmi: 指定 RMI 注冊表service:jmx:iiop://ignoredhost/jndi/ldap://dirhost:9999/cn=this,ou=that其中ldap://dirhost:9999/cn=this,ou=that 表示 LDAP 目錄中的 cn=this,ou=that 條目,該目錄在運行主機 dirhost 的埠 9999 上。協議適配器 Adapter協議適配器通過特定的協議提供了一張注冊在MBean伺服器的管理構件的視圖。例如,一個HTML適配器可以將所有注冊過的管理構件顯示在Web 頁面上。不同的協議,提供不同的視圖。Adapter和Connector的區別在於:Adapter 是使用某種協議(HTTP或者SNMP)來與JMX Agent獲得聯系,Agent端會有一個對象(Adapter)來處理有關協議的細節。比如SNMP Adapter和HTTP Adapter。Connector 在Agent端和client端都必須有這樣一個對象來處理相應的請求與應答。比如RMI Connector。RMI Remote Method Invocation 的簡稱,RMI是面向對象的遠程調用, RMI採用JRMP(Java Remote Method Protocol)通訊協議,是構建在TCP/IP協議上的一種遠程調用方法。RMI 允許一個對象使其方法調用對駐留在其它虛擬機,甚至其它主機上的對象可用。RMI調用機制 -----RMI 採用stubs 和 skeletons 來進行遠程對象(remote object)的通訊。stub 充當遠程對象的客戶端代理,有著和遠程對象相同的遠程介面,遠程對象的調用實際是通過調用該對象的客戶端代理對象stub來完成的。 對於JNDI技術,所有的可用服務信息都將注冊在JNDI伺服器,讓客戶端通過RMI機制調用應用程序伺服器遠程介面時,應用程序伺服器就會根據JNDI 伺服器的服務注冊信息定位到相應的服務提供連接,等待應用程序伺服器與後台伺服器連接形成之後,JNDI將不再參與到連接當中(JNDI可以理解為注冊服 務提供)LDAP OSL X.500目錄是基於OSI網路協議的目錄服務協議 ,500的缺點是不支持TCP/IP,而是支持OSI協議 , 在此前提下,也就產生了訪問X500目錄的網關--LDAP . LDAP(Lightweight Directory Access Protocal, 輕型目錄訪問協議),是針對以X500目錄為主的目錄服務的前端訪問協議,是OSL X.500目錄訪問網關. LDAP就被設計成使用TCP/IP訪問OSI 目錄服務的服務協議,而隨著互聯網成為網路的主流,LDAP也成為一個具備目錄的大部分服務的協議。 LDAP主要解決目錄服務的前端訪問形式,而不是對 目錄服務本身制定的的協議,理論上,LDAP支持後台的任何存儲形式,包括X500,關系資料庫,文本資料庫或文件目錄等。LDAP繼承了X500目錄的 大部分定義,無論是訪問樣式還是語法都與X500相似。JINIJini( Java Intelligent Network Infrastructure)是一個主動的、響應式的分布式基礎結構,它提供了在分布式環境中進行服務的建立、查找、通訊和調用的一整套機制。
Jini系統架構HTTPHTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW伺服器傳輸超文本到本地瀏覽器的傳送協議。Internet的基本協議是TCP/IP協議,然而在TCP/IP模型最上層的是應用層(Application layer),它包含所有高層的協議。高層協議有:文件傳輸協議FTP、電子郵件傳輸協議SMTP、域名系統服務DNS、網路新聞傳輸協議NNTP和 HTTP協議等SNMPSNMP(Simple Network Management Protocol,簡單網路管理協議)
>>>> 實現的協議適配器和連接器

當前已經實現的協議適配器和連接器包括:
1)RMI連接器
2)SNMP協議適配器
3)IIOP協議適配器
4)HTML協議適配器
5)HTTP連接器

JMX 標准提供了四種不同的 MBean:

Standard MBean 直接實現用於管理對象的方法,既可以通過實現一個由程序員定義的、類名以 「MBean」 結束的介面,也可以使用一個以一個類作為構造函數參數的 Standard MBean 實例,加上一個可選的介面類規范。這個介面可以開放用於管理的部分對象方法。
Dynamic MBean 用屬性訪問器動態地訪問屬性,並用一個一般化的 invoke() 方法調用方法。可用的方法是在 MBeanInfo 介面中指定的。這種方式更靈活,但是不具有像 Standard MBean 那樣的類型安全性。它極大地降低了耦合性,可管理的 POJO(純粹的老式 Java 對象)不需要實現特定的介面。
Model MBean 提供了一個改進的抽象層,並擴展了 Dynamic MBean 模型以進一步減少對給定實現的依賴性。這對於可能使用多個版本的 JVM 或者需要用鬆散耦合管理第三方類的情況會有幫助。Dynamic MBean 與 Model MBean 之間的主要區別是,在 Model MBean 中有額外的元數據。
Open MBean 是受限的 Model MBean,它限制類型為固定的一組類型,以得到最大的可移植性。通過限制數據類型,可以使用更多的適配器,並且像 SMTP 這樣的技術可以更容易適應 Java 應用程序的管理。這種變體還指定了數組和表等標准結構以改進復合對象的管理。
如 果要同時控制客戶機和伺服器,那麼 Standard MBean 是最容易實現的一種變體。它們的優點是有類型,但是如果在更一般化的管理控制台環境中使用時會缺少一些靈活性。如果計劃使用 Dynamic MBean,那麼您也可以更一步使用 Model MBean,在大多數情況下它會改善抽象層而幾乎不會增加復雜性。Open MBean 是是可移植性最高的一種變體,如果需要開放復合對象,那麼它是惟一的方法。不幸的是,在 Open MBean 中開放復合結構所需要的代碼數量過多,只有在需要高級的商業管理解決方案時才合算。

JMX 還支持使用帶過濾器和廣播器的事件模型的通知。為此目的,Standard MBean 需要聲明一個 MBeanInfo 元數據描述。 Standard MBean 實現通常在內部構造這些內容,開發人員不能直接看到它們。在本文後面,您會看到如何用 Model MBean 元數據的 XML 描述符格式和 Spring 的 JMX 支持進行實際上透明的配置。

>>>>使用 MBean 的過程1.創建一個 MBServer:MBeanServe2.獲得管理資源用的 MBean:serverBean3.給這個 MBean 一個 ObjectName:serverMBeanName4.將 serverBean 以 serverMBeanName 注冊到 mBeanServer 上去>>>>通知機制要讓MBean能發出通知,MBean必須實現介面NotificationBroadcaster或它的子介面NotificationEmitter.發送通知時要做的是構建javax.management.Notification類的實例或Notification 的子類,然後以參數形式傳遞這個實例到.sendNotification.方法中
>>>>JMX 代理內幕

揭示了典型 JMX 代理的內部構造。請注意,代理內部的四種主要組件是 MBean 伺服器、一組代理服務、連接器和協議適配器以及定製代理邏輯。

MBean 伺服器

MBean 伺服器是代理內部的核心組件。所有 MBean 在可以通過遠程應用程序訪問之前都必須向 MBean 伺服器注冊。當使用 MBean 伺服器時,通過唯一的對象名對已注冊的 MBean 進行定址。遠程管理器應用程序(或分布式服務)只能通過 MBean 的管理介面(已公開的屬性、操作和事件)發現和訪問 MBean。

代理服務

代理還提供了一組代理服務,定製代理邏輯可以使用它們在 MBean 伺服器中對已注冊的 MBean 進行操作。為了符合 JMX 1.1,這些服務是必需的 ―所有代理都必須提供它們。 有趣的是,可以用 MBean 本身的形式實現這些服務。以 MBean 的形式實現服務有幾個優點:

可以通過 Manager 組件或 EMS 遠程訪問該服務的操作。
通過從遠程管理器應用程序進行訪問,EMS 可以遠程地管理服務本身。
可以通過下載 MBean 在運行時動態地執行服務邏輯的更新。
表 3 顯示了 JMX 1.1 規范中定義的一組代理服務。

表 3. JMX 1.1 所需的代理服務

m-let 或管理 Applet 服務 支持跨網路從 URL 位置裝入動態類(請參閱 javax.management.loading.MLetMBean 和相關聯的類/介面)。
監視器服務 將代價高昂的遠程輪詢操作轉換成本地操作;監控 MBean 屬性的特定更改並在觀察到更改時發送事件。
計時器服務 經歷了指定的時間量後發送事件,或以指定時間間隔定期發送事件(請參閱 javax.management.monitor.MonitorMBean 和相關的類/介面)。
關系服務 支持 MBean 之間的關系定義,並強制關系的完整性(請參閱 javax.management.relation.RelationServiceMBean 和相關的類/介面)。

增值代理邏輯

增值代理邏輯通常是編寫的代碼。它是能夠提供本地化智能的定製代理邏輯,用來管理向該代理注冊的 JMX 可管理資源。例如,如果我們有兩個冗餘的應用程序伺服器群集,就可以創建定製代理,監控負載級別並且動態地將入站請求重定向到不同的群集 ― 通過對已注冊的伺服器的 MBean 進行操作。通常,NMS 的供應商也會提供定製邏輯。一旦分布式服務的規范得以充實,可以預言,某種特定的定製代理邏輯將可以與定製遠程 JMX 管理器組件良好地協作,以提供更高級別的網路管理功能。

連接器和協議適配器

代理不與分布式服務、NMS 或其它管理應用程序直接通信。而是使用連接器和協議適配器。這種體系結構與 J2EE 連接器體系結構(J2EE Connector Architecture)是一致的(請參閱 參考資料)。協議適配器是一種軟體組件,它通過標准化協議(如 HTTP 和 SNMP)提供對代理管理的資源的訪問。

連 接器是一種專用軟體組件,它提供了到代理和/或該代理上的受管資源的遠程介面(通常使用諸如 CORBA 或 RMI 這樣的遠程過程調用技術來完成 ― 為了安全性通常通過 SSL)。當代理有多個活動的連接器和協議時,可以通過多個異構的應用程序或 NMS 同步地訪問受管資源。可以用協議適配器來提供對現有的和已建立的 NMS 的向後兼容性。例如,我們可以為支持這個標準的 NMS 創建 通用信息模型/基於 Web 的企業管理(CIM/WEBM)適配器,或者可以創建 電信管理網路(TMN)協議適配器來啟用由 JMX 代理管理的電信資源上的 操作、管理和維護(OAM)。JMX 連接器和協議適配器的精確規范屬於正在同時開發的規范的范疇(請參閱 參考資料)。

>>>> 安全性

到目前為止都還不錯。現在是面對被甩在一邊的重要問題 —— 安全性 —— 的時候了。不如果不想讓誰的應用程序代碼訪問和修改虛擬機,該怎麼辦?有什麼選項可用么? 可以設置一些系統屬性,來控制訪問級別和虛擬機數據從 JMX 代理向管理客戶機傳遞虛擬機數據的方式。這些屬性分成兩類:口令認證 和安全套接字層(SSL)。

使用命令行選項

為了讓 5.0 兼容的虛擬機可以被監視和管理,需要用以下命令行選項設置平台 JMX 代理的埠號:

-Dcom.sun.management.jmxremote.port=<number>

如果不介意誰通過這個埠訪問虛擬機,也可以添加以下兩個選項,關閉口令認證和 SSL 加密(這兩項默認都是開啟的):

-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false

在開發 java.lang.management 客戶機代碼,而且想方便地監視另一台虛擬機時,一起使用這三個選項會很方便。在生產環境中,則需要設置口令控制或 SSL(或者兩者都要設置)。

口令認證

在JDK 的 jre/lib/management 目錄中,可以找到一個叫做 jmxremote.password.template 的文件。這個文件定義了兩個角色的用戶名和口令。第一個是監視 角色,允許訪問只讀的管理函數;第二個是控制 角色,允許訪問讀寫函數。取決於需要的訪問級別,客戶可以用 monitorRole 或 controlRole 用戶名進行認證。為了確保只有認證的用戶才能訪問,需要做以下工作:

把 jmxremote.password.template 的內容拷貝到叫做 jmxremote.password 的文件中,並取消掉文件末尾定義用戶名和口令部分的注釋,根據需要修改口令。
修改 jmxremote.password 的許可,只讓所有者能夠讀取和修改它。(在 UNIX 和 UNIX 類的系統上,把許可設置成 600。在 Microsoft Windows 上,請按照 「How to secure a password file on Microsoft Windows systems」 一文中的說明操作,可以在 參考資料 中找到這篇文章的鏈接。)
在啟動虛擬機時,用以下命令行選項指定要使用的口令文件的位置:
-Dcom.sun.management.jmxremote.password.file=<file-path>

從管理客戶的角度來說,需要提供正確的用戶名/口令組合來訪問開啟了認證的虛擬機。如果客戶是 JConsole,這很簡單:在初始的 Connection 選項卡中提供了用戶名和口令欄位

❿ 如何為java應用程序啟用遠程jmx監控

首先使用ps -ef 確認你要監控的weblgoic,修改setDomain.sh文件 添加如下內容:
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.port=9999"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.ssl=false "
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.pwd.file=/opt/bea/jrockit90_150_06/jre/lib/management/jmxremote.password"
# JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.authenticate=false"
export JAVA_OPTIONS
關於jconsole的訪問密碼,可在該實例所使用的$JRE_HOME/lib/management/下配置,很重要的兩個文件是
jmxremote.password.template #配置訪問用戶名與密碼
jmxremote.access #增加該用戶訪問許可權,

這樣配置就好了

熱點內容
三維數組存儲 發布:2025-05-10 23:14:35 瀏覽:979
普通電腦架設成雲伺服器 發布:2025-05-10 23:13:56 瀏覽:807
為什麼找回密碼總是說驗證碼 發布:2025-05-10 23:04:07 瀏覽:183
森林落地窗解壓的視頻 發布:2025-05-10 23:03:22 瀏覽:630
華為路由器建伺服器地址 發布:2025-05-10 23:03:04 瀏覽:179
安卓型號如何隱藏wifi 發布:2025-05-10 22:33:26 瀏覽:581
sqlserver位置 發布:2025-05-10 22:27:31 瀏覽:718
pythonsae 發布:2025-05-10 21:59:30 瀏覽:965
rdp演算法 發布:2025-05-10 21:46:40 瀏覽:919
c語言求素數的方法 發布:2025-05-10 21:46:39 瀏覽:765