Wildfly 8 Final - jconsole无法远程连接

时间:2014-03-06 00:54:43

标签: jconsole wildfly

美好的一天,人们,

我正在尝试使用jconsole连接到远程Wildfly 8 Final服务器。这不起作用:连接失败。经过多次尝试和失败后,我试图让它至少连接到我的'localhost'jboss,但即使这样也行不通。没有错误,它只是没有连接并说“连接失败”。

详细说明:

  1. Wildfly 8 Final server
  2. 使用来自wildfly_installation / bin / jconsole.bat
  3. 的jconsole
  4. 管理用户已创建。尝试使用和不使用用户名/密码。
  5. standalone.xml是原始版本,随Wildfly 8 Final一起提供,无需更改
  6. 我插入jconsole连接的url是:service:jmx:remoting-jmx:// localhost:9999
  7. Wildfly / jboss没有部署任何内容,没有WAR / EAR。
  8. Java版本是1.7版本51.最新的写作时刻。
  9. JAVA_HOME指向系统上安装的唯一java 1.7。
  10. JConsole可以连接到本地java进程并且可以工作,但不能远程连接。
  11. 基本上它是Wildfly 8 Final的全新安装,管理用户已创建,jconsole无法远程连接到它。

    我还尝试了什么:我已经阅读了许多有关jconsole和Jboss AS 7.x的人的帖子。我已经尝试过这些线程的建议,但都没有奏效。另外,Wildfly 8似乎有不同的JMX版本(Jboss 7.x中的1.3 vs 1.1),所以我认为这就是为什么Jboss 7.x的standalone.xml建议不能用于Wildfly 8 Final。

5 个答案:

答案 0 :(得分:8)

Java Mission Control JMX控制台和Flight Recorder探查器也适用于WildFly。

如前所述,正确的JMX连接字符串是:

  

service:jmx:http-remoting-jmx:// {insert server ip here}:9990

它需要管理用户(底部的详细信息)。

对于Flight Recorder,应将这些添加到standalone.conf(.bat)中的服务器运行时配置中:

  

JAVA_OPTS =%JAVA_OPTS%-XX:+ UnlockCommercialFeatures -XX:+ FlightRecorder -XX:FlightRecorderOptions = defaultrecording = true

在要运行Java Mission Control的工作站上,需要调整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. 这假定您已在c:\Program Files\Java\jdk1.7.0_67\
  2. 的工作站上安装了JDK
  3. 这假设您已在c:\wildfly-8.1.0.Final
  4. 的工作站上安装了WildFly
  5. 在服务器上,您需要在bind.address中拥有正确的<any-address>配置(或standalone.xml):
  6. <interfaces>
        <interface name="management">
            <any-address/>
        </interface>
        <interface name="public">
            <any-address/>
        </interface>
        <interface name="unsecure">
            <any-address/>
        </interface>
    </interfaces> 
    
    1. 您需要在服务器上拥有管理用户,您可以使用\bin\add-user.bat(.sh)添加该用户。
    2. 要测试此功能,请使用可打开服务器的网络用户界面控制台的网络浏览器连接到http://{insert server ip here}:9990

      祝你好运!

答案 1 :(得分:6)

好吧,弄清楚了。在Wildfly 8的最终版本中删除了本机管理端口(9999)。现在只有一个管理端口(9990),它有多个以前的多路复用端口,包括JMX。它仍然可以在Wildfly 8的候选版本中找到,因此对在线其他地方的在线说明和配置感到困惑。

所以关键是要指定正确的协议,这不是现在的remoting-jmx,而是http-remoting-jmx。连接到服务器的URL必须如下所示:

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

(这与服务:jmx:remoting-jmx://:9999在以前的jboss / wildfly服务器中)

最后,不需要乱用standalone.xml配置。所有配置调整使其适用于Jboss 7.x将无法正常工作。它开箱即用,具有适当的协议和端口号。只需确保在ManagementRealm中创建一个jboss用户。

答案 2 :(得分:2)

这是最近修复的WildFly中的一个错误,将成为8.0.1版本的一部分。

有关详细信息,请参阅jira

答案 3 :(得分:2)

您必须在jboss-cli-client.jar类路径中包含jconsole

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/,或将其解压缩的任何地方。

然后网址采用以下格式:

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

同时使用add-user.sh

配置的凭据填写用户名和密码

答案 4 :(得分:1)

以下是如何启用旧的原生JMX 界面,从WildFly 8默认配置中删除,该配置向后兼容JMX工具。

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

使用 WildFly 10 进行测试,它也适用于 WildFly 8 WildFly 9

由于插件不支持HTTP管理界面,为了使其正常工作,我们需要启用原生JMX界面,它曾经在端口 9999上运行

这可以通过在管理接口部分下添加native-interface元素来完成:

    <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