JBoss Standalone模式如何接入APM?
APM支持JBoss服务器,JBoss在使用Java探针时,需要特殊的设置。
下面举例对JBoss 6.2.0、JBoss 8.1.0 和JBoss 12.0.0的Standalone模式接入APM进行说明,其他JBoss的版本类似操作。
- JBoss 6.2.0:
将standalone模式下的eap-6.2.0.Final/bin/standalone.conf文件修改为
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,com.manageengine,org.jboss.logmanager,com.navercorp.pinpoint.bootstrap,com.navercorp.pinpoint.common,com.navercorp.pinpoint.exception" JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager" JAVA_OPTS="$JAVA_OPTS -javaagent:/paas-apm/collectors/pinpoint/pinpoint-bootstrap.jar" JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.1.Final-redhat-1.jar" JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true" JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
- JBoss 8.1.0 :
将standalone模式下的wildfly-8.1.0.Final/bin/standalone.conf文件修改为
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,org.jboss.logmanager,com.navercorp.pinpoint.bootstrap,com.navercorp.pinpoint.common,com.navercorp.pinpoint.exception" JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/jboss/log4j/logmanager/main/slf4j-api-1.7.2.jbossorg-1.jar" JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/slf4j/main/slf4j-api-1.7.22.jbossorg-1.jar" JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.2.Final.jar" JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager" JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
- JBoss 12.0.0:
将standalone模式下的wildfly-12.0.0.Final/bin/standalone.conf文件修改为
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,org.jboss.logmanager,com.navercorp.pinpoint.bootstrap,com.navercorp.pinpoint.common,com.navercorp.pinpoint.exception,$JBOSS_MODULES_SYSTEM_PKGS" JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/jboss/log4j/logmanager/main/log4j-jboss-logmanager-1.1.4.Final.jar" JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/slf4j/main/slf4j-api-1.7.22.jbossorg-1.jar" JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-2.0.9.Final.jar" JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager" JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
因为JBoss 使用undertow作为应用服务,所以在启动命令 wildfly-12.0.0.Final/bin/standalone.sh -bmanagement 127.0.0.1 的management参数不能为0.0.0.0 否则会发生异常。异常提示如下:
java.net.SocketException: Protocol family unavailable