《Red5 用户参考手册》之十四:Red5 核心技术第七章 管理
JMX 类
Red5 实现包含以下类和一些其他的 MBean:
org.red5.server.jmx.JMXFactory - 提供对平台 MBeanServer 的访问,以及注册、注销和新的 MBean 实例的创建。
org.red5.server.jmx.JMXAgent - 提供 HTML 适配器以及 MBean 的注册。
org.red5.server.jmx.JMXUtil - 使用 ObjectName 或 MBean 实例的帮助方法。
Spring 配置
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=8082
1. jmx.rmi.port.registry - RMI 注册的端口。RMI 适配器可能只会在 RMI 注册运行的时候用到。RMI 注册在默认情况下是启用的。
2. jmx.rmi.port.remoteobjects - RMI 远程对象的出口端口指定访问通过防火墙。默认端口产生于 RMI 栈。
3. jmx.rmi.host - 为 RMI 远程访问指定主机绑定到常用的公共地址。
4. jmx.rmi.ssl - 启用RMI/ JMX 的 SSL。SSL 默认是关闭的。
5. jmx.http - 启用 HTTP RMI 适配器。HTML 适配器默认情况下是禁用的,但它允许通过 web 浏览器轻松对 MBean 进行管理。
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
red5user 是 JMX 用户名而 changeme 是 JMX 密码。
建议改变默认登录,以及启用 SSL 配置为登录明文。
JMX / RMI / SSL
当 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 / JMX 客户端
jConsole 是一个 JRE(1.5 以后) 附带的实用工具,通过它可以管理本地和远程的 JMX 实现。要启用它的话必须为 Java 的启动加上以下 VM 参数:
-Dcom.sun.management.jmxremote
本地管理
设置好以上参数并初始化应用之后,你就可以在命令行启动 jConsole 了:
jconsole
一个 Swing 应用会出现,选择要管理的实现(代理),本地管理的话只需选择 org.red5.server.Standalone。
远程管理
远程连接 jconsole / JMX 客户端的命令是:
jconsole service:jmx:rmi://host:port/jndi/rmi://host:port/red5
SSL 远程管理
使用 jconsole / JMX 远程 ssl 连接的客户端需要预先加载生成的 truststore 证书。
设置 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
链接
http://www.onjava.com/pub/a/onjava/2004/09/29/tigerjmx.html?page=1
http://java.sun.com/developer/JDCTechTips/2005/tt0315.html#2
原文链接: http://trac.red5.org/wiki/Documentation/UsersReferenceManual/Red5CoreTechnologies/07-Management。