SolrでのJMX
Java Management Extensions (JMX)は、複雑なシステムが、システムとツールがお互いを事前に知らなくてもツールによって制御できるようにするテクノロジーです。本質的に、これは複雑なシステムを表示および操作できる標準インターフェースです。
Solrは、Javaの世界の他の優れた市民と同様に、JMXインターフェースを介して制御できます。有効にすると、jconsoleなどのJMXクライアントを使用して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サーバーの構成
Solrの7.0より前のバージョンでは、JMXサポートをsolrconfig.xml
で定義していました。これは、上記で定義したメトリクスレポーター構成に変更されました。レポーター構成のパラメータにより、既存のMBeanサーバーの場所またはアドレスを定義できます。
システムパラメータ-Dcom.sun.management.jmxremote
を渡すことで、Solrの起動時にMBeanサーバーを起動できます。MBeanサーバーの起動と制御に使用できる追加設定については、Oracleのドキュメント(http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html)を参照してください。
Solr JMXへのリモート接続の構成
JConsoleやVisualVMなどのJMX対応のJavaプロファイリングツールをリモートのSolrサーバーに接続する必要がある場合は、Solrサーバーの起動時にリモートJMXアクセスを有効にする必要があります。solr.in.sh
またはsolr.in.cmd
(Windowsの場合)ファイルにあるENABLE_REMOTE_JMX_OPTS
プロパティをtrue
に変更するだけです。また、JMX RMIコネクターがバインドするポート(例:18983)を選択する必要があります。例えば、Solrのincludeスクリプトで
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アクセスの有効化は推奨しませんが、本番環境に移行する前のパフォーマンスとユーザー受け入れテストの実行時に役立つことがあります。
これらの設定の詳細については、以下を参照してください: http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html。
NAT(例:AmazonのEC2サービス)の背後で実行されているマシンへのJMX接続は簡単な作業ではありません。 |