美好的一天,
我正在尝试使用JConsole连接到远程Wildfly 8最终服务器。这无效:连接失败。经过多次尝试和失败后,我试图使其至少与我的" Localhost" JBoss连接,但即使那行不通。没有错误,它根本不连接并说"连接失败"。
详细信息:
- Wildfly 8最终服务器
- 使用wildfly_installation/bin/jconsole.bat.bat 的jconsole
- 创建的管理用户。在有或没有用户名/密码的情况下尝试。
- 独立的xml是原始的
- 我插入jconsole的URL连接到IS:服务:JMX:emeroting-jmx://localhost:9999
- Wildfly/Jboss没有任何部署的东西,没有战争/耳朵。
- Java版本是1.7版本51。
- java_home指向系统上唯一安装的Java 1.7。
- 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`
先决条件(您很可能已经配置了此):
- 这是您在
c:Program FilesJavajdk1.7.0_67
中的工作站上安装了JDK - 这假设您已将Wildfly安装在
c:wildfly-8.1.0.Final
的工作站上 - 在服务器上,您需要在
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>
- 您需要在服务器上具有管理用户,您可以使用
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