与 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 服务器。请参阅 Oracle 文档以了解在 http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html 启动和控制 MBean 服务器时可用的其他设置。
配置与 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 访问,但在投入生产之前进行性能和用户验收测试时,它有时会很有用。
在运行 NAT(例如 Amazon 的 EC2 服务)的机器中建立 JMX 连接并非易事。 |