Solr 的 JMX
Java 管理扩展 (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 服务器的位置或地址。
可以通过传递系统参数 -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) 文件中的 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 服务)并非易事。 |