Spring 为 JMX 实现的配置允许你配置 MBean 注册的"域"和 HTML 适配器的监听端口。默认配置条目如下:
<!-- JMX server --> <!-- JMX server --> <bean id="jmxFactory" class="org.red5.server.jmx.JMXFactory"> <property name="domain" value="org.red5.server"/> </bean> <bean id="jmxAgent" class="org.red5.server.jmx.JMXAgent" init-method="init"> <!-- The RMI adapter allows remote connections to the MBeanServer --> <property name="enableRmiAdapter" value="true"/> <property name="rmiAdapterPort" value="${jmx.rmi.port.registry}"/> <property name="rmiAdapterRemotePort" value="${jmx.rmi.port.remoteobjects}"/> <property name="rmiAdapterHost" value="${jmx.rmi.host}"/> <!-- SSL To use jmx with ssl you must also supply the location of the keystore and its password when starting the server with the following JVM options: -Djavax.net.ssl.keyStore=keystore -Djavax.net.ssl.keyStorePassword=password --> <property name="enableSsl" value="${jmx.rmi.ssl}"/> <!-- Starts a registry if it doesnt exist --> <property name="startRegistry" value="true"/> <!-- Authentication --> <property name="remoteAccessProperties" value="${red5.config_root}/access.properties"/> <property name="remotePasswordProperties" value="${red5.config_root}/password.properties"/> <property name="remoteSSLKeystore" value="${red5.config_root}/keystore.jmx"/> <property name="remoteSSLKeystorePass" value="${rtmps.keystorepass}"/> <!-- The HTML adapter allows connections to the MBeanServer via a web browser --> <property name="enableHtmlAdapter" value="${jmx.http}"/> <property name="htmlAdapterPort" value="${jmx.http.port}"/> <!-- Mina offers its own Mbeans so you may integrate them here --> <property name="enableMinaMonitor" value="true"/> </bean>
关于 jmxAgent bean 的配置设置定位在 red5.properties 文件里:
# JMX jmx.rmi.port.registry=9999 jmx.rmi.port.remoteobjects= jmx.rmi.host=0.0.0.0 jmx.rmi.ssl=false jmx.http=false jmx.http.port=80821. jmx.rmi.port.registry - RMI 注册的端口。RMI 适配器可能只会在 RMI 注册运行的时候用到。RMI 注册在默认情况下是启用的。
RMI 认证默认情况下是配置好并启用的。这是为了确保来自匿名客户端的 RMI 连接。bean 的属性 remoteAccessProperties 和 remotePasswordProperties 设置 JMX 访问和密码的配置文件。access.properties 和 password.properties 配置文件定义 JMX 用户权限和明文密码。access.properties 包含一个用户和组权限配置,access.properties -
red5user readwrite
red5user 是 JMX 用户名,readwrite 是通常默认设置的权限。 password.properties 包含有 JMX 用户和密码,password.properties -
red5user changeme
当 RMI 启用 SSL时,bean 属性 remoteSSLKeystore 和 remoteSSLKeystorePass 需要加载 SSL 密钥和 SSL 请求的 keystore 密码。默认加载的 keystore 是 conf/keystore.jmx 文件,它也可以共享 keystore 给 RTMPS 连接。Java 属性 javax.net.ssl.keyStore 和 javax.net.ssl.keyStorePassword 是透明设置的。使用以下命令生成连接客户端和服务器的 keystore 和 truststore:
ant truststore这将生成一个 keystore.jmx、red5server.cer 和 truststore.jmx 证书。
jConsole 是一个 JRE(1.5 以后) 附带的实用工具,通过它可以管理本地和远程的 JMX 实现。要启用它的话必须为 Java 的启动加上以下 VM 参数:
-Dcom.sun.management.jmxremote
设置好以上参数并初始化应用之后,你就可以在命令行启动 jConsole 了:
jconsole
远程连接 jconsole / JMX 客户端的命令是:
jconsole service:jmx:rmi://host:port/jndi/rmi://host:port/red5
设置 truststore 属性的命令是:
jconsole -J-Djavax.net.ssl.trustStore=truststore.jmx \ -J-Djavax.net.ssl.trustStorePassword=password \ service:jmx:rmi://host:port/jndi/rmi://host:port/red5