在Solr中使用JMX

2018-12-22 13:54 更新

Java 管理擴展(Java Management Extensions,JMX)是一種技術,它使復雜的系統(tǒng)能夠被工具所控制,而系統(tǒng)和工具之間沒有任何相互的了解。從本質(zhì)上講,它是一個標準的接口,通過它可以查看和操縱復雜的系統(tǒng)。

Solr和Java組成中的其他優(yōu)秀成員一樣,可以通過JMX接口進行控制。一旦啟用,您可以使用JMX客戶端(如jconsole)與Solr進行連接。

如果您不熟悉JMX,您可能會發(fā)現(xiàn)以下概述非常有用:http : //docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html。

配置JMX

JMX支持通過定義度量reporter進行配置,如“ JMX Reporter”一節(jié)中所述。

如果您在Solr的JVM中運行現(xiàn)有的MBean服務器,或者如果使用系統(tǒng)屬性-Dcom.sun.management.jmxremote啟動Solr,即使您沒有在solr.xml中明確定義reporter,Solr也會在啟動時自動識別它的位置。您還可以使用reporter定義中定義的參數(shù)定義MBean服務器的位置。

配置MBean服務器

7.0版本之前的Solr定義了在solrconfig.xml中支持JMX。這已被更改為上面定義的標準reporter配置。reporter配置的參數(shù)允許定義現(xiàn)有MBean服務器的位置或地址。

通過傳遞系統(tǒng)參數(shù)-Dcom.sun.management.jmxremote,可以在Solr啟動時啟動MBean服務器。有關可用于啟動和控制MBean服務器的其他設置,請參閱Oracle文檔:http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html。

配置到Solr JMX的遠程連接

如果您需要將啟用JMX的Java分析工具(如JConsole或VisualVM)附加到遠程Solr服務器,則需要在啟動Solr服務器時啟用遠程JMX訪問。只需將 solr.in.sh 或 solr.in.cmd(Windows系統(tǒng)中)文件中的 ENABLE_REMOTE_JMX_OPTS 屬性更改為 true。您還需要為JMX RMI連接器選擇要綁定的端口,例如18983。例如,如果您的Solr包含如下的腳本集:

ENABLE_REMOTE_JMX_OPTS=true
RMI_PORT=18983

JMX RMI連接器將允許Java分析工具連接到端口18983。啟用時,以下屬性在啟動Solr時傳遞給JVM:

-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.port=18983 \
-Dcom.sun.management.jmxremote.rmi.port=18983

我們不建議在生產(chǎn)環(huán)境中啟用遠程JMX訪問,但在進入生產(chǎn)前執(zhí)行性能和用戶驗收測試時, 它有時可能會有所幫助。

有關這些設置的更多信息,請參閱:http : //docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html。

注意:將JMX連接到運行在NAT之后的機器(例如,Amazon的EC2服務)并不是一件簡單的事情。該java.rmi.server.hostname系統(tǒng)屬性可能會有幫助,但是在服務器上運行jconsole 并使用遠程桌面通常是最簡單的解決方案。請參閱:http://web.archive.org/web/20130525022506/http://jmsbrdy.com/monitoring-java-applications-running-on-ec2-i
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號