我希望启用 JMX,以允许 datadog 监视我们的 java JBoss Wildfly 系统,但不断遇到运行时错误
我已经设置了standalone.xml
<subsystem xmlns="urn:jboss:domain:jmx:1.3">
<expose-resolved-model/>
<expose-expression-model/>
<remoting-connector use-management-endpoint="true"/>
</subsystem>
还有
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
以及
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
然后在我的startup.sh中添加
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
但这给了我
java.lang.IllegalStateException: The LogManager was not properly installed (you must set the "java.util.logging.manager" system property to "org.jboss.logmanage r.LogManager")
如果我在这里和谷歌上查看,这似乎相当常见,但根据 Wildfly 的版本,似乎有不同的解决方案。
我想我需要做一些类似的事情 在standalone.conf的开头设置
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.logmanager"
然后
JBOSS_HOME="/opt/wildfly"
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-2.1.11.Final.jar -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/jboss/log4j/logmanager/main/log4j-jboss-logmanager-1.2.0.Final.jar"
最后。
但我仍然收到错误“无法加载 Logmanager“org.jboss.logmanager.LogManager””
如有任何建议,我们将不胜感激。
最佳答案
当我将 Wildfly 服务器版本从 10.1 升级到 24.0.0 时,我遇到了同样的问题,并使用以下更改解决了该问题。
需要在 standalone.conf
文件末尾添加以下 JAVA_OPTS
更改
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Xbootclasspath/a:$JBOSS_HOME/modules/system/layers/base/org/wildfly/common/main/wildfly-common-1.5.4.Final.jar -Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager -Xbootclasspath/a:$JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-2.1.18.Final.jar -Xbootclasspath/a:$JBOSS_HOME/modules/system/layers/base/org/jboss/log4j/logmanager/main/log4j-jboss-logmanager-1.2.0.Final.jar"
# Enable jmx remote management
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=4447 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dsun.util.logging.disableCallerCheck=true -Djava.rmi.server.hostname=localhost -Dcom.sun.management.jmxremote.local.only=false"
注意: wildfly-common-.jar、jboss-logmanager-.jar、log4j-jboss-logmanager-.jar 依赖项应使用 -Xbootclasspath/a
关于java - Wildfly 17 在同一服务器上启用 JMX 远程会导致日志管理器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62123685/