2014-03-06 40 views
6

好天,人,Wildfly 1/8决赛 - 的JConsole无法连接远程

我想使用JConsole中连接到远程Wildfly 1/8决赛服务器。这不起作用:连接失败。经过多次尝试和失败后,我试图让它至少连接到我的'本地主机'jboss,但即使这样也行不通。没有错误,它只是不连接,并说“连接失败”。

详情:

  1. Wildfly 1/8决赛服务器
  2. 运用wildfly_installation /斌/ jconsole.bat创建
  3. 管理用户JConsole的。尝试使用和不使用用户名/密码。
  4. 的standalone.xml是原单,随Wildfly 1/8决赛没有变化
  5. 我插上JConsole中的URL连接到的是:服务:JMX:远程处理,JMX://本地主机:9999
  6. Wildfly/jboss没有任何部署,没有WARs/EARs。
  7. Java版本是1.7版本51.最新的写作时刻。
  8. JAVA_HOME指向安装在系统上的唯一java 1.7。
  9. JConsole可以连接到本地java进程并工作,但不能远程连接。

基本上它是一个全新安装的Wildfly 8 Final,管理用户创建并且jconsole不能远程连接到它。

我还试过了什么:我读过很多关于jconsole和Jboss AS 7.x的麻烦的帖子。我尝试了这些线程的建议,但都没有成功。另外它似乎Wildfly 8有不同的JMX版本(Jboss 7.x中1.3和1.1),所以我认为这就是为什么来自Jboss 7.x的standalone.xml建议不适用于Wildfly 8 Final。

回答

6

好吧,弄明白了。本地管理端口(9999)在最终版本的Wildfly 8中被删除。现在只有1个管理端口(9990),并且它有多个复用在其上的端口,包括JMX。它仍然在Wildfly 8的候选版本中可用,因此所有关于在线指令的混淆以及在线其他地方都可用。

所以关键是指定适当的协议,这不是远程处理-jmx,而是http-remoting-jmx。连接到服务器的URL必须是这样的:

service:jmx:http-remoting-jmx://<server_host_or_ip>:9990 

(这是与服务:JMX:远程-JMX://:9999在以前的JBoss/wildfly服务器)

最后,没有必要弄乱standalone.xml配置。所有的配置调整,使其在Jboss 7.x上工作将无法正常工作。这一切都在适当的协议和端口号的情况下开箱即用。只要确保在ManagementRealm中创建一个jboss用户。

2

这是最近修复的WildFly中的一个bug,它将成为8.0.1发行版的一部分。

有关更多详细信息,请参见jira

7

Java任务控制JMX控制台和Flight Recorder分析器也在WildFly上工作。

如前所述适当的JMX连接字符串:

服务:JMX:HTTP的远程-JMX:// {插入服务器的IP这里}:9990

它需要管理用户(详见底部)。

对于飞行记录器,这些应该被添加到服务器运行时配置在standalone.conf(.bat)

JAVA_OPTS =%JAVA_OPTS%-XX:+ UnlockCommercialFeatures -XX:+ FlightRecorder -XX:FlightRecorderOptions = defaultrecording =真正

在要运行Java任务控制需要调整的类路径中jmc.ini(位于JDK的bin目录中)的工作站:

-Xbootclasspath/a:c:\ Program Files \ Java \ jdk1.7.0_67 \ lib \ jconsole.jar; c:\ Program Files \ Java \ jdk1.7.0_67 \ lib \ tools.jar; c:\ wildfly -8.1.0.Final \ BIN \客户端\ jboss的-CLI-client.jar`

先决条件(你很可能已经配置了此):

  1. 这个假定您已经在工作站上安装JDK在c:\Program Files\Java\jdk1.7.0_67\
  2. 这里假定你已经在工作站上安装了WildFly c:\wildfly-8.1.0.Final
  3. 在服务器上你必须standalone.xml适当bind.address配置(或<any-address>):

<interfaces> 
    <interface name="management"> 
     <any-address/> 
    </interface> 
    <interface name="public"> 
     <any-address/> 
    </interface> 
    <interface name="unsecure"> 
     <any-address/> 
    </interface> 
</interfaces> 
  • 你必须在一个管理用户服务器,您可以使用\bin\add-user.bat(.sh)添加该服务器。
  • 若要测试此连接到http://{insert server ip here}:9990与Web浏览器将打开服务器的Web UI控制台。

    此致敬礼!

    +0

    感谢解释为此到终端。对于那些在客户端使用OSX的人; 'jmc.ini'位于'/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/lib/missioncontrol/Java Mission Control.app/Contents/MacOS',你只需要添加'-Xbootclasspath/a:/ path/to/wildfly-8.2.0.Final/bin/client/jboss-cli-client.jar'到最后。 – Paaske

    +0

    连接到作为域名运行的Wildfly是否有任何区别?我可以使用jconsole通过jmx连接到服务器,但是我无法连接到Java Mission Control。 – Adam6806

    2

    你必须包括jboss-cli-client.jarjconsole类路径:

    jconsole -J-Djava.class.path=$JAVA_HOME/lib/jconsole.jar:$WILDFLY_HOME/bin/client/jboss-cli-client.jar 
    

    更换$JAVA_HOME喜欢的东西/usr/lib/jvm/java-8-oracle/$WILDFLY_HOME/opt/wildfly/或任何你拥有它解压缩。

    然后URL是采用以下格式:

    service:jmx:remote+http://${host}:9990 
    

    与配置的凭据的用户名和密码,同时填充使用add-user.sh

    1

    下面是如何使老本地JMX接口,从WildFly 8默认配置中删除,这是向后兼容JMX工具。

    当新的HTTP接口不是一个选项时,这是必需的,例如,与传统工具如Bamboo的JBoss 7插件集成。

    测试WildFly 10,它应与WildFly 8WildFly 9正常工作。

    由于插件不支持HTTP管理界面,使其工作,我们需要启用本地JMX接口,它用来在端口运行。

    <management-interfaces> 
         <native-interface security-realm="ManagementRealm"> 
          <socket-binding native="management-native"/> 
         </native-interface> 
         <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true"> 
          <socket-binding http="management-http"/> 
         </http-interface> 
        </management-interfaces> 
    

    并限定相应的插座结合

    <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> 
        <socket-binding name="management-native" interface="management" 
            port="${jboss.management.native.port:9999}"/> 
        ... 
    

    如果域模式:

    这可以通过下管理接口部将所述本机接口元件来完成,要使用远程端点,请将use-management-endpoint设置为false。

    <subsystem xmlns="urn:jboss:domain:jmx:1.3"> 
         <expose-resolved-model/> 
         <expose-expression-model/> 
         <remoting-connector use-management-endpoint="false"/> 
        </subsystem> 
    

    希望它可以帮助任何人......

    参考:

    https://docs.jboss.org/author/display/WFLY8/Admin+Guide#AdminGuide-NativeManagementEndpoint

    +0

    谢谢!在这种情况下,我们应该在JConsole中使用哪个URL? – sm4rk0