野蝇 8 决赛 - jconsole 无法远程连接



美好的一天,

我正在尝试使用JConsole连接到远程Wildfly 8最终服务器。这无效:连接失败。经过多次尝试和失败后,我试图使其至少与我的" Localhost" JBoss连接,但即使那行不通。没有错误,它根本不连接并说"连接失败"。

详细信息:

  1. Wildfly 8最终服务器
  2. 使用wildfly_installation/bin/jconsole.bat.bat
  3. 的jconsole
  4. 创建的管理用户。在有或没有用户名/密码的情况下尝试。
  5. 独立的xml是原始的
  6. 我插入jconsole的URL连接到IS:服务:JMX:emeroting-jmx://localhost:9999
  7. Wildfly/Jboss没有任何部署的东西,没有战争/耳朵。
  8. Java版本是1.7版本51。
  9. java_home指向系统上唯一安装的Java 1.7。
  10. JConsole可以连接到本地Java进程并起作用,但不能连接。

基本上,这是一个全新的Wildfly 8决赛的安装,并创建了管理用户,JConsole并未与之连接。

我尝试了什么:我已经阅读了许多有关JConsole和Jboss遇到麻烦的帖子,为7.x。我已经尝试了这些线程的建议,但没有任何作用。另外,Wildfly 8似乎具有不同的JMX版本(JBoss 7.x中的1.3 vs 1.1),所以我认为这就是为什么JBOSS 7.x的独立建议不适用于Wildfly 8 Final。

Java任务控制JMX控制台和飞行记录器Profiler也在Wildfly上工作。

正如已经注意到的正确的JMX连接字符串是:

服务:JMX:http-remoting-jmx://{insert Server ip ip}:9990

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

至于飞行记录器,应将其添加到standalone.conf(.bat)中的服务器运行时配置中:

java_opts =%java_opts%-XX: UnlockmercialFeatures -XX: Flightrecorder -XX:FlightrecorderOptions = Defaultrecording = true

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

-xbootClassPath/a:c: program文件 java jdk1.7.0_67 lib lib jconsole.jar; c: java java jdk1.7.7.0_67 lib lib lib lib tools.jar;-8.1.0.final bin client jboss-cli-client.jar`

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

  1. 这是您在c:Program FilesJavajdk1.7.0_67中的工作站上安装了JDK
  2. 这假设您已将Wildfly安装在c:wildfly-8.1.0.Final
  3. 的工作站上
  4. 在服务器上,您需要在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> 
  1. 您需要在服务器上具有管理用户,您可以使用http://{insert server ip here}:9990添加。

用Web浏览器测试此连接到jboss-cli-client.jar,该浏览器将打开服务器的Web UI控制台。

最好的问候!

好吧,把它弄清楚了。本机管理端口(9999)在Wildfly 8的最终版本中删除了。现在只有1个管理端口(9990),并且它在其中有多个以前的端口,包括JMX。它仍然可以在Wildfly 8的发行候选人中找到,因此在线提供的所有在线说明和配置的所有混乱。

因此,关键是指定正确的协议,该协议现在不是远程JMX,而是HTTP-Remoting-JMX。连接到服务器的URL必须像这样:

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

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

最后,无需与standalone.xml配置混乱。所有配置调整以使其在JBOSS 7.x上工作,因此无法使用。这一切都可以使用适当的协议和端口号开箱即用。只需确保在ManagementRealm中创建JBOSS用户即可。

这是Wildfly中的一个错误,该错误最近已修复,将是8.0.1版本的一部分。

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

您必须在$JAVA_HOME class Path中包含jconsole

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

/usr/lib/jvm/java-8-oracle/替换为$WILDFLY_HOME/opt/wildfly/之类的东西或add-user.sh或在任何地方取消包装。

,然后URL的格式为:

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

还用使用CC_17

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

下面是如何启用旧的本机JMX 接口,从Wildfly 8默认配置中删除,该配置与JMX工具兼容。

当新的HTTP接口不是选项时,这是必需的,例如与 bamboo的jboss 7附加的遗留工具集成。

wildfly 10 测试,它应该与 Wildfly 8 Wildfly 9 一起使用。

由于插件不支持HTTP管理接口,因此,为了使其正常工作,我们需要启用本机JMX接口,该接口用于在端口 9999 上运行。

这可以通过在"管理界面"部分下添加本机接口元素来完成:

    <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}"/>
    ...

如果在域模式中,要使用远程端点,则将使用-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

相关内容

  • 没有找到相关文章

最新更新