java - Wildfly 17 在同一服务器上启用 JMX 远程会导致日志管理器错误

标签 java jboss wildfly fix-protocol datadog

我希望启用 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/

相关文章:

java - 使用内存分析器在 Java heapdump 中查找打开的文件

java - 如何通过终端将文本文件输入到java程序中(就像在C++中那样)?

performance - spring mvc + wildfly + postgresql 性能调优

logging - 使用 log4j 进行 Keycloak 日志记录以使用自定义滚动附加程序

jboss - Wildfly:如何在 IO 子系统中动态配置工作线程

java - 想要通过小程序定期发送客户端的屏幕图像。 java

java - Docker:Springboot容器无法连接到PostgreSql容器

java - Spring 启动: How to get running port of application deployed on JBoss (or any app server)?

java - 分析加载期间不断增长的堆

Hibernate二级缓存更新