美好的一天,人们,
我正在尝试使用jconsole连接到远程Wildfly 8 Final服务器。这不起作用:连接失败。经过多次尝试和失败后,我试图让它至少连接到我的'localhost'jboss,但即使这样也行不通。没有错误,它只是没有连接并说“连接失败”。
详细说明:
基本上它是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。
答案 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`
先决条件(您很可能已经配置了这个):
c:\Program Files\Java\jdk1.7.0_67\
c:\wildfly-8.1.0.Final
bind.address
中拥有正确的<any-address>
配置(或standalone.xml
):
<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
。
祝你好运!
答案 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