Solr 的 JMX
Java Management Extensions (JMX) 是一種技術,可讓複雜的系統由工具控制,而無需系統和工具之間事先知道彼此的資訊。 本質上,它是一個標準介面,透過此介面可以檢視和操作複雜的系統。
與 Java 世界中的任何其他好公民一樣,Solr 可以透過 JMX 介面進行控制。 啟用後,您可以使用 JMX 用戶端 (例如 jconsole) 連線至 Solr。
如果您不熟悉 JMX,可能會發現以下概觀很有用:http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html。
設定 JMX
JMX 支援是透過定義指標報告器來設定,如 JMX 報告器 章節所述。
如果您在 Solr 的 JVM 中執行現有的 MBean 伺服器,或者如果您使用系統屬性 -Dcom.sun.management.jmxremote
啟動 Solr,即使您未在 solr.xml
中明確定義報告器,Solr 也會在啟動時自動識別其位置。 您也可以使用報告器定義中定義的參數來定義 MBean 伺服器的位置。
設定 MBean 伺服器
7.0 之前的 Solr 版本在 solrconfig.xml
中定義 JMX 支援。 這已變更為上述定義的指標報告器設定。 報告器設定的參數允許定義現有 MBean 伺服器的位置或位址。
MBean 伺服器可以在 Solr 啟動時透過傳遞系統參數 -Dcom.sun.management.jmxremote
來啟動。 請參閱 Oracle 文件,瞭解可啟動和控制 MBean 伺服器的其他設定,網址為 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) 檔案中的 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
我們不建議在生產環境中啟用遠端 JMX 存取,但在進入生產環境之前進行效能和使用者接受度測試時,有時會很有用。
將 JMX 連線連入 NAT 後方的機器(例如,Amazon 的 EC2 服務)並非易事。 |